IP Library Granted Patent US 9,110,819
Granted Patent B2
US 9,110,819 · App. 14/148,652 · Granted Aug 18, 2015

Adjusting data dispersal 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,110,819
App. No.
14/148,652
Granted
Aug 18, 2015
Kind
B2
Abstract

A method begins with a processing module determining that storage of data requires updating, wherein the data is stored as a plurality of sets of encoded data slices in DSN memory. For a first type of updating, the processing module increases the total number while maintaining the decode threshold number. The processing module then, for each set of encoded data slices, creates another encoded data slice in accordance with the dispersed storage error encoding function and the increased total number and sends the new encoded data slices to the DSN memory. For a second type of updating, the processing module increases the total number and the decode threshold number. The processing module then recovers the data and encodes it in accordance with the dispersed storage error encoding function using the increased total number and the increased decode threshold number to produce an updated plurality of sets of encoded data slices.

Claims (84)

1. A computer readable storage medium comprises:

a first memory section storing operational instructions that, when executed by a computing device, causes the computing device to:

determine a performance based indication regarding storage of a data segment as a set of encoded data slices;

a second memory section storing operational instructions that, when executed by the computing device, causes the computing device to:

compare the performance based indication with a performance threshold; and

a third memory section storing operational instructions that, when executed by the computing device, causes the computing device to:

when the performance based indication compares unfavorably with the performance threshold:

decode the set of encoded data slices in accordance with error coding dispersal storage function parameters to reproduce the data segment;

adjust the error coding dispersal storage function parameters based on the unfavorable comparison of the performance based indication with the performance threshold to produce performance adjusted error coding dispersal storage function parameters;

encode the reproduced data segment in accordance with the performance adjusted error coding dispersal storage function parameters to produce a second set of encoded data slices; and

select a storage set of encoded data slices from the set of encoded data slices and the second set of encoded data slices based on a difference between the performance adjusted error coding dispersal storage function parameters and the error coding dispersal storage function parameters.

2. The computer readable storage medium of claim 1 further comprises:

a fourth memory section storing operational instructions that, when executed by the computing device, causes the computing device to:

update a storage location table to associate a corresponding slice name of a set of slice names with a corresponding encoded data slice of the storage set of encoded data slices.

3. The computer readable storage medium of claim 1 further comprises:

a fourth memory section storing operational instructions that, when executed by the computing device, causes the computing device to:

output each of the encoded data slices of the storage set of encoded data slices that is selected from the second set of encoded data slices to a dispersed storage network (DSN) memory for storage therein.

4. The computer readable storage medium of claim 1 , wherein the third memory section further stores operational instructions that, when executed by the computing device, causes the computing device to adjust the error coding dispersal storage function parameters by:

determining desired error coding dispersal storage function parameters based on the performance threshold and the performance based indication;

determining a difference between the desired error coding dispersal storage function parameters and the error coding dispersal storage function parameters to produce a parameters difference; and

adjusting the error coding dispersal storage function parameters based on the parameters difference, wherein determining at least one of the desired error coding dispersal storage function parameters and the parameters difference is based on at least one of: a set of dispersed storage (DS) units, the error coding dispersal storage function parameters, a vault lookup, a command, a message, a predetermination, a DS unit query, a historical DS unit performance level, an estimated DS unit performance level, storage requirements, and metadata.

5. The computer readable storage medium of claim 1 , wherein the third memory section further stores operational instructions that, when executed by the computing device, causes the computing device to:

when the performance based indication compares unfavorably with the performance threshold as a result of under-performance, adjust the error coding dispersal storage function parameters by:

increase a difference between a decode threshold and a pillar width; and

adjust an encoding matrix in accordance with the increasing of the difference.

6. The computer readable storage medium of claim 1 , wherein the third memory section further stores operational instructions that, when executed by the computing device, causes the computing device to:

when the performance based indication compares unfavorably with the performance threshold as a result of over-performance, adjust the error coding dispersal storage function parameters by:

decrease a difference between a decode threshold and a pillar width; and

adjust an encoding matrix in accordance with the decreasing of the difference.

7. The computer readable storage medium of claim 1 , wherein the third memory section further stores operational instructions that, when executed by the computing device, causes the computing device to select the storage set of encoded data slices by:

selecting the set of encoded data slices; and

selecting at least one encoded data slice of the second set of encoded data slices.

8. A computer readable storage medium comprises:

a first memory section storing operational instructions that, when executed by a computing device, causes the computing device to:

