Flushing directly ingested user data

US12468458B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-12468458-B1
Application numberUS-202418794078-A
CountryUS
Kind codeB1
Filing dateAug 5, 2024
Priority dateAug 5, 2024
Publication dateNov 11, 2025
Grant dateNov 11, 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.

For a flush request for a first block of user data directly stored into a physical block of non-volatile data storage, allocating a virtual layer block, and storing, in the virtual layer block, a first set of virtual block pointers indicating pages of the first block within the physical block. Pointers to the virtual block pointers in the first set are then stored into a leaf layer of a logical address mapping tree. The virtual layer block is identified for a subsequent flush request issued for a second block of user data directly stored into the physical block, and a second set of virtual block pointers indicating pages of the second block within the physical block is stored in the virtual layer block. Pointers to the virtual block pointers in the second set are stored into a leaf layer node of another logical address mapping tree.

First claim

Opening claim text (preview).

What is claimed is: 1 . A method comprising: receiving a first flush request indicating a first block of user data to be flushed; in response to detecting that the first block of user data was, when it was received, directly stored into a physical block of non-volatile data storage, detecting whether the first flush request is an initial flush request indicating user data directly stored into the physical block of non-volatile data storage; in response to detecting that the first flush request is the initial flush request indicating user data directly stored into the physical block of non-volatile data storage, allocating a virtual layer block for the physical block of non-volatile data storage; storing, in the virtual layer block, a first set of virtual block pointers, wherein the first set of virtual block pointers indicate locations of respective pages of the first block of user data within the physical block of the non-volatile data storage; and storing, in at least one leaf layer node of a first logical address mapping tree, pointers to the virtual block pointers in the first set of virtual block pointers stored in the virtual layer block. 2 . The method of claim 1 , further comprising: receiving a second flush request indicating a second block of user data to be flushed; in response to detecting that the second block of user data was, when it was received, directly stored into the physical block of non-volatile data storage, detecting whether the second flush request is the initial flush request indicating user data directly stored into the physical block of non-volatile data storage; in response to detecting that the second flush request is not the initial flush request indicating user data directly stored into the physical block of non-volatile data storage, identifying the virtual layer block previously allocated for the physical block of non-volatile data storage; storing, in the virtual layer block, a second set of virtual block pointers, wherein the second set of virtual block pointers indicate locations of respective pages of the second block of user data within the physical block of the non-volatile data storage; and storing, in at least one leaf layer node of a second logical address mapping tree, pointers to the virtual block pointers in the second set of virtual block pointers stored in the virtual layer block. 3 . The method of claim 2 , wherein the first block of user data was received in a first host I/O write request directed to a first logical volume; wherein the first logical address mapping tree maps logical block addresses in the first logical volume to locations in the non-volatile data storage; wherein the second block of user data was received in a second host I/O write request directed to a second logical volume; and wherein the second logical address mapping tree maps logical block addresses in the second logical volume to locations in the non-volatile data storage. 4 . The method of claim 3 , wherein storing, in the leaf layer node of the first logical address mapping tree, the pointers to the virtual block pointers in the first set of virtual block pointers stored in the virtual layer block, enables access to the pages of the first block of user data within the physical block of the non-volatile data storage using respective ones of the logical block addresses in the first logical volume; and wherein storing, in the leaf layer node of the second logical address mapping tree, the pointers to the virtual block pointers in the second set of virtual block pointers stored in the virtual layer block, enables access to the pages of the second block of user data within the physical block of the non-volatile data storage using respective ones of the logical block addresses in the second logical volume. 5 . The method of claim 4 , wherein the first block of user data was directly stored into the physical block of non-volatile data storage in response to detecting that a size of the first block of user data is at least as large as a minimum threshold; and wherein the second block of user data was directly stored into the physical block of non-volatile data storage in response to detecting that a size of the second block of user data is at least as large as the minimum threshold. 6 . The method of claim 5 , wherein directly storing the first block of user data and the second block of user data into the physical block of non-volatile data storage bypasses a non-volatile cache. 7 . The method of claim 6 , wherein the non-volatile data storage is configured as a RAID (Redundant Array of Independent Disks); and wherein the physical block of non-volatile data storage comprises a single RAID stripe. 8 . The method of claim 1 , further comprising: receiving a second flush request indicating a second block of user data to be flushed, wherein the second block of user data was, when it was received, directly stored into the physical block of non-volatile data storage; and in response to detecting an error in metadata for the physical block of non-volatile data storage, allocating a new physical block of non-volatile data storage, moving user data stored in the physical block of non-volatile data storage to the new physical block of non-volatile data storage, and marking the physical block of physical data storage as known bad. 9 . The method of claim 8 , wherein the metadata for the physical block of non-volatile data storage comprises a physical block descriptor for the physical block of non-volatile data storage, and further comprising: allocating a new virtual layer block and a new physical block descriptor for the new physical block of non-volatile data storage. 10 . A data storage system, comprising: processing circuitry and memory coupled to the processing circuitry, the memory storing instructions, wherein the instructions, when executed by the processing circuitry, cause the processing circuitry to: receive a first flush request indicating a first block of user data to be flushed; in response to detecting that the first block of user data was, when it was received, directly stored into a physical block of non-volatile data storage, detect whether the first flush request is an initial flush request indicating user data directly stored into the physical block of non-volatile data storage; in response to detecting that the first flush request is the initial flush request indicating user data directly stored into the physical block of non-volatile data storage, allocate a virtual layer block for the physical block of non-volatile data storage; store, in the virtual layer block, a first set of virtual block pointers, wherein the first set of virtual block pointers indicate locations of respective pages of the first block of user data within the physical block of the non-volatile data storage; and store, in at least one leaf layer node of a first logical address mapping tree, pointers to the virtual block pointers in the first set of virtual block pointers stored in the virtual layer block. 11 . The data storage system of claim 10 , wherein the instructions, when executed by the processing circuitry, further cause the processing circuitry to: receive a second flush request indicating a second block of user data to be flushed; in response to detecting that the second block of user data was, when it was received, directly stored into the physical block of non-volatile data storage, detect whether the second flush request is the initial flush request indicating user data directly stored into the physical block of non-volatile data storage; in response to detecting that the second flush request is not the initial flush request indicatin

Assignees

Inventors

Classifications

  • G06F3/0631Primary

    by allocating resources to storage systems · CPC title

  • Non-volatile semiconductor memory arrays · CPC title

  • G06F3/0619Primary

    in relation to data integrity, e.g. data losses, bit errors · 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 US12468458B1 cover?
For a flush request for a first block of user data directly stored into a physical block of non-volatile data storage, allocating a virtual layer block, and storing, in the virtual layer block, a first set of virtual block pointers indicating pages of the first block within the physical block. Pointers to the virtual block pointers in the first set are then stored into a leaf layer of a logical…
Who is the assignee on this patent?
Dell Products Lp
What technology area does this patent fall under?
Primary CPC classification G06F3/0631. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 11 2025 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).