IP Library Granted Patent US 9,092,140
Granted Patent B2
US 9,092,140 · App. 13/863,475 · Granted Jul 28, 2015

Dispersed storage write process

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 9,092,140
App. No.
13/863,475
Granted
Jul 28, 2015
Kind
B2
Abstract

A dispersed storage (DS) method begins by issuing a plurality of write commands to a plurality of DS storage units. The method continues by receiving a write acknowledgement from one of the plurality of DS storage units to produce a received write acknowledgement. The method continues by issuing a plurality of commit commands to the plurality of DS storage units when a write threshold number of the received write acknowledgements have been received. The method continues by receiving a commit acknowledgement from a DS storage unit of the plurality of DS storage units to produce a received commit acknowledgement. The method continues by issuing a plurality of finalize commands to the plurality of DS storage units when a write threshold number of the received commit acknowledgements have been received.

Claims (44)

1. A method for execution by a dispersed storage (DS) processing module, the method comprises:

issuing a plurality of write commands to a plurality of DS units to write data slices for storage in the plurality of DS units, in which the data slices are error encoded slices of data dispersed for storage among the plurality of DS units and in which a read threshold number of the data slices are required to recover the data, the read threshold number of the data slices being less than all of the error encoded slices of the data;

receiving a write threshold number of write acknowledgements from among the plurality of DS units within a first time period in response to the issuing of the plurality of write commands, the write threshold number for writing the data slices being less than all of the error encoded slices of the data;

issuing a plurality of commit commands to the plurality of DS units when the write threshold number of the write acknowledgements have been received within the first time period, the plurality of commit commands instructing the plurality of DS units to commit writing the data slices for storage;

receiving the write threshold number of commit acknowledgements from among the plurality of DS units to indicate that the write threshold number of the data slices are committed to be written for storage among the plurality of DS units; and

issuing a plurality of finalize commands to the plurality of DS units in response to receiving the write threshold number of the commit acknowledgements.

2. The method of claim 1 , wherein a respective write command of the plurality of write commands comprises:

a write operation code that includes a write instruction and an address of a corresponding one of the plurality of DS units; and

a respective data slice of the data slices.

3. The method of claim 1 , wherein

when the write threshold number of the write acknowledgements have not been received within the first time period, issuing rollback commands to the plurality of DS units to not write the data slices to undo the commit commands.

4. The method of claim 1 , wherein the issuing of the plurality of finalize commands further comprises:

issuing the plurality of finalize commands when the write threshold number of the commit acknowledgements have been received within a second time period; and

when the write threshold number of the commit acknowledgements have not been received within the second time period, issuing rollback commands to the plurality of DS units.

5. The method of claim 1 further comprises:

updating a DS virtual address table subsequent to issuing the plurality of finalize commands.

6. The method of claim 1 , wherein the read threshold number is equal to the write threshold number.

7. The method of claim 1 , wherein the read threshold number is greater than the write threshold number.

8. The method of claim 1 , wherein when the write threshold number of the write acknowledgements have not been received within the first time period, reissuing the write commands.

9. The method of claim 1 , wherein the write commands are used to write a new version of the data slices over older version of respective data slices stored in the plurality of DS units.

10. The method of claim 9 , wherein the new version of the data slices are not in an visible state, until in a state ready to accept the finalize commands.

11. A dispersed storage (DS) processing module comprises:

an interface module; and

a processing module operable to:

issue, via the interface module, a plurality of write commands to a plurality of DS units to write data slices for storage in the plurality of DS units, in which the data slices are error encoded slices of data dispersed for storage among the plurality of DS units and in which a read threshold number of the data slices are required to recover the data, the read threshold number of the data slices being less than all of the error encoded slices of the data;

receive, via the interface module, a write threshold number of write acknowledgements from among the plurality of DS units within a first time period in response to the issuing of the plurality of write commands, the write threshold number for writing the data slices being less than all of the error encoded slices of the data;

issue, via the interface module, a plurality of commit commands to the plurality of DS units when the write threshold number of the write acknowledgements have been received within the first time period, the plurality of commit commands instructing the plurality of DS units to commit writing the data slices for storage;

receive, via the interface module, the write threshold number of commit acknowledgements from among the plurality of DS units to indicate that the write threshold number of the data slices are committed to be written for storage among the plurality of DS units; and

issue, via the interface module, a plurality of finalize commands to the plurality of DS units in response to receiving the write threshold number of the commit acknowledgements.

12. The DS processing module of claim 11 , wherein a respective write command of the plurality of write commands comprises:

a write operation code that includes a write instruction and an address of a corresponding one of the plurality of DS units; and

a respective data slice of the data slices.

13. The DS processing module of claim 11 ,

when the write threshold number of the write acknowledgements have not been received within the first time period, issuing rollback commands to the plurality of DS units to not write the data slices.

14. The DS processing module of claim 11 , wherein the processing module issuing the plurality of finalize commands further comprises:

issuing the plurality of finalize commands when the write threshold number of the commit acknowledgements have been received within a second time period; and

when the write threshold number of the commit acknowledgements have not been received within the second time period, issuing rollback commands to the plurality of DS units to undo the commit command.

15. The DS processing module of claim 11 , wherein the processing module is further operable to:

update a DS virtual address table subsequent to issuing the plurality of finalize commands.

16. The DS processing module of claim 11 , wherein the read threshold number is equal to the write threshold number.

17. The DS processing module of claim 11 , wherein the read threshold number is greater than the write threshold number.

18. The DS processing module of claim 11 , wherein when the write threshold number of the write acknowledgements have not been received within the first time period, the processing module to reissue the write commands.

19. The DS processing module of claim 11 , wherein the processing module uses write commands to write a new version of the data slices over older version of respective data slices stored in the plurality of DS units.

20. The DS processing module of claim 19 , wherein the new version of the data slices are not in an visible state, until in a state ready to accept the finalize commands from the processing module.

Assignments (6)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2015
From: CILFONE, BART; BAPTIST, ANDREW; DHUSE, GREG; VOLVOVSKI, ILYA; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 035968/0958 →