Systems and methods for managing storage compression operations

US9875180B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9875180-B2
Application numberUS-201414334502-A
CountryUS
Kind codeB2
Filing dateJul 17, 2014
Priority dateFeb 24, 2014
Publication dateJan 23, 2018
Grant dateJan 23, 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 compression manager generates a reduced-size data set for a page. The reduced-size data set is stored on a storage medium by a storage module, and unused portions of the page are identified and/or recorded by the storage module. The reduced-size data set may be generated by compressing the page. The reduced-size data set may be written in response to a request from a client, which provides a message that identifies the unused portion(s) of the page. The page may be stored in a file, and the unused portion may correspond to empty portion(s) within the file. The storage module may maintain an index to map the page to the reduced-size data set, such that portions of the page are unmapped. The storage capacity used by the page may correspond to the mapped portion of the page, and exclude portion(s) of the page that are unmapped.

First claim

Opening claim text (preview).

We claim: 1. A method, comprising: receiving a request to write data of a page to a non-volatile storage medium, wherein the page comprises a plurality of logical blocks of a logical address space, each logical block representing storage capacity of the non-volatile storage medium; directing a storage module to store the data of the page to a first set of the logical blocks of the page, the first set excluding a second set of the logical blocks of the page; and transmitting a message to the storage module responsive to the directing, the message configured to identify the second set of the logical blocks of the page that are not being used to store the data of the page on the non-volatile storage medium, wherein: the first set of the logical blocks of the page are associated with physical storage locations used to store the data of the page on the non-volatile storage medium, and the second set of the logical blocks of the page are unassociated with physical storage locations of the non-volatile storage medium, such that a physical storage capacity consumed by the page on the non-volatile storage medium is less than the storage capacity represented by the plurality of logical blocks comprising the page. 2. The method of claim 1 , further comprising compressing the data of the page. 3. The method of claim 1 , wherein the page is designated as a compressed page by a client. 4. The method of claim 1 , wherein the page corresponds to a file, and wherein directing the storage module to store the data of the page comprises issuing a request to write the data of the page to the file. 5. The method of claim 1 , wherein storing the data of the page comprises: appending the data of the page to a storage log on the non-volatile storage medium; and recording mapping entries in a forward index, the mapping entries configured to associate the first set of logical blocks with the physical storage locations of the data of the page appended to the storage log; wherein, in response to the message, the storage module is further configured to retain the mapping entries pertaining to the first set of the logical blocks in the forward index and to invalidate mapping entries pertaining to logical blocks of the second set of the logical blocks in the forward index. 6. The method of claim 1 , further comprising directing the storage module to write persistent metadata on the non-volatile storage medium, the persistent metadata indicating that the second set of the logical blocks are unassociated with data stored on the non-volatile storage medium. 7. An apparatus, comprising: a compression manager that receives a request to persist a page corresponding to a plurality of logical block addresses of a logical address space, wherein the page represents a fixed amount of storage capacity of a persistent storage device, the fixed amount corresponding to a storage capacity represented by the plurality of logical block addresses of the page; a reduction engine that derives a data set from data of the page, wherein the data set is smaller than the fixed amount of storage capacity represented by the page; a file allocation manager that persists the page, by instructing a file system to write the data set to a first subset of the plurality of logical block addresses of the page on the persistent storage device, and notifying the file system that a second subset of the plurality of logical block addresses of the page are empty; the file system maps the first subset of the plurality of logical block addresses to physical storage locations of the data set stored within the persistent storage device, such that the second subset of the plurality of logical block addresses are unmapped to physical storage locations of the persistent storage device, and a physical storage capacity consumed by the page on the persistent storage device corresponds to a physical storage capacity represented by the first subset of the plurality of logical block addresses, smaller than the fixed amount of storage capacity represented by the plurality of logical block addresses of the page. 8. The apparatus of claim 7 , wherein the file allocation manager identifies the second subset of the plurality of logical block addresses by use of an offset and a length. 9. The apparatus of claim 7 , wherein the file allocation manager notifies the file system that the second subset of the plurality of logical block addresses are empty by one or more of an unmap message, a deallocation message, a TRIM message, and a TRIM directive. 10. The apparatus of claim 7 , wherein the reduction engine derives the data set by compressing the data of the page. 11. A system comprising: a storage controller configured to maintain storage metadata pertaining to logical identifiers of a logical address space, each logical identifier representing a sector of a non-volatile storage medium, the storage metadata to map logical identifiers that reference data stored on sectors of the non-volatile storage medium to physical addresses of the respective sectors, such that logical identifiers that do not reference data stored on the non-volatile storage medium are unmapped; and a compression agent that generates compressed data sets corresponding to pages, each page comprising a plurality of logical identifiers defined to represent a storage capacity corresponding to a fixed number of sectors of the non-volatile storage medium; wherein the storage controller is further configured to persist pages on the non-volatile storage medium, wherein persisting a page comprises: writing a compressed data set of the page on one or more sectors of the non-volatile storage medium, fewer than the fixed number of sectors; and mapping a first subset of the logical identifiers of the page to physical addresses of the one or more sectors in the storage metadata, such that a second subset of the logical identifiers of the page are unmapped, wherein a storage capacity of the non-volatile storage medium used by the plurality of logical identifiers comprising the page corresponds to a storage capacity of the one or more sectors, smaller than the fixed number of sectors. 12. The system of claim 11 , wherein the storage metadata comprises an index, and wherein persisting the page further comprises: associating the first subset of the logical identifiers of the page with the physical addresses in the index, and removing associations pertaining to the second subset of the logical identifiers of the page from the index. 13. The system of claim 11 , wherein the storage controller is configured to write a modified compressed data set to the page, the modified compressed data set occupying fewer sectors than the compressed data set, wherein writing the modified compressed data set comprises removing a mapping for at least one of the logical identifiers of the first subset of the logical identifiers comprising the page from the storage metadata. 14. The system of claim 11 , wherein the storage controller determines a physical storage capacity consumed by the page based on assignments between the first subset of the logical identifiers of the page and the one or more sectors of the non-volatile storage medium in the storage metadata. 15. The system of claim 11 , wherein writing the compressed data set comprises sequentially appending the compressed data set to a storage log maintained on the non-volatile storage medium. 16. The system of claim 11 , wherein the storage controller is further configured to write persistent metadata on the non-volatile storage medium that designates that the second subset of the logi

Assignees

Inventors

Classifications

  • Address translation · CPC title

  • Logical to physical mapping or translation of blocks or pages · CPC title

  • Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title

  • using page tables, e.g. page table structures · CPC title

  • Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches · CPC title

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 US9875180B2 cover?
A compression manager generates a reduced-size data set for a page. The reduced-size data set is stored on a storage medium by a storage module, and unused portions of the page are identified and/or recorded by the storage module. The reduced-size data set may be generated by compressing the page. The reduced-size data set may be written in response to a request from a client, which provides a …
Who is the assignee on this patent?
Sandisk Technologies Llc
What technology area does this patent fall under?
Primary CPC classification G06F12/0246. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 23 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). 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).