IP Library Granted Patent US 10,466,930
Granted Patent B2
US 10,466,930 · App. 15/581,580 · Granted Nov 5, 2019

Method and system for fast ordered writes with atomic multicast

Inventors: Michael Nishimoto (Saratoga, CA); Samir Rajadnya (San Jose, CA)
Assignee: EMC IP Holding Company LLC
G06F3/0659G06F3/061G06F3/0683G06F13/1668G06F13/4022G06F13/4068G06F13/4282
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,466,930
App. No.
15/581,580
Granted
Nov 5, 2019
Kind
B2
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.

Claims (49)

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.

2. The method of claim 1 , further comprising:

receiving, after transmitting the third commit request, a first commit reply from the first storage module;

receiving, after transmitting fifth commit request, a second commit reply from the second storage module;

transmitting the first commit reply to the first client; and

transmitting the second commit reply to the first client.

3. The method of claim 1 , wherein the fabric is a Peripheral Component Interconnect Express (PCIe) fabric.

4. The method of claim 1 , wherein the first write request is received by a leaf tier switch in the fabric and transmitted, based on the multicast address, to the hub tier switch.

5. The method of claim 1 , wherein the first storage module comprises phase change storage media.

6. The method of claim 1 , wherein the third commit request is associated with a first client identifier specifying the first client and the fourth commit request is associated with a second client identifier specifying the second client.

7. The method of claim 1 , wherein processing the third commit request and the fourth commit request comprises:

storing the third commit request in a first client submission queue associated with first client and storing the fourth commit request in a second client submission queue associated with the second client,

wherein the third commit request is associated with a first global sequencing tag and the fourth commit request is associated with a second global sequencing tag, and

wherein the first global sequencing tag and the second global sequencing tag are based on the first chronological sequence.

8. The method of claim 7 ,

wherein the third commit request and the fourth commit request are processed based on the first global sequencing tag and the second global sequencing tag,

wherein processing the third commit request comprises storing a copy of the first data in persistent storage in the first storage module.

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.

10. The storage appliance of claim 9 ,

wherein the first write request is received by a leaf tier switch in the fabric,

wherein the leaf tier switch transmits, based on the multicast address, the first write request to the hub tier switch.

11. The storage appliance of claim 9 , wherein processing the third commit request and the fourth commit request comprises:

storing the third commit request in a first client submission queue associated with first client and storing the fourth commit request in a second client submission queue associated with the second client,

wherein the third commit request is associated with a first global sequencing tag and the fourth commit request is associated with a second global sequencing tag,

wherein the first global sequencing tag and the second global sequencing tag are based on the first chronological sequence,

wherein the third commit request and the fourth commit request are processed based on the first global sequencing tag and the second global sequencing tag,

wherein processing the third commit request comprises storing a copy of the first data in persistent storage in the first storage module.

12. The storage appliance of claim 9 , wherein the fabric is a Peripheral Component Interconnect Express (PCIe) fabric.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (042769/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0802 →
RELEASE OF SECURITY INTEREST AT REEL 042768 FRAME 0585 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0536 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2017
From: NISHIMOTO, MICHAEL; RAJADNYA, SAMIR
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 044453/0874 →
PATENT SECURITY INTEREST (CREDIT) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 042768/0585 →
PATENT SECURITY INTEREST (NOTES) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 042769/0001 →
Continuity (1)
Related Publication 20180314461A1 · Nov 1, 2018