Global persistent flush
US-2020192798-A1 · Jun 18, 2020 · US
US11663127B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11663127-B2 |
| Application number | US-202117469321-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 8, 2021 |
| Priority date | Jan 22, 2021 |
| Publication date | May 30, 2023 |
| Grant date | May 30, 2023 |
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.
Techniques for managing a storage system involve flushing a target page in a cache device to a persistent storage device of the storage system. The techniques further involve releasing a resource storing a page descriptor of the target page to a resource pool. The resource pool is configured to provide resources to store page descriptors of pages to be flushed in the cache device. The techniques further involve: if it is determined that an auxiliary descriptor of the target page is located at a tail of a queue of auxiliary descriptors of the pages to be flushed, removing the auxiliary descriptor of the target page from the queue. The auxiliary descriptors of the pages to be flushed are configured to describe the page descriptors of the pages to be flushed. Accordingly, the page flushing performance of the storage system can be improved, thereby improving the input/output performance.
Opening claim text (preview).
The invention claimed is: 1. A method for managing a storage system, comprising: dividing a plurality of pages to be flushed into a plurality of groups based on respective logical addresses of the plurality of pages to be flushed in a cache device of the storage system, the logical addresses of the pages to be flushed in the same group being located in the same address range, and the plurality of groups corresponding to different address ranges; selecting a predetermined number of the target pages from at least one of the plurality of groups based on positions of the auxiliary descriptors of the pages to be flushed in each group in the queue; flushing a target page in the cache device to a persistent storage device of the storage system; releasing a resource storing a page descriptor of the target page to a resource pool, the resource pool being configured to provide resources to store page descriptors of pages to be flushed in the cache device; and if it is determined that an auxiliary descriptor of the target page is located at a tail of a queue of auxiliary descriptors of the pages to be flushed, removing the auxiliary descriptor of the target page from the queue, the auxiliary descriptors of the pages to be flushed being configured to describe the page descriptors of the pages to be flushed. 2. The method according to claim 1 , wherein the number of the auxiliary descriptors that the queue can hold is a multiple of the number of the page descriptors that the resource pool can store, and the multiple is greater than 1. 3. The method according to claim 1 , wherein flushing of the pages to be flushed whose logical addresses are located in the different address ranges is handled by different transactions. 4. The method according to claim 1 , wherein selecting the predetermined number of the target pages from at least one of the plurality of groups comprises: determining, for each of the plurality of groups, an offset of the auxiliary descriptor of an oldest page to be flushed in the queue relative to the tail; sorting the plurality of groups based on the offsets respectively determined for the plurality of groups; and sequentially selecting the predetermined number of pages to be flushed from at least one of the plurality of groups as the target page based on the sorting. 5. The method according to claim 1 , wherein the auxiliary descriptors indicate at least the following: a position of the auxiliary descriptor in the queue, and a position of the page descriptor in the resource pool. 6. The method according to claim 1 , wherein the queue is stored in a volatile storage device of the storage system, and the resource pool is provided by at least one of the following: the volatile storage device, or the cache device. 7. The method according to claim 1 , further comprising: if it is determined that an other page is stored in the cache device, allocating a resource from the resource pool to store a page descriptor of the other page; and adding an auxiliary descriptor of the other page to a head of the queue. 8. The method according to claim 1 , wherein the auxiliary descriptors are smaller than the page descriptors. 9. An electronic device, comprising: a processor; and a memory coupled to the processor, the memory having instructions stored therein, and the instructions, when executed by the processor, causing the device to execute actions comprising: dividing a plurality of pages to be flushed into a plurality of groups based on respective logical addresses of the plurality of pages to be flushed in a cache device of the storage system, the logical addresses of the pages to be flushed in the same group being located in the same address range, and the plurality of groups corresponding to different address ranges; selecting a predetermined number of the target pages from at least one of the plurality of groups based on positions of the auxiliary descriptors of the pages to be flushed in each group in the queue; flushing a target page in the cache device to a persistent storage device of the storage system; releasing a resource storing a page descriptor of the target page to a resource pool, the resource pool being configured to provide resources to store page descriptors of pages to be flushed in the cache device; and if it is determined that an auxiliary descriptor of the target page is located at a tail of a queue of auxiliary descriptors of the pages to be flushed, removing the auxiliary descriptor of the target page from the queue, the auxiliary descriptors of the pages to be flushed being configured to describe the page descriptors of the pages to be flushed. 10. The electronic device according to claim 9 , wherein the number of the auxiliary descriptors that the queue can hold is a multiple of the number of the page descriptors that the resource pool can store, and the multiple is greater than 1. 11. The electronic device according to claim 9 , wherein flushing of the pages to be flushed whose logical addresses are located in the different address ranges is handled by different transactions. 12. The electronic device according to claim 9 , wherein selecting the predetermined number of the target pages from at least one of the plurality of groups comprises: determining, for each of the plurality of groups, an offset of the auxiliary descriptor of an oldest page to be flushed in the queue relative to the tail; sorting the plurality of groups based on the offsets respectively determined for the plurality of groups; and sequentially selecting the predetermined number of pages to be flushed from at least one of the plurality of groups as the target page based on the sorting. 13. The electronic device according to claim 9 , wherein the auxiliary descriptors indicate at least the following: a position of the auxiliary descriptor in the queue, and a position of the page descriptor in the resource pool. 14. The electronic device according to claim 9 , wherein the queue is stored in a volatile storage device of the storage system, and the resource pool is provided by at least one of the following: the volatile storage device, or the cache device. 15. The electronic device according to claim 9 , wherein the actions further comprise: if it is determined that an other page is stored in the cache device, allocating a resource from the resource pool to store a page descriptor of the other page; and adding an auxiliary descriptor of the other page to a head of the queue. 16. The electronic device according to claim 9 , wherein the auxiliary descriptors are smaller than the page descriptors. 17. A computer program product having a non-transitory computer readable medium which stores a set of instructions to manage a storage system; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of: dividing a plurality of pages to be flushed into a plurality of groups based on respective logical addresses of the plurality of pages to be flushed in a cache device of the storage system, the logical addresses of the pages to be flushed in the same group being located in the same address range, and the plurality of groups corresponding to different address ranges; selecting a predetermined number of the target pages from at least one of the plurality of groups based on positions of the auxiliary descriptors of the pages to be flushed in each group in the queue; flushing a target page in the cache device to a persistent storage device of the storage system; releasing a resource storing a page
Performance improvement · CPC title
with main memory updating (G06F12/0806 takes precedence) · CPC title
Capacity control, e.g. partitioning, end-of-life degradation · CPC title
Improving or facilitating administration, e.g. storage management · CPC title
with two or more cache hierarchy levels (with multilevel cache hierarchies G06F12/0811) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.