RELOCATING COMPRESSED EXTENTS USING FILE-SYSTEM HOLE LIST
First Claim
1. A method of writing data in a data storage system, the method comprising:
- aggregating a set of data received in I/O (Input/Output) requests into a batch of data, the batch of data including multiple extents, each extent directed to a respective logical address in a file system running in the data storage system;
compressing a current extent of the batch of data to produce a compressed extent, the current extent directed to a logical address that is already backed by a fragment in the data storage system, such that a write of the compressed extent is an overwrite; and
performing an FS-relocate operation, the FS-relocate operation (i) accessing an FS-hole list provided for the file system to select a hole large enough to accommodate the compressed extent, each hole in the FS-hole list representing a range of storage in the file system that contains no currently-valid data, and (ii) placing the compressed extent into the selected hole found in the FS-hole list.
4 Assignments
0 Petitions
Accused Products
Abstract
A technique for writing data in a file system includes aggregating data received in a set of I/O requests into a batch that includes multiple extents of data. After compressing a current extent of the batch and determining that the compressed extent does not fit in a space where a previous version of the extent is stored, the technique performs an FS-relocate operation by accessing an FS-hole list provided for the file system and selecting a hole, from the FS-relocate list, which is large enough to accommodate the compressed extent. The technique then places the compressed extent in the selected hole.
5 Citations
20 Claims
-
1. A method of writing data in a data storage system, the method comprising:
-
aggregating a set of data received in I/O (Input/Output) requests into a batch of data, the batch of data including multiple extents, each extent directed to a respective logical address in a file system running in the data storage system; compressing a current extent of the batch of data to produce a compressed extent, the current extent directed to a logical address that is already backed by a fragment in the data storage system, such that a write of the compressed extent is an overwrite; and performing an FS-relocate operation, the FS-relocate operation (i) accessing an FS-hole list provided for the file system to select a hole large enough to accommodate the compressed extent, each hole in the FS-hole list representing a range of storage in the file system that contains no currently-valid data, and (ii) placing the compressed extent into the selected hole found in the FS-hole list. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A data storage system, comprising control circuitry that includes a set of processing units coupled to memory, the control circuitry constructed and arranged to:
-
aggregate a set of data received in I/O (Input/Output) requests into a batch of data, the batch of data including multiple extents, each extent directed to a respective logical address in a file system running in the data storage system; compress a current extent of the batch of data to produce a compressed extent, the current extent directed to a logical address that is already backed by a fragment in the data storage system, such that a write of the compressed extent is an overwrite; and perform an FS-relocate operation, the FS-relocate operation (i) accessing an FS-hole list provided for the file system to select a hole large enough to accommodate the compressed extent, each hole in the FS-hole list representing a range of storage in the file system that contains no currently-valid data, and (ii) placing the compressed extent into the selected hole found in the FS-hole list.
-
-
15. A computer program product including a set of non-transitory, computer-readable media having instructions which, when executed by control circuitry of a data storage system, cause the control circuitry to perform a method for writing data, the method comprising:
-
aggregating a set of data received in I/O (Input/Output) requests into a batch of data, the batch of data including multiple extents, each extent directed to a respective logical address in a file system running in the data storage system; compressing a current extent of the batch of data to produce a compressed extent, the current extent directed to a logical address that is already backed by a fragment in the data storage system, such that a write of the compressed extent is an overwrite; and performing an FS-relocate operation, the FS-relocate operation (i) accessing an FS-hole list provided for the file system to select a hole large enough to accommodate the compressed extent, each hole in the FS-hole list representing a range of storage in the file system that contains no currently-valid data, and (ii) placing the compressed extent into the selected hole found in the FS-hole list. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification