Efficient token management in a storage system
US-2022027059-A1 · Jan 27, 2022 · US
US12175113B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12175113-B2 |
| Application number | US-202217824317-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 25, 2022 |
| Priority date | Oct 22, 2021 |
| Publication date | Dec 24, 2024 |
| Grant date | Dec 24, 2024 |
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.
In techniques for flushing data, based on a maturity level of a storage segment, the storage segment is inserted into a list to be flushed corresponding to the maturity level in a plurality of lists to be flushed, the plurality of lists to be flushed respectively correspond to different maturity levels, and the maturity level at least indicates a proportion of the number of data-written blocks to the total number of blocks of the storage segment; and the list to be flushed for the corresponding maturity level in the plurality of lists to be flushed is flushed to a disk array according to a descending order of the maturity levels. In this way, the bandwidth utilization of the disk array can be improved.
Opening claim text (preview).
The invention claimed is: 1. A method for flushing data, comprising: inserting, based on a maturity level of a storage segment, the storage segment into a list to be flushed having a corresponding maturity level corresponding to the maturity level of the storage segment in a plurality of lists to be flushed, individual ones of the plurality of lists to be flushed respectively corresponding to different maturity levels, and the maturity level at least indicating a proportion of the number of data-written blocks to the total number of blocks of the storage segment, wherein inserting the storage segment into the list based on the maturity level comprises: in response to the proportion being greater than a threshold proportion, inserting, based on the maturity level and a storage address indicated by the storage segment, the storage segment into a jump list corresponding to the maturity level, wherein the jump list comprises a plurality of nodes, wherein the jump list is one of the plurality of lists to be flushed, wherein the inserting is performed at least in part by comparing the storage address indicated by the storage segment to at least one storage address indicated by at least one other storage segment that was previously inserted into the jump list, in order to identify a node within the jump list into which the storage segment is inserted; and flushing the list to be flushed for the corresponding maturity level in the plurality of lists to be flushed into a disk array according to a descending order of the maturity levels. 2. The method according to claim 1 , wherein the node within the jump list into which the storage segment is inserted comprises at least a first-level index pointing to a next node within the jump list that also includes a first-level index, and wherein each node within the jump list includes a first-level index, wherein a plurality of the nodes within the jump list each further comprise a second-level index, each second-level index pointing to a next node within the jump list that also includes a second-level index, and wherein some nodes within the jump list do not include a second-level index, wherein a plurality of nodes within the nodes in the jump list each further comprise a third-level index, each third-level index pointing to a next node within the jump list that also includes a third-level index, wherein some nodes within the jump list do not include a third-level index, and wherein those storage segments that are inserted between a sequential pair of nodes within the jump list that each include a third-level index are all flushed by a single thread in a single flush, and wherein those storage segments that are inserted between a sequential pair of nodes within the jump list that include a second-level index are all flushed to a single stripe. 3. The method according to claim 2 , further comprising: allocating a total number of threads corresponding to a total number of nodes in the jump list that each include a third-level index; and flushing, using the allocated threads, the storage segments inserted into the jump list. 4. The method according to claim 1 , wherein flushing the list to be flushed for the corresponding maturity level in the plurality of lists to be flushed to the disk array comprises: flushing data that has been written in the storage segment inserted in the list to be flushed to the storage address of the disk array indicated by the storage segment. 5. The method according to claim 1 , further comprising: in response to an increase in the number of data-written blocks in the storage segment, updating the maturity level of the storage segment; and based on the updated maturity level of the storage segment, inserting the storage segment into the list to be flushed corresponding to the updated maturity level. 6. An electronic device, comprising: a processor; and a memory coupled to the processor, the memory having instructions stored therein, wherein the instructions, when executed by the processor, cause the device to perform actions comprising: inserting, based on a maturity level of a storage segment, the storage segment into a list to be flushed having a corresponding maturity level corresponding to the maturity level of the storage segment in a plurality of lists to be flushed, individual ones of the plurality of lists to be flushed respectively corresponding to different maturity levels, and the maturity level at least indicating a proportion of the number of data-written blocks to the total number of blocks of the storage segment, wherein inserting the storage segment into the list based on the maturity level comprises: in response to the proportion being greater than a threshold proportion, inserting, based on the maturity level and a storage address indicated by the storage segment, the storage segment into a jump list corresponding to the maturity level, wherein the jump list comprises a plurality of nodes, wherein the jump list is one of the plurality of lists to be flushed, wherein the inserting is performed at least in part by comparing the storage address indicated by the storage segment to at least one storage address indicated by at least one other storage segment that was previously inserted into the jump list, in order to identify a node within the jump list into which the storage segment is inserted; and flushing the list to be flushed for the corresponding maturity level in the plurality of lists to be flushed into a disk array according to a descending order of the maturity levels. 7. The electronic device according to claim 6 , wherein the node within the jump list into which the storage segment is inserted comprises at least a first-level index pointing to a next node within the jump list that also includes a first-level index, and wherein each node within the jump list includes a first-level index, wherein a plurality of the nodes within the jump list each further comprise a second-level index, each second-level index pointing to a next node within the jump list that also includes a second-level index, and wherein some nodes within the jump list do not include a second-level index, wherein a plurality of nodes within the nodes in the jump list each further comprise a third-level index, each third-level index pointing to a next node within the jump list that also includes a third-level index, and wherein those storage segments that are inserted between a sequential pair of nodes within the jump list that each include a third-level index are all flushed by a single thread in a single flush, and wherein those storage segments that are inserted between a sequential pair of nodes within the jump list that include a second-level index are all flushed to a single stripe. 8. The electronic device according to claim 7 , wherein the actions further comprise: allocating a total number of threads corresponding to a total number of nodes in the jump list that each include a third-level index; and flushing, using the allocated threads, the storage elements inserted into the jump list. 9. The electronic device according to claim 6 , wherein flushing the list to be flushed for the corresponding maturity level in the plurality of lists to be flushed to the disk array comprises: flushing data that has been written in the storage segment inserted in the list to be flushed to the storage address of the disk array indicated by the storage segment. 10. The electronic device according to claim 6 , wherein the actions further comprise: in response to an increase in the number of data-written blocks in the storage segment, updating the maturity level of the storage segment; and based on the updated maturity level of the storage segment, insertin
with main memory updating (G06F12/0806 takes precedence) · CPC title
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Improving or facilitating administration, e.g. storage management · CPC title
Disk arrays, e.g. RAID, JBOD · CPC title
Improving I/O performance · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.