IP Library Granted Patent US 9,311,187
Granted Patent B2
US 9,311,187 · App. 14/088,794 · Granted Apr 12, 2016

Achieving storage compliance 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,311,187
App. No.
14/088,794
Granted
Apr 12, 2016
Kind
B2
Abstract

A method begins by a dispersed storage (DS) processing module receiving a request to store data in a dispersed storage network and determining dispersed storage error encoding parameters for encoding the data into sets of encoded data slices. The method continues with the DS processing module determining whether the request includes a desired write reliability indication. When the request includes the desired write reliability indication, the method continues with the DS processing module determining whether storage of the sets of encoded data slices is meeting the desired write reliability indication. When storage of a set of encoded data slices is not meeting the desired write reliability indication, the method continues with the DS processing module determining a storage compliance process for the set of encoded data slices to meet the desired write reliability indication and executing the storage compliance process for the set of encoded data slices.

Claims (75)

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:

receiving, from a device, a request to store data in the DSN;

determining, for the request, dispersed storage error encoding parameters for encoding the data into a plurality of sets of encoded data slices, wherein the dispersed storage error encoding parameters includes a per set decode threshold, a per set write threshold, and a per set total number, wherein the per set decode threshold indicates a number of encoded data slices of a set of encoded data slices required to construct a corresponding segment of the data, the per set write threshold indicates a number of encoded data slices of the set of encoded data slices that are to be stored for a successful storage operation, and the per set total number indicates the number of encoded data slices in the set of encoded data slices;

determining whether the request includes a desired write reliability indication, wherein the desired write reliability indication indicates a desired level of write reliability that meets or exceeds the per set write threshold; and

when the request includes the desired write reliability indication:

while executing storage of the plurality of sets of encoded data slices in accordance with the dispersed storage error encoding parameters, determining whether the storage of the plurality of sets of encoded data slices is meeting the desired write reliability indication;

when storage of the set of encoded data slices of the plurality of sets of encoded data slices is not meeting the desired write reliability indication, determining a storage compliance process for the set of encoded data slices to meet the desired write reliability indication; and

executing the storage compliance process for the set of encoded data slices.

2. The method of claim 1 , wherein the desired write reliability indication comprises:

a value in a range between the per set write threshold and the per set total number.

3. The method of claim 1 , wherein the determining the dispersed storage error encoding parameters comprises:

determining a vault based on at least one of the request and the device; and

determining the per set decode threshold, the per set write threshold, and the per set total number based on information regarding the vault.

4. The method of claim 1 , wherein the executing the storage compliance process comprises:

initiating a rebuilding process for encoded data slices of the set of encoded data slices that were not successfully stored during the execution of storage.

5. The method of claim 1 , wherein the executing the storage compliance process comprises:

initiating a storage unit retry process for encoded data slices of the set of encoded data slices that were not successfully stored during the execution of storage.

6. The method of claim 1 , wherein the executing the storage compliance process comprises:

sending a message to the device indicating that the storage of the set of encoded data slices met the per set write threshold but did not meet the desired write reliability indication;

receiving a response from the device requesting a storage retry of encoded data slices of the set of encoded data slices that were not successfully stored during the execution of storage; and

retrying storage of the encoded data slices of the set of encoded data slices that were not successfully stored during the execution of storage.

7. The method of claim 1 further comprises:

while executing the storage of the plurality of sets of encoded data slices in accordance with the dispersed storage error encoding parameters, entering a loop that includes:

determining whether the storage of one set of the plurality of sets of encoded data slices is meeting the desired write reliability indication;

when the storage of the one set of the plurality of sets of encoded data slices is not meeting the desired write reliability indication, flagging the one set of the plurality of sets of encoded data slices and determining whether the one set of the plurality of sets of encoded data slices is a last set of the plurality of sets of encoded data slices;

when the storage of the one set of the plurality of sets of encoded data slices is meeting the desired write reliability indication, determining whether the one set of the plurality of sets of encoded data slices is the last set of the plurality of sets of encoded data slices;

when the one set of the plurality of sets of encoded data slices is not the last set of the plurality of sets of encoded data slices, repeating the loop for another one set of the plurality of sets of encoded data slices;

when the one set of the plurality of sets of encoded data slices is the last set of the plurality of sets of encoded data slices, exiting the loop;

compiling a list of sets of encoded data slices of the plurality of sets of encoded data slices that did not meet the desired write reliability indication to produce a list of sets;

determining the storage compliance process for the list of sets; and

executing the storage compliance process for the sets of encoded data slices of the plurality of sets of encoded data slices that did not meet the desired write reliability indication based on the list of sets.

8. The method of claim 1 further comprises:

when the request does not include the desired write reliability indication, executing the storage of the plurality of sets of encoded data slices in accordance with the dispersed storage error encoding parameters.

