Managing inline data compression in storage systems

US10156993B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10156993-B1
Application numberUS-201615393369-A
CountryUS
Kind codeB1
Filing dateDec 29, 2016
Priority dateDec 29, 2016
Publication dateDec 18, 2018
Grant dateDec 18, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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.

Assignees

Inventors

Classifications

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10156993B1 cover?
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 a…
Who is the assignee on this patent?
Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F3/0608. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 18 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).