IP Library Granted Patent US 9,652,470
Granted Patent B2
US 9,652,470 · App. 14/306,335 · Granted May 16, 2017

Storing data in a dispersed storage network

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,652,470
App. No.
14/306,335
Granted
May 16, 2017
Kind
B2
Abstract

A method begins by a dispersed storage (DS) processing module transmitting a set of write commands for storing a set of encoded data slices in storage units of a dispersed storage network (DSN) and determining whether at least a first threshold number of write responses have been received within a response time period. When the at least the first threshold number of the write responses have been received within the response time period, the method continues with the DS processing module determining whether a total number of responses have been received within another response time period. When the total number of responses have not been received within the other response time period, the method continues with the DS processing module issuing a sub-set of write commit commands corresponding to a response number of encoded data slices for which a response was received.

Claims (61)

1. A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:

transmitting a set of write commands for storing a set of encoded data slices in storage units of the DSN, wherein a data segment is dispersed storage error encoded into the set of encoded data slices, wherein the set of encoded data slices includes a total number of encoded data slices, wherein a threshold number of encoded data slices is needed to recover the data segment, and wherein the threshold number is less than the total number;

determining whether at least a first threshold number of write responses have been received within a first response time period;

when the at least the first threshold number of the write responses have been received within the first response time period and the at least the first threshold number is less than the total number, determining whether at least a second threshold number of the write responses have been received within a second response time period, wherein the first threshold number is less than the second threshold number and wherein the second response time period is subsequent to the first response time period;

when the at least the second threshold number of the write responses have been received within the second response time period and the at least the second threshold number is less than the total number, determining whether a total number of write responses have been received within a third response time period, wherein the second threshold number is less than the total number and wherein the third response time period is subsequent to the second response time period; and

when the total number of write responses have not been received within the third response time period, issuing a sub-set of write commit commands corresponding to a response number of encoded data slices for which a write response was received, wherein the response number is less than the total number and is equal to or greater than the at least the second threshold number.

2. The method of claim 1 further comprises:

when the at least the first threshold number of the write responses have not been received within the first response time period, indicating a write failure.

3. The method of claim 1 further comprises:

when the at least the first threshold number of the write responses have been received within the first response time period and the at least the first threshold number is equal to the total number, issuing a set of write commit commands corresponding to the set of encoded data slices.

4. The method of claim 1 further comprises:

when the at least the second threshold number of the write responses have not been received within the second response time period, issuing a second sub-set of write commit commands corresponding to a second response number of encoded data slices for which the write response was received prior to expiration of the second response time period.

5. The method of claim 1 further comprises:

when the at least the second threshold number of the write responses have been received within the second response time period and the at least the second threshold number is equal to the total number, issuing a set of write commit commands corresponding to the set of encoded data slices.

6. The method of claim 1 further comprises:

when the total number of write responses have been received within the third response time period, issuing a set of write commit commands corresponding to the set of encoded data slices.

7. The method of claim 1 further comprises:

prior to expiration of the third response time period, determining whether at least a fourth threshold number of write responses have been received within a fourth response time period, wherein the fourth threshold number is less than the total number and wherein the fourth response time period is a portion of the third response time period and is subsequent to the second response time period; and

when the at least the fourth threshold number of the write responses have been received within the fourth response time period and the at least the fourth threshold number is less than the total number, determining whether the total number of write responses have been received within the third response time period.

8. The method of claim 1 further comprises:

pre-establishing the first, second, and third response time periods.

9. The method of claim 1 further comprises:

determining the second response time period based on the first response time period and the receiving of the at least the first threshold number of write responses; and

determining the third response time period based on the receiving of the at least the second threshold number of write responses.

10. A dispersed storage (DS) module of a dispersed storage network (DSN), the DS module comprises:

a first module, when operable within a computing device, causes the computing device to:

transmit a set of write commands for storing a set of encoded data slices in storage units of the DSN, wherein a data segment is dispersed storage error encoded into the set of encoded data slices, wherein the set of encoded data slices includes a total number of encoded data slices, wherein a threshold number of encoded data slices is needed to recover the data segment, and wherein the threshold number is less than the total number;

a second module, when operable within the computing device, causes the computing device to:

determine whether at least a first threshold number of write responses have been received within a first response time period;

a third module, when operable within the computing device, causes the computing device to:

when the at least the first threshold number of the write responses have been received within the first response time period and the at least the first threshold number is less than the total number, determine whether at least a second threshold number of the write responses have been received within a second response time period, wherein the first threshold number is less than the second threshold number and wherein the second response time period is subsequent to the first response time period;

a fourth module, when operable within the computing device, causes the computing device to:

when the at least the second threshold number of the write responses have been received within the second response time period and the at least the second threshold number is less than the total number, determine whether a total number of write responses have been received within a third response time period, wherein the second threshold number is less than the total number and wherein the third response time period is subsequent to the second response time period; and

a fifth module, when operable within the computing device, causes the computing device to:

when the total number of write responses have not been received within the third response time period, issue a sub-set of write commit commands corresponding to a response number of encoded data slices for which a write response was received, wherein the response number is less than the total number and is equal to or greater than the at least the second threshold number.

11. The DS module of claim 10 further comprises:

the second module, when operable within the computing device, further causes the computing device to:

when the at least the first threshold number of the write responses have not been received within the first response time period, indicate a write failure.

12. The DS module of claim 10 further comprises:

the second module, when operable within the computing device, further causes the computing device to:

when the at least the first threshold number of the write responses have been received within the first response time period and the at least the first threshold number is equal to the total number, issue a set of write commit commands corresponding to the set of encoded data slices.

13. The DS module of claim 10 further comprises:

the third module, when operable within the computing device, further causes the computing device to:

when the at least the second threshold number of the write responses have not been received within the second response time period, issue a second sub-set of write commit commands corresponding to a second response number of encoded data slices for which the write response was received prior to expiration of the second response time period.

14. The DS module of claim 10 further comprises:

the third module, when operable within the computing device, further causes the computing device to:

when the at least the second threshold number of the write responses have been received within the second response time period and the at least the second threshold number is equal to the total number, issue a set of write commit commands corresponding to the set of encoded data slices.

15. The DS module of claim 10 further comprises:

the fourth module, when operable within the computing device, further causes the computing device to:

when the total number of write responses have been received within the third response time period, issue a set of write commit commands corresponding to the set of encoded data slices.

16. The DS module of claim 10 further comprises:

the fourth module, when operable within the computing device, further causes the computing device to:

prior to expiration of the third response time period, determine whether at least a fourth threshold number of write responses have been received within a fourth response time period, wherein the fourth threshold number is less than the total number and wherein the fourth response time period is a portion of the third response time period and is subsequent to the second response time period; and

when the at least the fourth threshold number of the write responses have been received within the fourth response time period and the at least the fourth threshold number is less than the total number, determine whether the total number of write responses have been received within the third response time period.

17. The DS module of claim 10 further comprises:

a sixth module, when operable within the computing device, causes the computing device to:

pre-establish the first, second, and third response time periods.

18. The DS module of claim 10 further comprises:

a sixth module, when operable within the computing device, causes the computing device to:

determine the second response time period based on the first response time period and the receiving of the at least the first threshold number of write responses; and

determine the third response time period based on the receiving of the at least the second threshold number of write responses.

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 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2014
From: VOLVOVSKI, ILYA; KHADIWALA, RAVI; DHUSE, GREG; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 033347/0909 →