Method and system for fast ordered writes with atomic multicast
First Claim
Patent Images
1. A method for processing write requests comprising:
- receiving, by a hub tier switch in a fabric from a first client, a first write request comprising a first data and a multicast address, wherein the hub tier switch is associated with the multicast address;
transmitting, by the hub tier switch and in response to the first write request, a second write request to a first storage module and a third write request to a second storage module;
receiving, by the hub tier switch from a second client, a fourth write request comprising a second data and the multicast address;
transmitting, by the hub tier switch and in response to the fourth write request, a fifth write request to the first storage module and a sixth write request to the second storage module;
receiving, by the hub tier switch, a first commit request originating from the first client and a second commit request originating from the second client, wherein the first commit request and the second commit request each comprise the multicast address, wherein the first commit request is associated with the first write request and the second commit request is associated with the fourth write request;
transmitting, by the hub tier switch to the first storage module, a third commit request associated with the first commit request and a fourth commit request associated with the second commit request;
transmitting, by the hub tier switch to the second storage module, a fifth commit request associated with the first commit request and a sixth commit request associated with the second commit request;
processing, by the first storage module, the third commit request and the fourth commit request, wherein the third commit request is processed before the fourth commit request based on a first global submission queue, wherein the first global submission queue organizes each commit request into a first chronological sequence based on when each commit request was received by the first storage module; and
processing, by the second storage module, the fifth commit request and the sixth commit request, wherein the fifth commit request is processed before the sixth commit request based on a second global submission queue, where the second global submission queue organizes each commit request into a second chronological sequence based on when each commit request was received by the second storage module.
7 Assignments
0 Petitions
Accused Products
Abstract
In general, embodiments of the technology relate to a method and system for performing fast ordered writes in a storage appliance that includes multiple separate storage modules. More specifically, embodiments of the technology enable multicasting of data to multiple storage modules in a storage appliance, where the order in which the write requests are processed is the same across all storage modules in the storage appliance.
69 Citations
12 Claims
-
1. A method for processing write requests comprising:
-
receiving, by a hub tier switch in a fabric from a first client, a first write request comprising a first data and a multicast address, wherein the hub tier switch is associated with the multicast address; transmitting, by the hub tier switch and in response to the first write request, a second write request to a first storage module and a third write request to a second storage module; receiving, by the hub tier switch from a second client, a fourth write request comprising a second data and the multicast address; transmitting, by the hub tier switch and in response to the fourth write request, a fifth write request to the first storage module and a sixth write request to the second storage module; receiving, by the hub tier switch, a first commit request originating from the first client and a second commit request originating from the second client, wherein the first commit request and the second commit request each comprise the multicast address, wherein the first commit request is associated with the first write request and the second commit request is associated with the fourth write request; transmitting, by the hub tier switch to the first storage module, a third commit request associated with the first commit request and a fourth commit request associated with the second commit request; transmitting, by the hub tier switch to the second storage module, a fifth commit request associated with the first commit request and a sixth commit request associated with the second commit request; processing, by the first storage module, the third commit request and the fourth commit request, wherein the third commit request is processed before the fourth commit request based on a first global submission queue, wherein the first global submission queue organizes each commit request into a first chronological sequence based on when each commit request was received by the first storage module; and processing, by the second storage module, the fifth commit request and the sixth commit request, wherein the fifth commit request is processed before the sixth commit request based on a second global submission queue, where the second global submission queue organizes each commit request into a second chronological sequence based on when each commit request was received by the second storage module. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A storage appliance, comprising:
-
a fabric; a storage array operatively connected to the fabric and comprising a first storage module and a second storage module, wherein the fabric is programmed to; receive, by a hub tier switch in the fabric from a first client, a first write request comprising a first data and a multicast address, wherein the hub tier switch is associated with the multicast address; transmit, by the hub tier switch and in response to the first write request, a second write request to the first storage module and a third write request to the second storage module; receive, by the hub tier switch from a second client, a fourth write request comprising a second data and the multicast address; transmit, by the hub tier switch and in response to the fourth write request, a fifth write request to the first storage module and a sixth write request to the second storage module; receive, by the hub tier switch, a first commit request originating from the first client and a second commit request originating from the second client, wherein the first commit request and the second commit request each comprise the multicast address, wherein the first commit request is associated with the first write request and the second commit request is associated with the fourth write request; transmit, by the hub tier switch to the first storage module, a third commit request associated with the first commit request and a fourth commit request associated with the second commit request; transmit, by the hub tier switch to the second storage module, a fifth commit request associated with the first commit request and a sixth commit request associated with the second commit request; wherein the first storage module is configured to process the third commit request and the fourth commit request, wherein the third commit request is processed before the fourth commit request based on a first global submission queue, wherein the first global submission queue that organizes each commit request into a first chronological sequence based on when each commit request was received by the first storage module; and wherein the second storage module is configured to process the fifth commit request and the sixth commit request, wherein the fifth commit request is processed before the sixth commit request based on a second global submission queue, wherein the second global submission queue that organizes each commit request into a second chronological sequence based on when each commit request was received by the second storage module. - View Dependent Claims (10, 11, 12)
-
Specification