IP Library Granted Patent US 8,495,466
Granted Patent B2
US 8,495,466 · App. 12/983,214 · Granted Jul 23, 2013

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 8,495,466
App. No.
12/983,214
Granted
Jul 23, 2013
Kind
B2
Abstract

A method begins by a processing module determining a performance based indication regarding storage of a data segment as a set of encoded data slices and comparing the performance based indication with a performance threshold. When the performance based indication compares unfavorably with the performance threshold, the method continues with the processing module decoding the set of encoded data slices to reproduce the data segment, adjusting 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, encoding 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 selecting a storage set of encoded data slices from the set of encoded data slices and the second set of encoded data slices.

Claims (57)

1. A method comprises:

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

comparing the performance based indication with a performance threshold; and

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

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

adjusting 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;

encoding 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

selecting 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 method of claim 1 further comprises:

updating 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 method of claim 1 further comprises:

outputting 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 method of claim 1 , wherein adjusting the error coding dispersal storage function parameters further comprises:

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 method of claim 1 further comprises:

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

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

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

6. The method of claim 1 further comprises:

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

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

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

7. The method of claim 1 , wherein the selecting the storage set of encoded data slices comprises:

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 comprises:

an interface;

a memory; and

a processing module operable to:

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

compare the performance based indication with a performance threshold; and

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.

9. The computer of claim 8 , wherein the processing module further functions 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.

10. The computer of claim 8 , wherein the processing module further functions to:

output, via the interface, 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.

11. The computer of claim 8 , wherein the processing module functions 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.

12. The computer of claim 8 , wherein the processing module further functions 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:

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

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

13. The computer of claim 8 , wherein the processing module further functions 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:

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

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

14. The computer of claim 8 , wherein the processing module functions 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.

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 4, 2011
From: CILFONE, BART; RESCH, JASON K.; GLADWIN, S. CHRISTOPHER
To: CLEVERSAFE, INC.
Reel/Frame 025578/0169 →