IP Library Granted Patent US 10,057,351
Granted Patent B2
US 10,057,351 · App. 15/400,092 · Granted Aug 21, 2018

Modifying information dispersal algorithm configurations 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 10,057,351
App. No.
15/400,092
Granted
Aug 21, 2018
Kind
B2
Abstract

A method for execution by a dispersed storage (DS) client module includes receiving a write request for a first data object. A set of storage units associated with the first data object are identified, and an availability level is determined. The DS client module determines to modify dispersal parameters associated with the set based on the availability level, and modified dispersal parameters are determined based on current dispersal parameters and the availability level. Encoded slices are generated by performing an encoding function on the first data object using the modified dispersal parameters, and the slices are sent to the storage units. A second data object stored in the identified set of storage units is recovered by utilizing the current dispersal parameters. Encoded slices are generated by performing an encoding function on the second data object using the modified dispersal parameters, and the slices are sent to the storage units.

Claims (53)

1. A method for execution by a distributed storage (DS) client module that includes a processor, the method comprises:

receiving a write request to store a first data object;

identifying a set of storage units associated with the first data object;

determining an availability level of the identified set of storage units;

determining to modify dispersal parameters associated with the set of storage units based on the availability level of the set of storage units;

determining modified dispersal parameters based on current dispersal parameters and the availability level of the set of storage units;

generating a first plurality of sets of encoded data slices by performing an encoding function on the first data object using the modified dispersal parameters;

sending the plurality of sets of encoded data slices to the identified set of storage units;

recovering a second data object stored in the identified set of storage units by utilizing the current dispersal parameters;

generating a second plurality of sets of encoded data slices by performing an encoding function on the second data object using the modified dispersal parameters; and

sending the second plurality of sets of encoded data slices to the identified set of storage units.

2. The method of claim 1 , wherein identifying the set of storage units includes identifying a vault based on an identifier of a requesting entity by a registry lookup, wherein the set of storage units is identified based on identifier of the vault based on a registry lookup.

3. The method of claim 1 , wherein the availability level is based on at least one of: a number of storage units of the identified set of storage units that are operational.

4. The method of claim 1 , wherein determining the availability level is based on at least one of: initiating a test, initiating a query, receiving a response, or performing a lookup.

5. The method of claim 1 , wherein the DS client module determines to modify dispersal parameters in response to determining that the availability level of the set of storage units compares unfavorably to an availability level threshold.

6. The method of claim 1 , wherein determining the modified dispersal parameters includes at least one of: changing a pillar width of the current dispersal parameters or changing a decode threshold of the current dispersal parameters.

7. The method of claim 1 , wherein determining the modified dispersal parameters includes calculating an estimated reliability level corresponding to the modified dispersal parameters and determining that the estimated reliability level compares favorably to a reliability level threshold.

8. The method of claim 1 , wherein determining the modified dispersal parameters includes increasing a pillar width of the current dispersal parameters in response to determining that the availability level has increased from a previous availability level.

9. The method of claim 1 , wherein determining the modified dispersal parameters includes decreasing a pillar width of the current dispersal parameters in response to determining that the availability level has decreased from a previous availability level.

10. The method of claim 9 , wherein the pillar width is decreased in response to determining that at least one storage unit of the set of storage units has become unavailable.

11. A processing system of a dispersed storage (DS) client module comprises:

at least one processor;

a memory that stores operational instructions, that when executed by the at least one processor cause the processing system to:

receive a write request to store a first data object;

identify a set of storage units associated with the first data object;

determine an availability level of the identified set of storage units;

determine to modify dispersal parameters associated with the set of storage units based on the availability level of the set of storage units;

determine modified dispersal parameters based on current dispersal parameters and the availability level of the set of storage units;

generate a first plurality of sets of encoded data slices by performing an encoding function on the first data object using the modified dispersal parameters;

send the plurality of sets of encoded data slices to the identified set of storage units;

recover a second data object stored in the identified set of storage units by utilizing the current dispersal parameters;

generate a second plurality of sets of encoded data slices by performing an encoding function on the second data object using the modified dispersal parameters; and

send the second plurality of sets of encoded data slices to the identified set of storage units.

12. The processing system of claim 11 , wherein identifying the set of storage units includes identifying a vault based on an identifier of a requesting entity by a registry lookup, wherein the set of storage units is identified based on identifier of the vault based on a registry lookup.

13. The processing system of claim 11 , wherein the availability level is based on at least one of: a number of storage units of the identified set of storage units that are operational.

14. The processing system of claim 11 , wherein the DS client module determines to modify dispersal parameters in response to determining that the availability level of the set of storage units compares unfavorably to an availability level threshold.

15. The processing system of claim 11 , wherein determining the modified dispersal parameters includes at least one of: changing a pillar width of the current dispersal parameters or changing a decode threshold of the current dispersal parameters.

16. The processing system of claim 11 , wherein determining the modified dispersal parameters includes calculating an estimated reliability level corresponding to the modified dispersal parameters and determining that the estimated reliability level compares favorably to a reliability level threshold.

17. The processing system of claim 11 , wherein determining the modified dispersal parameters includes increasing a pillar width of the current dispersal parameters in response to determining that the availability level has increased from a previous availability level.

18. The processing system of claim 11 , wherein determining the modified dispersal parameters includes decreasing a pillar width of the current dispersal parameters in response to determining that the availability level has decreased from a previous availability level.

19. The processing system of claim 18 , wherein the pillar width is decreased in response to determining that at least one storage unit of the set of storage units has become unavailable.

20. A non-transitory computer readable storage medium comprises:

at least one memory section that stores operational instructions that, when executed by a processing system of a dispersed storage network (DSN) that includes a processor and a memory, causes the processing system to:

receive a write request to store a first data object;

identify a set of storage units associated with the first data object;

determine an availability level of the identified set of storage units;

determine to modify dispersal parameters associated with the set of storage units based on the availability level of the set of storage units;

determine modified dispersal parameters based on current dispersal parameters and the availability level of the set of storage units;

generate a first plurality of sets of encoded data slices by performing an encoding function on the first data object using the modified dispersal parameters;

send the plurality of sets of encoded data slices to the identified set of storage units;

recover a second data object stored in the identified set of storage units by utilizing the current dispersal parameters;

generate a second plurality of sets of encoded data slices by performing an encoding function on the second data object using the modified dispersal parameters; and

send the second plurality of sets of encoded data slices to the identified set of storage units.

Assignments (5)
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 Jan 6, 2017
From: BAPTIST, ANDREW D.; KAZI, ASIMUDDIN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040871/0681 →