Storing compressed and uncompressed data in blocks having different allocation unit sizes
US-9880928-B1 · Jan 30, 2018 · US
US10156993B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-10156993-B1 |
| Application number | US-201615393369-A |
| Country | US |
| Kind code | B1 |
| Filing date | Dec 29, 2016 |
| Priority date | Dec 29, 2016 |
| Publication date | Dec 18, 2018 |
| Grant date | Dec 18, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method is used in managing inline data compression in storage systems. A request is received to update data of a data object previously stored in an allocation unit of a segment in a storage system. The segment comprises of a set of allocation units in a compressed format. A determination is made as to whether the updated data of the data object can be stored in the compressed format in the allocation unit of the segment. Based on the determination, a free allocation unit is selected from a list of free allocation units managed by the storage system for writing the updated data in the compressed format to the free allocation unit.
Opening claim text (preview).
What is claimed is: 1. A method for use in managing inline data compression in storage systems, the method comprising: receiving a request to update data of a data object previously stored in a compressed format in an allocation unit of a segment in a storage system, the segment comprising of a set of allocation units in the compressed format; determining whether the updated data of the data object can be stored in the compressed format in the same segment upon determining whether the same segment can accommodate the updated data in the compressed format and whether the data object has been shared among at least two files; and based on the determination that the same allocation unit cannot accommodate the updated data in the compressed format, selecting a free allocation unit from a list of free allocation units managed by the storage system for writing the updated data in the compressed format to the free allocation unit. 2. The method of claim 1 , wherein the storage system manages a set of lists of free allocation units, each list of free allocation units including free allocation units of a different size. 3. The method of claim 1 , wherein the request to update the data includes, a write I/O request for updating data of a file of a file system organized on the storage system. 4. The method of claim 3 , wherein the file system is organized as a file system hierarchy of file system blocks, wherein the file system blocks include a set of indirect data blocks, each indirect data block including a set of data blocks. 5. The method of claim 1 , wherein a persistent file data cache aggregation logic selects a set of allocation units for compressing the set of allocation units in a segment, wherein an allocation unit is a file system block. 6. The method of claim 3 , wherein a file system utility scavenges unused storage space from an address space of a file system by freeing unused allocation units from a segment. 7. The method of claim 3 , wherein determining whether the updated data of the data object can be stored in the compressed format in the allocation unit of the segment further comprising: determining whether the size of the allocation unit can accommodate the size of the updated data; and determining whether the data object has been shared by a replica of the file of the file system, wherein the replica of file is a point in time copy of the file at a specific time. 8. The method of claim 3 , wherein a file of the file system and replicas of the file are organized in a version set, wherein the replicas of the file and the file share a subset of a set of file system blocks of the file. 9. The method of claim 3 , wherein a mapping pointer is associated with a file system block of a file, wherein the mapping pointer includes a distributed weight indicating whether the file system block has been shared. 10. The method of claim 9 , wherein a mapping pointer of a file system block refers to a segment virtual block pointer, wherein the segment virtual block pointer includes an extent list including information regarding a set of allocation units compressed in a segment, wherein a file system block number included in the segment virtual block pointer refers to the segment, wherein the segment includes a set of contiguous file system data blocks in a compressed format. 11. A system for use in managing inline data compression in storage systems, the system comprising a processor configured to: receive a request to update data of a data object previously stored in a compressed format in an allocation unit of a segment in a storage system, the segment comprising of a set of allocation units in the compressed format; determining whether the updated data of the data object can be stored in the compressed format in the same segment upon determining whether the same segment can accommodate the updated data in the compressed format and whether the data object has been shared among at least two files; and based on the determination that the same allocation unit cannot accommodate the updated data in the compressed format, selecting a free allocation unit from a list of free allocation units managed by the storage system for writing the updated data in the compressed format to the free allocation unit. 12. The system of claim 11 , wherein the storage system, manages a set of lists of free allocation units, each list of free allocation units including free allocation units of a different size. 13. The system of claim 11 , wherein the request to update the data includes a write I/O request for updating data of a file of a file system organized on the storage system. 14. The system of claim 13 , wherein the file system is organized as a file system hierarchy of file system blocks, wherein the file system blocks include a set of indirect data blocks, each indirect data block including a set of data blocks. 15. The system of claim 11 , wherein a persistent file data cache aggregation logic selects a set of allocation units for compressing the set of allocation units in a segment, wherein an allocation unit is a file system block. 16. The system of claim 13 , wherein a file system utility scavenges unused storage space from an address space of a file system by freeing unused allocation units from a segment. 17. The system of claim 13 , wherein determining whether the updated data of the data object can be stored in the compressed format in the allocation unit of the segment further comprising: determine whether the size of the allocation unit can accommodate, the size of the updated data; and determine whether the data object has been shared by a replica of the file of the file system, wherein the replica of file is a point in time, copy of the file at a specific time. 18. The system of claim 13 , wherein a file of the file system and replicas of the file are organized in a version set, wherein the replicas of the file and the file share a subset of a set of file system blocks of the file. 19. The system of claim 13 , wherein a mapping pointer is associated with a file system block of a file, wherein the mapping pointer includes a distributed weight indicating whether the file system block has been shared. 20. The system of claim 19 , wherein a mapping pointer of a file system block refers to a segment virtual block pointer, wherein the segment virtual block pointer includes an extent list including information regarding a set of allocation units compressed in a segment, wherein a file system block number included in the segment virtual block pointer refers to the segment, wherein the segment includes a set of contiguous file system data blocks in a compressed format.
Management of space entities, e.g. partitions, extents, pools · CPC title
Space efficiency improvement · CPC title
Free address space management · CPC title
Migration mechanisms · CPC title
Physics · mapped topic
Related publications grouped by family.
Answers are generated from the same data shown on this page.