US 11,861,169 B2
Layout format for compressed data
Girish Hebbale Venkatasubbaiah, Karantaka (IN); Rahul Thapliyal, Karnataka (IN); Dnyaneshwar Nagorao Pawar, Bangalore (IN); Kartik Rathnakar, Karnataka (IN); Venkateswarlu Tella, Bangalore (IN); and Ananthan Subramanian, San Ramon, CA (US)
Assigned to NetApp, Inc., San Jose, CA (US)
Filed by NetApp Inc., Sunnyvale, CA (US)
Filed on Sep. 22, 2020, as Appl. No. 17/028,020.
Claims priority of application No. 202041027249 (IN), filed on Jun. 26, 2020.
Prior Publication US 2021/0405882 A1, Dec. 30, 2021
Int. Cl. G06F 3/06 (2006.01); G06F 16/215 (2019.01); G06F 16/25 (2019.01); H03M 7/30 (2006.01); G06F 16/28 (2019.01)
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
OG exemplary drawing
 
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.