Uninterrupted data flushing in storage systems

US11687274B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11687274-B2
Application numberUS-202117513126-A
CountryUS
Kind codeB2
Filing dateOct 28, 2021
Priority dateOct 28, 2021
Publication dateJun 27, 2023
Grant dateJun 27, 2023

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.

A method is used for uninterrupted data flushing in a storage system. An input/output (I/O) request is received. A pointer for a filling flushing work set (FWS) is atomically switching. A copy of the pointer for the filling FWS is saved, and the counter associated with a FWS referenced by the saved copy of the pointer is incremented. The saved copy of the pointer and the pointer for the filling FWS are compared, and upon determining that the saved copy of the pointer and the pointer for the filling are FWS equal, the I/O request is committed to a page descriptor ring and the counter associated with the FWS referenced by the saved copy of the pointer is decremented.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for uninterrupted data flushing in a storage system, the method comprising: receiving an input/output (I/O) request; atomically switching a pointer for a filling flushing work set (FWS); saving a copy of the pointer for the filling FWS; incrementing a counter associated with a FWS referenced by the saved copy of the pointer; comparing the saved copy of the pointer and the pointer for the filling FWS; and upon determining that the saved copy of the pointer and the pointer for the filling FWS are equal, committing the I/O request to a page descriptor ring and decrementing the counter associated with the FWS referenced by the saved copy of the pointer. 2. The method of claim 1 , further comprising: upon determining that the saved copy of the pointer and the pointer for the filling FWS are not equal, decrementing the counter associated with the FWS referenced by the saved copy of the pointer; and repeating the steps of saving the copy of the pointer for the filling FWS, incrementing the counter associated with the FWS referenced by the saved copy of the pointer, and comparing the saved copy of the pointer and the pointer for the filling FWS until the saved copy of the pointer and the pointer for the filling FWS are FWS are equal. 3. The method of claim 1 , further comprising: sending the I/O request and an identification of the filling FWS to a peer node for commitment. 4. The method of claim 1 , further comprising: monitoring the counter associated with the FWS referenced by the saved copy of the pointer until the counter reaches zero (0); and when the counter reaches zero (0), flushing data from the FWS referenced by the saved copy of the pointer. 5. The method of claim 4 , further comprising: sending an instruction to another node to switch the filling FWS. 6. The method of claim 5 , further comprising: upon confirmation from the other node that its filling FWS has been switched and the counter reaching zero (0), flushing data from the FWS referenced by the saved copy of the pointer. 7. A system for uninterrupted data flushing in a storage system, the system including a processor configured to: receive an input/output (I/O) request; atomically switch a pointer for a filling flushing work set (FWS); save a copy of the pointer for the filling FWS; increment a counter associated with a FWS referenced by the saved copy of the pointer; compare the saved copy of the pointer and the pointer for the filling FWS; and upon determining that the saved copy of the pointer and the pointer for the filling FWS are equal, commit the I/O request to a page descriptor ring and decrementing the counter associated with the FWS referenced by the saved copy of the pointer. 8. The system of claim 7 , wherein the processor is further configured to: upon determining that the saved copy of the pointer and the pointer for the filling FWS are not equal, decrement the counter associated with the FWS referenced by the saved copy of the pointer; and repeat the steps of saving the copy of the pointer for the filling FWS, incrementing the counter associated with the FWS referenced by the saved copy of the pointer, and comparing the saved copy of the pointer and the pointer for the filling FWS until the saved copy of the pointer and the pointer for the filling FWS are equal. 9. The system of claim 7 , wherein the processor is further configured to: send the I/O request and an identification of the filling FWS to a peer node for commitment. 10. The system of claim 7 , wherein the processor is further configured to: monitor the counter associated with the FWS referenced by the saved copy of the pointer until the counter reaches zero (0); and when the counter reaches zero (0), flush data from the FWS referenced by the saved copy of the pointer. 11. The system of claim 10 , wherein the processor is further configured to: send an instruction to another node to switch the filling FWS. 12. The system of claim 11 , wherein the processor is further configured to: upon confirmation from the other node that its filling FWS has been switched and the counter reaching zero (0), flush data from the FWS referenced by the saved copy of the pointer.

Assignees

Inventors

Classifications

  • G06F3/0655Primary

    Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices · CPC title

  • Improving I/O performance · CPC title

  • G06F3/067Primary

    Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title

  • 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 US11687274B2 cover?
A method is used for uninterrupted data flushing in a storage system. An input/output (I/O) request is received. A pointer for a filling flushing work set (FWS) is atomically switching. A copy of the pointer for the filling FWS is saved, and the counter associated with a FWS referenced by the saved copy of the pointer is incremented. The saved copy of the pointer and the pointer for the filling…
Who is the assignee on this patent?
Dell Products Lp
What technology area does this patent fall under?
Primary CPC classification G06F3/0655. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 27 2023 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).