Creating and using multiple flush working sets in a data storage system

US12436715B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12436715-B2
Application numberUS-202318133117-A
CountryUS
Kind codeB2
Filing dateApr 11, 2023
Priority dateApr 11, 2023
Publication dateOct 7, 2025
Grant dateOct 7, 2025

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.

Multiple co-resident flush working sets are created in a data storage system. Each flush working set indicates host data that was received by the data storage system from at least one host computing device during a period of time corresponding to that flush working set. Host data indicated by the flush working sets is to be flushed from a storage processor of the data storage system to non-volatile data storage devices of the data storage system, and indications of host data within the flush working sets are organized according to logical block addresses of the indicated host data. Multiple independently executing flusher threads flush the host data indicated by at least one of the flush working sets from the storage processor to the non-volatile data storage devices of the data storage system.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: creating a plurality of co-resident flush working sets in a data storage system, wherein each one of the flush working sets indicates only host data that was received by the data storage system from at least one host computing device during a period of time corresponding to that flush working set, wherein host data indicated by the flush working sets is to be flushed from a storage processor of the data storage system to non-volatile data storage devices of the data storage system, wherein indications of host data within the flush working sets are organized according to logical block addresses of the indicated host data, wherein each flush working set includes a plurality of leaf nodes, wherein each leaf node stores second indications of page descriptors that are located within a page descriptor ring, wherein each page descriptor stores an indication of a block of received host data to be flushed and having a logical block address within a range of logical block addresses corresponding to the one of the leaf nodes that contains that page descriptor, and wherein the second indications of page descriptors are ordered ascendingly within each leaf node according to the logical block addresses of the blocks of host data indicated by the page descriptors; and flushing, by a plurality of independently executing flusher threads, host data indicated by at least one of the flush working sets from the storage processor to the non-volatile data storage devices of the data storage system. 2. The method of claim 1 , further comprising: creating the flush working sets by creating a currently active flush working set and a plurality of frozen flush working sets; adding new indications of host data received by the data storage system only to the currently active flush working set; and wherein the flusher threads flush host data indicated by at least one of the frozen flush working sets from the storage processor to the non-volatile data storage devices. 3. The method of claim 2 , further comprising: wherein the flusher threads flush host data indicated by an oldest one of the frozen flush working sets from the storage processor to the non-volatile data storage devices before flushing host data indicated by any other one of the frozen flush working sets. 4. The method of claim 3 , further comprising: detecting a flush working set creation event; in response to detecting the flush working set creation event: freezing the currently active flush working set such that no more indications of received host data are added to it, and creating a new currently active flush working set, such that indications of subsequently received host data are added to the new currently active flush working set. 5. The method of claim 4 , further comprising: further in response to detecting the flush working set creation event: in response to detecting that all host data indicated by the oldest one of the frozen flush working sets has not yet been completely flushed from the storage processor to the non-volatile data storage devices, delaying the freezing of the currently active flush working set and the creating of the new currently active flush working set until after all host data indicated by the oldest one of the frozen flush working sets has been completely flushed from the storage processor to the non-volatile data storage devices. 6. The method of claim 4 , wherein detecting the flush working set creation event comprises detecting that the currently active flush working set has consumed a threshold amount of a shared resource in the storage processor. 7. The method of claim 6 , wherein the shared resource in the storage processor comprises the page descriptor ring; and wherein the threshold amount comprises a percentage of a total number of page descriptors contained in the page descriptor ring. 8. The method of claim 7 , wherein the ranges of logical block addresses corresponding to the leaf nodes node in the currently active flush working set each have a first size; and wherein the new currently active flush working set is created such that the ranges of logical block addresses corresponding to the leaf nodes in the new currently active flush working set each have a second size that is different from the first size. 9. The method of claim 8 , wherein the second size is determined based on a previous pattern of host data writes. 10. A data storage system comprising: processing circuitry; a memory; a persistent memory; a plurality of non-volatile data storage drives; and wherein the memory has program code stored thereon, wherein the program code, when executed by the processing circuitry, causes the processing circuitry to: create a plurality of co-resident flush working sets in the persistent memory, wherein each one of the flush working sets indicates only host data that was received by the data storage system from at least one host computing device during a period of time corresponding to that flush working set, wherein host data indicated by the flush working sets is to be flushed from a storage processor of the data storage system to the non-volatile data storage devices of the data storage system, wherein indications of host data within the flush working sets are organized according to logical block addresses of the indicated host data, wherein each flush working set includes a plurality of leaf nodes, wherein each leaf node stores second indications of page descriptors that are located within a page descriptor ring, wherein each page descriptor stores an indication of a block of received host data to be flushed and having a logical block address within a range of logical block addresses corresponding to the one of the leaf nodes that contains that page descriptor, and wherein the second indications of page descriptors are ordered ascendingly within each leaf node according to the logical block addresses of the blocks of host data indicated by the page descriptors; and flush, by a plurality of independently executing flusher threads, host data indicated by at least one of the flush working sets from the persistent memory to the non-volatile data storage devices of the data storage system. 11. The data storage system of claim 10 , wherein the program code, when executed by the processing circuitry, further causes the processing circuitry to: create the flush working sets by creating a currently active flush working set and a plurality of frozen flush working sets; add new indications of host data received by the data storage system only to the currently active flush working set; and wherein the flusher threads flush host data indicated by at least one of the frozen flush working sets from the persistent memory to the non-volatile data storage devices. 12. The data storage system of claim 11 , wherein the program code, when executed by the processing circuitry, further causes the processing circuitry to: flush, by the flusher threads, host data indicated by an oldest one of the frozen flush working sets from the persistent memory to the non-volatile data storage devices before flushing host data indicated by any other one of the frozen flush working sets. 13. The data storage system of claim 12 , wherein the program code, when executed by the processing circuitry, further causes the processing circuitry to: detect a flush working set creation event; in response to detection of the flush working set creation event: freeze the currently active flush working set such that no more indications of received host data are added to it, and create a new currently active flush working set, such that indications of subsequently received ho

Assignees

Inventors

Classifications

  • Data buffering arrangements · CPC title

  • G06F3/0604Primary

    Improving or facilitating administration, e.g. storage management · CPC title

  • Non-volatile semiconductor memory arrays · CPC title

  • G06F3/0659Primary

    Command handling arrangements, e.g. command buffers, queues, command scheduling · 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 US12436715B2 cover?
Multiple co-resident flush working sets are created in a data storage system. Each flush working set indicates host data that was received by the data storage system from at least one host computing device during a period of time corresponding to that flush working set. Host data indicated by the flush working sets is to be flushed from a storage processor of the data storage system to non-vola…
Who is the assignee on this patent?
Dell Products Lp
What technology area does this patent fall under?
Primary CPC classification G06F3/0604. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 07 2025 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 10 related publications on this page (citations in our corpus or others sharing the same primary CPC).