9. The method of claim 1 further comprises:

when the storage of the set of encoded data slices of the plurality of sets of encoded data slices is meeting the desired write reliability indication, indicating that the set of encoded data slices met the desired write reliability indication.

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:

receive, from a device, a request to store data in the DSN;

determine, for the request, dispersed storage error encoding parameters for encoding the data into a plurality of sets of encoded data slices, wherein the dispersed storage error encoding parameters includes a per set decode threshold, a per set write threshold, and a per set total number, wherein the per set decode threshold indicates a number of encoded data slices of a set of encoded data slices required to construct a corresponding segment of the data, the per set write threshold indicates a number of encoded data slices of the set of encoded data slices that are to be stored for a successful storage operation, and the per set total number indicates the number of encoded data slices in the set of encoded data slices;

determine whether the request includes a desired write reliability indication, wherein the desired write reliability indication indicates a desired level of write reliability that meets or exceeds the per set write threshold; and

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

when the request includes the desired write reliability indication:

while executing storage of the plurality of sets of encoded data slices in accordance with the dispersed storage error encoding parameters, determine whether the storage of the plurality of sets of encoded data slices is meeting the desired write reliability indication;

when storage of the set of encoded data slices of the plurality of sets of encoded data slices is not meeting the desired write reliability indication, determine a storage compliance process for the set of encoded data slices to meet the desired write reliability indication; and

execute the storage compliance process for the set of encoded data slices.

11. The DS module of claim 10 , wherein the desired write reliability indication comprises:

a value in a range between the per set write threshold and the per set total number.

12. The DS module of claim 10 , wherein the first module functions to determine the dispersed storage error encoding parameters by:

determining a vault based on at least one of the request and the device; and

determining the per set decode threshold, the per set write threshold, and the per set total number based on information regarding the vault.

13. The DS module of claim 10 , wherein the second module functions to execute the storage compliance process by:

initiating a rebuilding process for encoded data slices of the set of encoded data slices that were not successfully stored during the execution of storage.

14. The DS module of claim 10 , wherein the second module functions to execute the storage compliance process by:

initiating a storage unit retry process for encoded data slices of the set of encoded data slices that were not successfully stored during the execution of storage.

15. The DS module of claim 10 , wherein the second module functions to execute the storage compliance process by:

sending a message to the device indicating that the storage of the set of encoded data slices met the per set write threshold but did not meet the desired write reliability indication;

receiving a response from the device requesting a storage retry of encoded data slices of the set of encoded data slices that were not successfully stored during the execution of storage; and

retrying storage of the encoded data slices of the set of encoded data slices that were not successfully stored during the execution of storage.

16. The DS module of claim 10 further comprises:

the second module further functions to cause the computing device to:

while the computing device executes the storage of the plurality of sets of encoded data slices in accordance with the dispersed storage error encoding parameters, enter a loop that includes causing the computing device to:

determine whether the storage of one set of the plurality of sets of encoded data slices is meeting the desired write reliability indication;

when the storage of the one set of the plurality of sets of encoded data slices is not meeting the desired write reliability indication, flag the one set of the plurality of sets of encoded data slices and determining whether the one set of the plurality of sets of encoded data slices is a last set of the plurality of sets of encoded data slices;

when the storage of the one set of the plurality of sets of encoded data slices is meeting the desired write reliability indication, determine whether the one set of the plurality of sets of encoded data slices is the last set of the plurality of sets of encoded data slices;

when the one set of the plurality of sets of encoded data slices is not the last set of the plurality of sets of encoded data slices, repeat the loop for another one set of the plurality of sets of encoded data slices;

when the one set of the plurality of sets of encoded data slices is the last set of the plurality of sets of encoded data slices, exit the loop;

compile a list of sets of encoded data slices of the plurality of sets of encoded data slices that did not meet the desired write reliability indication to produce a list of sets;

determine the storage compliance process for the list of sets; and

execute the storage compliance process for the sets of encoded data slices of the plurality of sets of encoded data slices that did not meet the desired write reliability indication based on the list of sets.

17. The DS module of claim 10 further comprises:

the second module further functions to cause the computing device to:

when the request does not include the desired write reliability indication, execute the storage of the plurality of sets of encoded data slices in accordance with the dispersed storage error encoding parameters.

18. The DS module of claim 10 further comprises:

the first module further functions to cause the computing device to:

when the storage of the set of encoded data slices of the plurality of sets of encoded data slices is meeting the desired write reliability indication, indicate that the set of encoded data slices met the desired write reliability indication.

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 Jan 3, 2014
From: RESCH, JASON K.; LEGGETTE, WESLEY
To: CLEVERSAFE, INC.
Reel/Frame 031890/0104 →