Incremental raid stripe update parity calculation
US-2019073265-A1 · Mar 7, 2019 · US
US12547438B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12547438-B2 |
| Application number | US-202217747277-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 18, 2022 |
| Priority date | May 18, 2022 |
| Publication date | Feb 10, 2026 |
| Grant date | Feb 10, 2026 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A network virtualization device receives a storage request from a compute instance executed by a host machine separate from the network virtualization device, the storage request comprising data to be stored. Responsive to receiving the storage request, the network virtualization device divides the data to be stored into a set of one or more data stripes. For a first data stripe in the set of data stripes, the network virtualization device determines, from a plurality of extent servers, a first extent server to which the first data stripe is to be sent for storing the first data stripe, transmits the first data stripe to the first extent server, wherein the first extent server stores the first data stipe to a first physical storage device, and receives, from the first extent server, an acknowledgement confirming that the first data stripe was stored.
Opening claim text (preview).
The invention claimed is: 1 . A method comprising: responsive to receiving a storage request at a network virtualization device, wherein the storage request originates from a compute instance executed by a host machine separate from the network virtualization device, and wherein the storage request comprises data to be stored, performing by the network virtualization device: dividing the data to be stored into a set of one or more data stripes; for a first data stripe in the set of data stripes, performing by the network virtualization device: determining, from a plurality of extent servers, a first extent server to which the first data stripe is to be sent for storing the first data stripe; transmitting the first data stripe to the first extent server, wherein the first extent server stores the first data stripe to a first physical storage device; and receiving, from the first extent server, an acknowledgement confirming that the first data stripe was stored. 2 . The method of claim 1 , further comprising, in response to receiving the acknowledgement, for each of the one or more data stripes of the one or more data stripes other than the first data stripe, confirming that each data stripe was stored by a respective extent server, transmitting, by the network virtualization device and to the compute instance, the confirmation that each data stripe was successfully stored. 3 . The method of claim 1 , wherein the first extent server stores the first data stripe in the first physical storage device that is accessible to the first extent server, wherein the first extent server sends the acknowledgement in response to storing the first data stripe on the first physical storage device. 4 . The method of claim 3 , wherein a group of servers comprises the first extent server and one or more other extent servers, wherein the first extent server transmits the first data stripe to the one or more other extent servers of the group of servers for storage by the one or more other extent servers. 5 . The method of claim 1 , further comprising, for a second data stripe in the set of data stripes, by the network virtualization device: determining, from the plurality of extent servers, a second extent server to which the second data stripe is to be sent for storing the second data strip, wherein the second extent server is different from the first extent server; transmitting the second data stripe to the second extent server, wherein the second extent server stores the second data stripe to a second physical storage device, wherein the second physical storage device is different from the first physical storage device; and receiving, from the second extent server, an acknowledgement confirming that the second data stripe was stored. 6 . The method of claim 5 , further comprising identifying, by the network virtualization device and among one or more identified extent servers, a primary candidate leader server and a secondary candidate leader server, wherein the secondary candidate leader server comprises the first extent server, wherein the primary candidate leader server comprises a third extent server and further comprising, by the network virtualization device at a time prior to transmitting the first data stripe to the first extent server: transmitting, to the third extent server, the first data stripe; and receiving, from the third extent server, a notification that the third extent server is not a leader, wherein the first data stripe is transmitted to the first extent server in response to receiving the notification. 7 . The method of claim 1 , wherein generating the one or more data stripes comprises applying a redundant array of independent disks striping algorithm (“RAID0 algorithm”) to divide the data to be stored into the set of data stripes. 8 . The method of claim 1 , wherein the storage request is a non-volatile memory express (“NVMe”) protocol request. 9 . A system, comprising: a network virtualization device comprising: one or more processors; and a non-transitory computer-readable storage medium comprising computer-executable instructions that, when executed by the one or more processors, cause the system to: responsive to receiving a storage request comprising data to be stored, the storage request originating from a compute instance executed by a host machine separate from the network virtualization device, dividing the data to be stored into a set of one or more data stripes; for a first data stripe in the set of data stripes, determining, from a plurality of extent servers, a first extent server to which the first data stripe is to be sent for storing the first data stripe; transmitting the first data stripe to the first extent server, wherein the first extent server stores the first data stripe to a first physical storage device; and receiving, from the first extent server, an acknowledgement confirming that the first data stripe was stored. 10 . The system of claim 9 , wherein the non-transitory computer-readable medium further comprises instructions that, when executed by the one or more processors, cause the system to transmit to the compute instance, in response to receiving the acknowledgement, for each of the one or more data stripes of the one or more data stripes other than the first data stripe, confirming that each data stripe was stored by a respective extent server, the confirmation that each data stripe was successfully stored. 11 . The system of claim 9 , wherein the first extent server stores the first data stripe in the first physical storage device that is accessible to the first extent server, wherein the first extent server sends the acknowledgement in response to storing the first data stripe on the first physical storage device. 12 . The system of claim 11 , wherein a group of servers comprises the first extent server and one or more other extent servers, wherein the first extent server transmits the first data stripe to the one or more other extent servers of the group of servers for storage by the one or more other extent servers. 13 . The system of claim 9 , the non-transitory computer-readable medium further comprising instructions that, when executed by the one or more processors, cause the system to: for a second data stripe in the set of data stripes: determine, from the plurality of extent servers, a second extent server to which the second data stripe is to be sent for storing the second data strip, wherein the second extent server is different from the first extent server; transmit the second data stripe to the second extent server, wherein the second extent server stores the second data stripe to a second physical storage device, wherein the second physical storage device is different from the first physical storage device; and receive, from the second extent server, an acknowledgement confirming that the second data stripe was stored. 14 . The system of claim 13 , the non-transitory computer-readable medium further comprising instructions that, when executed by the one or more processors, cause the system to: further comprising identify, by the network virtualization device and among one or more identified extent servers, a primary candidate leader server and a secondary candidate leader server; wherein the secondary candidate leader server comprises the first extent server; wherein the primary candidate leader server comprises a third extent server; and wherein the non-transitory computer-readable medium further comprises instructions that, when executed by the one or more processors, cause the system to: at a time prior to transmitting the f
I/O management, e.g. providing access to device drivers or storage · CPC title
Disk arrays, e.g. RAID, JBOD · CPC title
Plurality of storage devices · CPC title
Improving or facilitating administration, e.g. storage management · CPC title
Network integration; Enabling network access in virtual machine instances · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.