determine that storage of data requires updating, wherein the data is encoded in accordance with a dispersed storage error encoding function using dispersed storage error encoding parameters to produce a plurality of sets of encoded data slices, which is stored in memory of a dispersed storage network (DSN), wherein the dispersed storage error encoding parameters includes a total number of encoded data slices per set of encoded data slices and a decode threshold number of encoded data slices that are required from a set of encoded data slices to recover a data segment of the data;

a second memory section storing operational instructions that, when executed by the computing device, causes the computing device to:

for a first type of updating of the storage of the data:

increase the total number while maintaining the decode threshold number;

for each of the sets of encoded data slices of the plurality of sets of encode data slices:

create at least one more encoded data slice in accordance with the dispersed storage error encoding function and the increased total number; and

send the at least one more encoded data slice to the memory of the DSN for storage therein; and

a third memory section storing operational instructions that, when executed by the computing device, causes the computing device to:

for a second type of updating of the storage of the data:

increase the total number and increasing the decode threshold number;

recover the data from retrieved encoded data slices of the plurality of sets of encoded data slices;

encode the recovered data in accordance with the dispersed storage error encoding function using the increased total number and the increased decode threshold number to produce an updated plurality of sets of encoded data slices; and

send the updated plurality of sets of encoded data slices to the memory of the DSN for storage therein.

9. The computer readable storage medium of claim 8 , wherein the first memory section storing operational instructions that, when executed by the computing device, causes the computing device to determine that storage of data requires updating by one of:

determining under performance of the DSN with respect to accessing the plurality of sets of encoded data slices; and

determining over performance of the DSN with respect to accessing the plurality of sets of encoded data slices.

10. The computer readable storage medium of claim 8 further comprises:

a fourth memory section storing operational instructions that, when executed by the computing device, causes the computing device to:

for a third type of updating of the storage of the data:

decrease the total number while maintaining the decode threshold number;

for each of the sets of encoded data slices of the plurality of sets of encode data slices:

select at least one encoded data slice based on the decreased total number and the total number; and

delete the selected at least one encoded data slice from the memory of the DSN.

11. The computer readable storage medium of claim 8 further comprises:

a fourth memory section storing operational instructions that, when executed by the computing device, causes the computing device to:

for a third type of updating of the storage of the data:

decrease the decode threshold number and maintaining the total number;

recovering the data from retrieved encoded data slices of the plurality of sets of encoded data slices;

encode the recovered data in accordance with the dispersed storage error encoding function using the total number and the decreased decode threshold number to produce another updated plurality of sets of encoded data slices; and

send the other updated plurality of sets of encoded data slices to the memory of the DSN for storage therein.

12. The computer readable storage medium of claim 8 further comprises:

a fourth memory section storing operational instructions that, when executed by the computing device, causes the computing device to:

for a third type of updating of the storage of the data:

decrease the decode threshold number and decreasing the total number;

recover the data from retrieved encoded data slices of the plurality of sets of encoded data slices;

encode the recovered data in accordance with the dispersed storage error encoding function using the decreased total number and the decreased decode threshold number to produce another updated plurality of sets of encoded data slices; and

send the other updated plurality of sets of encoded data slices to the memory of the DSN for storage therein.

13. The computer readable storage medium of claim 8 , wherein the first memory section storing operational instructions that, when executed by the computing device, causes the computing device to:

determine the type of updating based on a comparison of a performance based indication with a performance threshold.

14. The computer readable storage medium of claim 8 , wherein the second memory section storing operational instructions that, when executed by the computing device, causes the computing device to:

for each of the at least one more encoded data slice created for the first type of updating of the storage of the data:

create a slice name to links the at least one more encoded data slice to a correspond set of encoded data slices of the plurality of sets of encoded data slices; and

update a storage location table to include the slices names.

15. The computer readable storage medium of claim 8 , wherein the second memory section storing operational instructions that, when executed by the computing device, causes the computing device to send the at least one more encoded data slice to the memory of the DSN by:

identifying storage units of the DSN that are storing the plurality of sets of encoded data slices;

selecting at least one more storage unit of the DSN; and

sending the at least one more encoded data slice of each of the plurality of sets of encoded data slices to the selected at least one more storage unit.

16. The computer readable storage medium of claim 8 , wherein the third memory section storing operational instructions that, when executed by the computing device, causes the computing device to send the updated plurality of sets of encoded data slices to the memory of the DSN by:

selecting storage units of the DSN; and

sending the updated plurality of sets of encoded data slices to the selected 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 May 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →