Storage device caching update target data unit while entering down-time mode and operating method of the storage device
US-2024345740-A1 · Oct 17, 2024 · US
US10235288B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10235288-B2 |
| Application number | US-201514874157-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 2, 2015 |
| Priority date | Oct 2, 2015 |
| Publication date | Mar 19, 2019 |
| Grant date | Mar 19, 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.
Systems and techniques for cache management are disclosed that provide improved cache performance by prioritizing particular storage stripes for cache flush operations. The systems and techniques may also leverage features of the storage devices to provide atomicity without the overhead of inter-controller mirroring. In some embodiments, the systems and techniques include a storage controller that stores data in a cache. The data is associated with one or more sectors of a storage stripe that is defined over plurality of storage devices. The storage controller identifies a locality of dirty sectors of the one or more sectors, classifies the storage stripe into a category based on the locality, provides a category ordering of the category relative to at least one other category, and flushes the storage stripe from the cache to the plurality of storage devices according to the category ordering.
Opening claim text (preview).
What is claimed is: 1. A method comprising: storing data in a cache, by a storage controller, the data being associated with one or more sectors of a storage stripe that is defined over a plurality of storage devices; identifying a locality of dirty sectors of the one or more sectors including determining a first amount of operations to perform a partial stripe write of the dirty sectors of the storage stripe from the cache to the plurality of storage devices, and a second amount of operations to perform a full stripe write; classifying the storage stripe into a partial stripe write category in response to the first amount of operations being less than the second amount of operations; and flushing the dirty sectors from the cache to the plurality of storage devices as the partial stripe write based on the classification of the storage stripe into the partial stripe write category. 2. The method of claim 1 , wherein the identifying of the locality of the dirty sectors includes: identifying that at least one data segment of the storage stripe includes contiguous dirty sectors. 3. The method of claim 1 , wherein the identifying of the locality of the dirty sectors includes: identifying that a plurality of data segments of the storage stripe include at least one dirty sector. 4. The method of claim 1 , the method further comprising: identifying that an amount of dirty sectors in the storage stripe exceeds a predefined threshold. 5. The method of claim 1 , wherein the determining the first amount of comprises determining an amount of operations to write a data segment of the storage stripe in a segment-sized block that is aligned to a flash erase block size of a solid state drive. 6. The method of claim 1 , the method further comprising: identifying that an amount of dirty sectors in the cache exceeds a predetermined threshold. 7. A non-transitory machine readable medium having stored thereon instructions for performing a cache flushing method comprising machine executable code which when executed by at least one machine, causes the machine to: store data in a cache, the data associated with one or more sectors of a storage stripe that is defined over a plurality of storage devices; identify a locality corresponding to dirty sectors of the one or more sectors, the identifying of the locality including determining a first amount of operations to perform a partial stripe write of the dirty sectors of the storage stripe from the cache to the plurality of storage devices, and a second amount of operations to perform a full stripe write; classify the storage stripe into a partial stripe write category in response to the first amount of operations being less than the second amount of operations; and flush the cache to the plurality of storage devices as the partial stripe write based on the classification of the storage stripe into the partial stripe write category. 8. The non-transitory machine readable medium of claim 7 , wherein the identifying of the locality includes: identifying that an amount of dirty sectors exceeds a predetermined threshold. 9. The non-transitory machine readable medium of claim 7 , the identifying of the locality further comprising: identifying that each data segment of the storage stripe includes at least one dirty sector. 10. The non-transitory machine readable medium of claim 7 , wherein the determining the first amount of operations includes determining an amount of operations to write a data segment of the storage stripe in a segment-sized block that is aligned to a flash erase block size. 11. A computing device comprising: a memory containing machine readable medium comprising machine executable code having stored thereon instructions for performing a method of cache flushing; a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to: store data in a cache the data being associated with one or more sectors of a storage stripe that is defined over a plurality of storage devices; identify a locality of dirty sectors of the one or more sectors including determining a first amount of operations to perform a partial stripe write of the dirty sectors of the storage stripe from the cache to the plurality of storage devices, and a second amount of operations to perform a full stripe write; classify the storage stripe into a partial stripe write category in response to the first amount of operations being less than the second amount of operations; and flush the dirty sectors from the cache to the plurality of storage devices as the partial stripe write based on the classification of the storage stripe into the partial stripe write category. 12. The computing device of claim 11 , wherein the identifying of the locality of the dirty sectors includes: identifying that at least one data segment of the storage stripe includes contiguous dirty sectors. 13. The computing device of claim 11 , wherein the identifying of the locality of the dirty sectors includes: identifying that each data segment of the storage stripe includes at least one dirty sector. 14. The computing device of claim 11 , wherein the determining the first amount of operations includes determining an amount of operations to write a data segment of the storage stripe to a in a segment-sized block that is aligned to a flash erase block size of a solid state drive. 15. The method of claim 1 , wherein the determining the first amount of operations further comprises: determining a product of an amount of dirty sectors of the storage stripe and an amount of operations to read and write each dirty sector from the cache to the storage devices. 16. The non-transitory machine readable medium of claim 7 , wherein the determining the first amount of operations further comprises: determining a product of an amount of dirty sectors of the storage stripe and an amount of operations to read and write each dirty sector from the cache to the storage devices. 17. The computing device of claim 11 , wherein the determining the first amount of operations further comprises: determining a product of an amount of dirty sectors of the storage stripe and an amount of operations to read and write each dirty sector from the cache to the storage devices. 18. The computing device of claim 11 , the processor further configured to execute the machine executable code to cause the processor to: classify the storage stripe into a full stripe write category in response to the second amount of operations being less than the first amount of operations. 19. The computing device of claim 18 , the processor further configured to execute the machine executable code to cause the processor to: flush the storage stripe from the cache to the plurality of storage devices using the full stripe write based on the classification of the storage stripe into the full stripe write category. 20. A non-transitory machine readable medium having stored thereon instructions for performing a cache flushing method comprising machine executable code which when executed by at least one machine, causes the machine to: store data in a cache, the data associated with one or more sectors of a storage stripe that is defined over a plurality of storage devices; identify a locality corresponding to dirty sectors of the one or more sectors, the identifying of the locality including determining a first amount of operations to perform a partial stripe write of the dirty sectors of the storage stripe from
Data transfer between cache memory and other subsystems, e.g. storage devices or host systems · CPC title
with main memory updating (G06F12/0806 takes precedence) · CPC title
using clearing, invalidating or resetting means · CPC title
Details relating to cache allocation · CPC title
with special data handling, e.g. priority of data or instructions, handling errors or pinning · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.