Storage device and operating method thereof
US-10324661-B2 · Jun 18, 2019 · US
US11068405B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11068405-B2 |
| Application number | US-201815957065-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 19, 2018 |
| Priority date | Apr 19, 2018 |
| Publication date | Jul 20, 2021 |
| Grant date | Jul 20, 2021 |
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 storage processor in a data storage system includes a compression selection component that selects a data compression component to be used to compress host I/O data that is flushed from a persistent cache of the storage processor based on a current fullness level of the persistent cache. The compression selection component selects compression components implementing compression algorithms having relatively lower compression ratios for relatively higher current fullness levels of the persistent cache, and selects compression components implementing compression algorithms having relatively higher compression ratios for relatively lower current fullness levels of the persistent cache.
Opening claim text (preview).
What is claimed is: 1. A method of providing data compression in a storage processor of a data storage system, comprising the steps of: in response to detecting a cache flush event by detecting that a predetermined time period has expired since host I/O data was previously stored into a persistent cache located in the storage processor, i) forming an aggregation set of blocks of host I/O data within host I/O data accumulated in the persistent cache, wherein the aggregation set is a set of oldest blocks of host I/O data that are stored in the persistent cache, and ii) determining a current fullness level of the persistent cache, wherein the current fullness of the persistent cache comprises a current percentage of a total size of the persistent cache that is currently used to store host I/O data; selecting, by a compression selection component in the storage processor in response to the current fullness level of the persistent cache, from a set of available compression components contained in the storage processor, a compression component for compressing the aggregation set, wherein the compression selection component selects compression components implementing compression algorithms having relatively lower compression ratios in response to relatively higher current fullness levels of the persistent cache, and wherein the compression selection component selects compression components implementing compression algorithms having relatively higher compression ratios in response to relatively lower current fullness levels of the persistent cache; and compressing the aggregation set using the selected compression component to obtain a compressed version of the aggregation set. 2. The method of claim 1 , further comprising: accumulating host I/O data that is indicated by host I/O write requests that are received by the storage processor from at least one host computer into the persistent cache that is located in the storage processor; and wherein the cache flush event indicates that a plurality of blocks of host I/O data accumulated in the persistent cache are to be flushed from the persistent cache to at least one lower deck file system that is internal to the data storage system. 3. The method of claim 2 , wherein selecting the compression component comprises selecting one of the compression components in the set of available compression components having the highest associated persistent cache fullness threshold that is less than or equal to the current fullness level of the persistent cache. 4. The method of claim 3 , wherein determining the current fullness level of the persistent cache comprises determining a current percentage of the total size of the persistent cache that is currently used to store host I/O data; and wherein selecting the compression component comprises selecting one of the compression components in the set of available compression components in the set of available compression components having the highest associated persistent cache fullness threshold that is less than or equal to the current percentage of the total size of the persistent cache that is currently used to store host I/O data. 5. The method of claim 4 , wherein each one of the compression components in the set of available compression components is associated with a different persistent cache fullness threshold. 6. The method of claim 5 , further comprising: determining whether the blocks of host I/O data in the aggregation set contain host I/O data that is an overwrite of host I/O data previously flushed from the persistent cache to at least one lower deck file system that is internal to the data storage system; in response to determining that the blocks of host I/O data in the aggregation set contain host I/O data that is not an overwrite of host I/O data previously flushed from the persistent cache to at least one lower deck file system that is internal to the data storage system, allocating an extent of blocks in an address space of a lower deck file system within a compressed region of the address space of the lower deck file system; and storing the compressed version of the aggregation set to non-volatile storage corresponding to the extent of blocks in the address space of the lower deck file system. 7. The method of claim 6 , further comprising: determining a length of the compressed version of the aggregation set; and wherein allocating the extent of blocks in the address space of the lower deck file system within the compressed region of the address space of the lower deck file system comprises allocating an extent of blocks in the address space of the lower deck file system having length that is greater than the length of the compressed version of the aggregation set. 8. The method of claim 5 , further comprising: determining whether the blocks of host I/O data in the aggregation set contain host I/O data that is an overwrite of host I/O data previously flushed from the persistent cache to at least one lower deck file system that is internal to the data storage system; in response to determining that the blocks of host I/O data in the aggregation set contain host I/O data that is an overwrite of host I/O data previously flushed from the persistent cache to at least one lower deck file system that is internal to the data storage system, comparing a length the compressed version of the aggregation set to a length of an extent of blocks in an address space of a lower deck file system within a compressed region of the address space of the lower deck file system that was used to store a previous compressed version of the blocks of host I/O data in the aggregation set; and in response to determining that the length the compressed version of the aggregation set is greater than the length of an extent of blocks in an address space of the lower deck file system within the compressed region of the address space of the lower deck file system that was used to store the previous compressed version of the blocks of host I/O data in the aggregation set, selecting a second compression component for compressing the aggregation set, wherein the second selected compression component has a higher compression ratio than the initially selected compression component; and recompressing the aggregation set using the second selected compression component to obtain a second compressed version of the aggregation set. 9. The method of claim 5 , wherein the lower deck file system maps files to blocks in an address space of the lower deck file system, wherein each file implements a corresponding data object that is accessible to the at least one host computer, and wherein blocks in the address space of the lower deck file system also correspond to non-volatile storage provisioned from a set of storage devices in the data storage system that provide storage for the lower deck file system. 10. A storage processor in a data storage system, the storage processor including a set of processing units and memory, coupled to the set of processing units, the memory storing instructions for providing data compression in the storage processor, wherein the instructions, when executed by the set of processing units, cause the set of processing units to: in response to detection of a cache flush event by detecting that a predetermined time period has expired since host I/O data was previously stored into a persistent cache located in the storage processor, i) form an aggregation set of blocks of host I/O data within host I/O data accumulated in the persistent cache, wherein the aggregation set is a set of oldest blocks of host I/O data that are stored in the persistent cache, and ii) determine a current fullness level of the persistent cache, wherein the current ful
using clearing, invalidating or resetting means · CPC title
using adaptive policy · CPC title
Single storage device · CPC title
by using cryptography (for digital transmission H04L9/00) · CPC title
Non-volatile memory · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.