Autonomous I/O ingestion and data flushing among nodes in storage systems

US12210755B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12210755-B2
Application numberUS-202318496283-A
CountryUS
Kind codeB2
Filing dateOct 27, 2023
Priority dateJan 26, 2022
Publication dateJan 28, 2025
Grant dateJan 28, 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.

Nodes in a storage system can autonomously ingest I/O requests and flush data to storage. First and second nodes determine a sequence separator, the sequence separator corresponding to an entry in a page descriptor ring that separates two flushing work sets (FWS). The first node receives an input/output (I/O) request and allocates a sequence identification (ID) number to the I/O request. The first node determines a FWS for the I/O request based on the sequence separator and the sequence ID number, and commits the I/O request using the sequence ID number. The I/O request and the sequence ID number are sent to the second node.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for nodes in a storage system to autonomously ingest I/O requests, the method comprising: communicating, by a first node, with a second node to determine a sequence separator, the sequence separator corresponding to an entry in a page descriptor ring that separates two flushing work sets (FWS); receiving, by the first node, an input/output (I/O) request; allocating, by the first node, a sequence identification (ID) number to the I/O request; determining, by the first node, a FWS for the I/O request based on the sequence separator and the sequence ID number; committing, by the first node, the I/O request using the sequence ID number; and sending, by the first node, the I/O request and the sequence ID number to the second node. 2. The method of claim 1 , further comprising: causing, by the first node, the second node to determine another sequence separator that separates one of the two FWSs from a third FWS by adding a predetermined value to the sequence separator. 3. The method of claim 1 , further comprising: causing, by the first node, the second node to compare the sequence ID number received from the first node to the sequence separator; and causing, by the first node, the second node to identify an FWS for the I/O request based on the comparison. 4. The method of claim 3 , further comprising: causing, by the first node, the second node to determine whether the sequence ID number has been allocated on the second node. 5. The method of claim 4 , further comprising: if the sequence ID number has not been allocated on the second node, causing, by the first node, the second node to allocate the sequence ID number on the second node to the I/O request. 6. A storage system with nodes that autonomously ingest I/O requests, the system including a processor configured to: communicate, by a first node, with a second node to determine a sequence separator, the sequence separator corresponding to an entry in a page descriptor ring that separates two flushing work sets (FWS); receive, at the first node, an input/output (I/O) request; allocate, at the first node, a sequence identification (ID) number to the I/O request; determine, at the first node, a FWS for the I/O request based on the sequence separator and the sequence ID number; commit, at the first node, the I/O request using the sequence ID number; and send, by the first node, the I/O request and the sequence ID number to the second node. 7. The storage system of claim 6 , the processor further configured to: cause, by the first node, the second node to determine another sequence separator that separates one of the two FWSs from a third FWS by adding a predetermined value to the sequence separator. 8. The storage system of claim 6 , the processor further configured to: cause, by the first node, the second node to compare the sequence ID number received from the first node to the sequence separator; and cause, by the first node, the second node to identify an FWS for the I/O request based on the comparison. 9. The storage system of claim 8 , the processor further configured to: cause, by the first node, the second node to determine whether the sequence ID number has been allocated on the second node. 10. The storage system of claim 9 , the processor further configured to: if the sequence ID number has not been allocated on the second node, cause, by the first node, the second node to allocate the sequence ID number on the second node to the I/O request. 11. A non-transitory processor-readable storage medium having stored thereon program code of one or more software programs for nodes in a storage system to autonomously ingest I/O requests, wherein the program code when executed by at least one processing device causes the at least one processing device to perform the following steps: communicating, by a first node, with a second node to determine a sequence separator, the sequence separator corresponding to an entry in a page descriptor ring that separates two flushing work sets (FWS); receiving, by the first node, an input/output (I/O) request; allocating, by the first node, a sequence identification (ID) number to the I/O request; determining, by the first node, a FWS for the I/O request based on the sequence separator and the sequence ID number; committing, by the first node, the I/O request using the sequence ID number; and sending, by the first node, the I/O request and the sequence ID number to the second node. 12. The non-transitory processor-readable storage medium of claim 11 , wherein the program code when executed by the at least one processing device causes the at least one processing device to perform the following additional steps: determining, by the first node, another sequence separator that separates one of the two FWSs from a third FWS by adding a predetermined value to the sequence separator. 13. The non-transitory processor-readable storage medium of claim 12 , wherein the program code when executed by at least one processing device causes the at least one processing device to perform the following additional steps: after committing the I/O request using the sequence ID number, decrementing, by the first node, the counter for pending I/O requests for the FWS. 14. The non-transitory processor-readable storage medium of claim 11 , wherein the program code when executed by at least one processing device causes the at least one processing device to perform the following additional steps: causing, by the first node, the second node to determine another sequence separator that separates one of the two FWSs from a third FWS by adding a predetermined value to the sequence separator. 15. The non-transitory processor-readable storage medium of claim 11 , wherein the program code when executed by at least one processing device causes the at least one processing device to perform the following additional steps: after determining the FWS for the I/O request, incrementing, by the first node, a counter for pending I/O requests for the FWS. 16. The non-transitory processor-readable storage medium of claim 11 , wherein the program code when executed by the at least one processing device causes the at least one processing device to perform the following additional steps: comparing a counter for pending I/O requests for the FWS to zero (0); and flushing data associated with the FWS to storage if the counter is equal to 0. 17. The non-transitory processor-readable storage medium of claim 11 , wherein the program code when executed by the at least one processing device causes the at least one processing device to perform the following additional steps: causing, by the first node, the second node to compare the sequence ID number received from the first node to the sequence separator; and causing, by the first node, the second node to identify an FWS for the I/O request based on the comparison. 18. The non-transitory processor-readable storage medium of claim 17 , wherein the program code when executed by the at least one processing device causes the at least one processing device to perform the following additional steps: causing, by the first node, the second node to determine whether the sequence ID number has been allocated on the second node. 19. The non-transitory processor-readable storage medium of claim 18 , wherein the program code when executed by the at least one processing device causes the at least one processing device to perform the following additional steps: if the sequence ID numb

Assignees

Inventors

Classifications

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • in relation to response time · CPC title

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

  • Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket · CPC title

  • Disk arrays, e.g. RAID, JBOD · 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 US12210755B2 cover?
Nodes in a storage system can autonomously ingest I/O requests and flush data to storage. First and second nodes determine a sequence separator, the sequence separator corresponding to an entry in a page descriptor ring that separates two flushing work sets (FWS). The first node receives an input/output (I/O) request and allocates a sequence identification (ID) number to the I/O request. The fi…
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 Jan 28 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 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).