Exponential decay set pruning
US-9569452-B1 · Feb 14, 2017 · US
US11169707B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11169707-B2 |
| Application number | US-201615004318-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 22, 2016 |
| Priority date | Jan 22, 2016 |
| Publication date | Nov 9, 2021 |
| Grant date | Nov 9, 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 system and method for improving storage system performance by reducing or avoiding load spike amplification when performing garbage collection is disclosed. A storage controller in a storage system tracks system load including write load and read load, as well as available free segments. The storage controller uses these tracked values as inputs and, with these inputs, generates a garbage collection rate. Where read load is included, a scaled portion of the read load is taken into consideration so that, as the number of free segments nears the minimum amount desired and to prevent garbage collecting too slowly, the read load is gradually excluded from the garbage collection rate determination. The garbage collection rate is therefore responsive to system load so that, in times of high system load, the rate reduces as much as is safe so that the write load takes priority with computing resources of the storage controller.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: tracking, by a storage controller, an input/output (I/O) load on the storage controller and an amount of free storage segments available in a storage device associated with the storage controller; determining, by the storage controller during I/O operation, a garbage collection rate for generating free segments in the storage device based on the tracked I/O load and the amount of free storage segments, wherein the garbage collection rate increases in response to a write activity of the tracked I/O load decreasing, and decreases in response to the write activity of the tracked I/O load increasing; and adjusting, by the storage controller, performance of garbage collection to the determined garbage collection rate. 2. The method of claim 1 , wherein, for a given amount for the tracked I/O load, the garbage collection rate increases in response to the tracked amount of free storage segments decreasing and decreases in response to the tracked amount of free storage segments increasing. 3. The method of claim 1 , wherein the determining is further based on a read load on the storage controller, the method further comprising: modifying, by the storage controller, the read load with a decaying factor based on the tracked amount of free storage segments, the decaying factor decreasing as the tracked amount of free storage segments decreases and increasing as the tracked amount of free storage segments increases. 4. The method of claim 1 , wherein the determining is further based on a background activity of the storage controller, the method further comprising: modifying, by the storage controller, an amount corresponding to the background activity with a decaying factor based on the tracked amount of free storage segments. 5. The method of claim 1 , further comprising: tuning, by the storage controller, at least one parameter of a production rate model used for the determining to modify a responsiveness of the storage controller to one or more inputs. 6. The method of claim 1 , further comprising: normalizing, by the storage controller, a production rate model used for the determining so that the determined garbage collection rate equals a consumption amount from the tracked I/O load at a maximum system I/O load when the tracked amount of free storage segments equals a minimum desired amount of free storage segments. 7. The method of claim 1 , further comprising: using, by the storage controller, a storage device from among one or more storage devices that is close to a projected time of failure for storing non-protected replicas of data. 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 machine to: track an input/output (I/O) load on the machine and an amount of free storage segments available in a storage device associated with the machine; determine, during I/O operation, a garbage collection rate for generating free segments in the storage device based on the tracked I/O load and the amount of free storage segments, wherein the garbage collection rate increases in response to a write activity of the tracked I/O load decreasing, and decreases in response to the write activity of the tracked I/O load increasing; and adjust performance of garbage collection to the determined garbage collection rate. 9. The non-transitory machine readable medium of claim 8 , wherein, for a given amount for the tracked I/O load, the garbage collection rate increases in response to the tracked amount of free storage segments decreasing and decreases in response to the tracked amount of free storage segments increasing. 10. The non-transitory machine readable medium of claim 8 , wherein the determination is further based on a read load on the machine, further comprising machine executable code that causes the machine to: modify the read load with a decaying factor based on the tracked amount of free storage segments, the decaying factor decreasing as the tracked amount of free storage segments decreases and increasing as the tracked amount of free storage segments increases. 11. The non-transitory machine readable medium of claim 8 , wherein the determination if further based on a background activity of the machine, further comprising machine executable code that causes the machine to: modify an amount corresponding to the background activity with a decaying factor based on the tracked amount of free storage segments. 12. The non-transitory machine readable medium of claim 8 , further comprising machine executable code that causes the machine to: tune at least one parameter of a production rate model used for the determination to modify a responsiveness of the machine to one or more inputs. 13. The non-transitory machine readable medium of claim 8 , further comprising machine executable code that causes the machine to: normalize a production rate model used for the determination so that the determined garbage collection rate equals a consumption amount from the tracked I/O load at a maximum system I/O load when the tracked amount of free storage segments equals a minimum desired amount of free storage segments. 14. The non-transitory machine readable medium of claim 8 , further comprising machine executable code that causes the machine, as part of the garbage collection, to: use a storage device from among one or more storage devices that is close to a projected time of failure for storing non-protected replicas of data. 15. A computing device comprising: a memory containing machine readable medium comprising machine executable code having stored thereon instructions for performing a method of dynamically adjusting a garbage collection rate during input/output (I/O) operation; and a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to: track an I/O load on the computing device and an amount of free storage segments available in a storage device associated with the computing device; determine, during the I/O operation, the garbage collection rate for generating free segments in the storage device based on the tracked I/O load and the amount of free storage segments, wherein the garbage collection rate increases in response to a write activity of the tracked I/O load decreasing, and decreases in response to the write activity of the tracked I/O load increasing; and adjust performance of garbage collection to the determined garbage collection rate. 16. The computing device of claim 15 , wherein, for a given amount for the tracked I/O load, the garbage collection rate increases in response to the tracked amount of free storage segments decreasing and decreases in response to the tracked amount of free storage segments increasing. 17. The computing device of claim 15 , wherein the determination is further based on a read load on the computing device, the machine executable code further causing the processor to: modify the read load with a decaying factor based on the tracked amount of free storage segments, the decaying factor decreasing as the tracked amount of free storage segments decreases and increasing as the tracked amount of free storage segments increases. 18. The computing device of claim 15 , wherein the determination is further based on a background activity of the computing device, the machine executable code further causing the processor to: modify an amount corresponding to the background ac
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
in block erasable memory, e.g. flash memory · CPC title
Improving I/O performance · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
Cleaning, compaction, garbage collection, erase control · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.