Streamlining data deduplication
US-2016246812-A1 · Aug 25, 2016 · US
US10503443B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10503443-B2 |
| Application number | US-201715497816-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 26, 2017 |
| Priority date | Sep 13, 2016 |
| Publication date | Dec 10, 2019 |
| Grant date | Dec 10, 2019 |
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, a computing device, and a non-transitory machine-readable medium for allocating data compression activities in a storage system are provided. A method includes tracking, by a storage controller, computing resources corresponding to a storage server. The storage controller processes one or more host read requests to access data requested by one or more hosts, the processing of the one or more host read requests including decompressing the data requested by the one or more hosts from the storage server and providing the decompressed data to the one or more hosts. The storage controller determines an amount of available computing resources after processing the one or more host read requests. Based on the amount of available computing resources, the storage controller performs inline compression of a first portion of host write requests and background compression of a second portion of the host write requests.
Opening claim text (preview).
What is claimed is: 1. A method comprising: determining, by a storage controller, an amount of available computing resources of the storage controller while decompressing data for a host read request and providing the decompressed data to a requesting host; performing, by the storage controller based on the amount of available computing resources exceeding a threshold, inline compression of a first portion of host write requests, wherein an amount of the host write requests included in the first portion is increased while the amount of available computer resources exceeds the threshold; performing, by the storage controller based on the amount of available computing resources being below the threshold, background compression of a second portion of the host write requests, wherein an amount of the host write requests included in the second portion is increased while the amount of available computer resources is below the threshold; and prioritizing, by the storage controller, compression of stored data corresponding to the background compression according to a priority ordering that takes into account an age of the stored data. 2. The method of claim 1 , wherein the performing inline compression further comprises: compressing, by the storage controller, data corresponding to the first portion of host write requests as the data is received. 3. The method of claim 1 , wherein the performing background compression further comprises: storing, by the storage controller, data corresponding to the second portion of the host write requests in a non-compressed format for compression at a later time. 4. The method of claim 1 , wherein the performing background compression further comprises: storing data corresponding to the second portion of the host write requests in a first compressed format for compression to a second compressed format at a later time, wherein the second compressed format corresponds to a higher compression overhead than the first compressed format. 5. The method of claim 1 , wherein the prioritizing compression further comprises: prioritizing the stored data based on a last modification time of the stored data, in an order from oldest to youngest. 6. The method of claim 1 , wherein the prioritizing compression further comprises: prioritizing the stored data based on an expected frequency of modification of the stored data, in an order from least frequently modified to most frequently modified. 7. The method of claim 1 , wherein determining an amount of available computing resources comprises determining processor usage, memory bandwidth, drive utilization, and I/O latency. 8. A non-transitory machine readable medium having stored thereon instructions for performing a method comprising machine executable code which when executed by at least one machine, causes the at least one machine to: determine an amount of available computing resources of the machine while decompressing data for a host read request and provide the decompressed data to a requesting host; perform, based on the amount of available computing resources being above a threshold, inline compression of a first portion of host write requests, wherein an amount of the host write requests included in the first portion is increased while the amount of available computer resources exceeds the threshold; perform, based on the amount of available computing resources being below the threshold, background compression of a second portion of the host write requests, wherein an amount of the host write requests included in the second portion is increased while the amount of available computer resources is below the threshold; and prioritize compression of stored data corresponding to the background compression according to a priority ordering that takes into account an age of the stored data. 9. The non-transitory machine readable medium of claim 8 , wherein performing the inline compression further comprises instructions which, when executed by the at least one machine, causes the machine to: compress data corresponding to the first portion of host write requests as the data is received. 10. The non-transitory machine readable medium of claim 8 , wherein performing the background compression further comprises instructions which, when executed by the at least one machine, causes the machine to: store data corresponding to the second portion of the host write requests in a non-compressed format for compression at a later time. 11. The non-transitory machine readable medium of claim 8 , wherein performing the background compression further comprises instructions which, when executed by the at least one machine, causes the machine to: store data corresponding to the second portion of the host write requests in a first compressed format for compression to a second compressed format at a later time, wherein the second compressed format corresponds to a higher compression overhead than the first compressed format. 12. The non-transitory machine readable medium of claim 8 , wherein prioritizing the compression further comprises instructions which, when executed by the at least one machine, causes the machine to: prioritize the stored data based on a last modification time of the stored data, in an order from oldest to youngest. 13. The non-transitory machine readable medium of claim 8 , wherein prioritizing the compression further comprises instructions which, when executed by the at least one machine, causes the machine to: prioritize the stored data based on an expected frequency, in an order from least frequently modified to most frequently modified. 14. The non-transitory machine readable medium of claim 8 , wherein determining the amount of available computing resources further comprises instructions which, when executed by the at least one machine, causes the machine to: determine processor usage, memory bandwidth, drive utilization, and I/O latency. 15. A computing device comprising: at least one memory containing machine readable medium comprising machine executable code having stored thereon instructions for performing a method of dynamically adjusting compression rates during input/output (I/O) operation; and at least one processor coupled to the at least one memory, the at least one processor configured to execute the machine executable code to cause the at least one processor to: determine an amount of available computing resources of the computing device while decompressing data for a host read request and provide the decompressed data to a requesting host; perform, based on the amount of available computing resources being above a threshold, inline compression of a first portion of host write requests, wherein an amount of the host write requests included in the first portion is increased while the amount of available computer resources exceeds the threshold; perform, based on the amount of available computing resources being below the threshold, background compression of a second portion of the host write requests, wherein an amount of the host write requests included in the second portion is increased based while the amount of available computer resources is below the threshold; and prioritize compression of stored data corresponding to the background compression according to a priority ordering that takes into account an age of the stored data. 16. The computing device of claim 15 , wherein the processor, in performing the inline compression, is further configured to execute the machine executable code to cause the at least one processor to: compress data corresponding to the first portion of hos
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Improving I/O performance · CPC title
Saving storage space on storage systems · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.