CPC G06F 3/0608 (2013.01) [G06F 3/067 (2013.01); G06F 3/0641 (2013.01); G06F 16/215 (2019.01); G06F 16/258 (2019.01); G06F 16/285 (2019.01); H03M 7/3091 (2013.01)] | 26 Claims |
1. A method, comprising:
grouping a set of data blocks into a group;
compressing the set of data blocks into a compression group using a compression algorithm, wherein the set of data blocks is stored within a set of disk blocks of storage as compressed data blocks;
generating an encoding to identify disk locations of the set of disk blocks, wherein the encoding comprises a physical volume block number of a starting location of the compressed data blocks and an indication of a number of physical volume block numbers where the compressed data blocks are stored;
creating a compression data extent, within file system indirect block metadata, to include the set of disk blocks where compressed data of the compression group are stored;
representing the compression data extent in a file system indirect block that points to the compression data extent with the encoding for the set of disk blocks; and
in response to determining that the set of disk blocks are to be freed:
utilizing the encoding, within the file system indirect block pointing to the compression data extent, to identify disk space consumed by the set of disk blocks;
deferring garbage collection work used to free the set of disk blocks;
effectively counting, by a file system, the disk space consumed by the set of disk blocks as free space before the garbage collection work is performed to free the set of disk blocks consuming the disk space; and
triggering performance of the garbage collection work based upon a threshold.
|