Method, electronic device, and computer program product for flushing data

US12175113B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12175113-B2
Application numberUS-202217824317-A
CountryUS
Kind codeB2
Filing dateMay 25, 2022
Priority dateOct 22, 2021
Publication dateDec 24, 2024
Grant dateDec 24, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

  • G06F3/0689Primary

    Disk arrays, e.g. RAID, JBOD · CPC title

  • Improving I/O performance · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12175113B2 cover?
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 …
Who is the assignee on this patent?
Emc Ip Holding Co Llc, Dell Products Lp
What technology area does this patent fall under?
Primary CPC classification G06F3/0689. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 24 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).