IP Library Granted Patent US 8,707,088
Granted Patent B2
US 8,707,088 · App. 13/105,118 · Granted Apr 22, 2014

Reconfiguring data storage in multiple dispersed storage networks

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,707,088
App. No.
13/105,118
Granted
Apr 22, 2014
Kind
B2
Abstract

A method begins by a processing module determining access performance to copies of dispersed storage encoded data, wherein the copies of the dispersed storage encoded data are stored in a set of a plurality of dispersed storage networks (DSNs). The method continues with the processing module modifying the set of the plurality of DSNs based on the access performance and the desired access performance level to produce a modified set of the plurality of DSNs when the access performance is not at a desired access performance level. The method continues with the processing module, for a new DSN of the modified set of the plurality of DSNs, determining error coding dispersal storage parameters based on local data retrieval accesses allocated to the new DSN and facilitating the new DSN storing another copy of the dispersed storage encoded data.

Claims (88)

1. A method for execution by a computer, the method comprises:

determining, for a set of user devices, access performance of a copy of copies of dispersed storage encoded data, wherein the copies of the dispersed storage encoded data are stored in a set of dispersed storage networks (DSNs), wherein a DSN of the set of DSNs includes a plurality of dispersed storage units and is storing the copy;

when the access performance is not at a desired access performance level, modifying, at least one of a set of user devices assignment to the DSN and the set of DSNs based on the access performance and the desired access performance level; and

when the set of DSNs is to be modified by adding a new DSN to the set of DSNs, for the new DSN:

determining error coding dispersal storage parameters based on local data retrieval accesses allocated to the new DSN;

facilitating the new DSN storing another copy of the dispersed storage encoded data and changing assignment of the set of user devices to the new DSN for accessing the copy.

2. The method of claim 1 further comprises:

determining that the access performance is not at the desired access performance level by:

comparing actual global data retrieval access information with estimated global data retrieval accesses of the copies of the dispersed storage encoded data; and

when the actual global data retrieval access information compares unfavorably with the estimated global data retrieval accesses, indicating that the access performance is not at the desired access performance level.

3. The method of claim 2 , wherein the modifying the set of the plurality of DSNs comprises:

determining differences between the actual global data retrieval access information and the estimated global data retrieval accesses of the copies of the dispersed storage encoded data; and

identifying the new DSN based on the differences.

4. The method of claim 2 , wherein the modifying the set of the plurality of DSNs comprises:

removing the DSN from the set of DSNs; and

deleting the assignment of the set of user devices to the DSN.

5. The method of claim 1 , wherein the determining access performance comprises at least one of:

determining an access timing performance level based on one or more of:

access timing performance historical data;

a query;

at least one ping test;

at least one dispersed storage network test; and

at least one encoded data slice access timing performance test;

determining an availability performance level based on one or more of:

availability performance historical data; and

at least one encoded data slice availability test; and

determining a reliability performance level based on one or more of:

reliability performance historical data; and

at least one encoded data slice retrieval success test.

6. The method of claim 1 , wherein the facilitating the new DSN storing the other copy comprises:

encoding data in accordance with the error coding dispersal storage parameters to produce the other copy; and

outputting the other copy to the new DSN.

7. The method of claim 6 further comprises:

retrieving one of the copies from a remaining DSN of the set of DSNs; and

decoding the one of the copies based on error coding dispersal storage parameters of the remaining DSN to produce the data.

8. The method of claim 1 , wherein the facilitating the new DSN storing the other copy comprises:

determining that a remaining DSN of the set of DSNs utilized the error coding dispersal storage parameters; and

coordinating forwarding the other copy from the remaining DSN to the new DSN.

9. The method of claim 1 , wherein the modifying the set of the plurality of DSNs comprises:

identifying a remaining DSN of the set of DSNs based on reliability information of the access performance and desired reliability of the desired access performance level;

determining new error coding dispersal storage parameters for the remaining DSN based on a difference between the reliability information of the access performance and the desired reliability of the desired access performance level; and

facilitating the remaining DSN storing an updated copy of the dispersed storage encoded data based on the new error coding dispersal storage parameters.

10. A computer comprises:

an interface;

a memory; and

a processing module operably coupled to the interface and the memory, wherein the processing module is operable to:

determine, for a set of user devices, access performance of a copy of copies of dispersed storage encoded data, wherein the copies of the dispersed storage encoded data are stored in a set of dispersed storage networks (DSNs), wherein a DSN of the set of DSNs includes a plurality of dispersed storage units and is storing the copy;

when the access performance is not at a desired access performance level, modify, at least one of a set of user devices assignment to the DSN and the set of DSNs based on the access performance and the desired access performance level; and

when the set of DSNs is to be modified by adding a new DSN to the set of DSNs, for the new DSN:

determine error coding dispersal storage parameters based on local data retrieval accesses allocated to the new DSN;

facilitate the new DSN storing another copy of the dispersed storage encoded data and

change assignment of the set of user devices to the new DSN for accessing the copy.

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

determine that the access performance is not at the desired access performance level by:

comparing actual global data retrieval access information with estimated global data retrieval accesses of the copies of the dispersed storage encoded data; and

when the actual global data retrieval access information compares unfavorably with the estimated global data retrieval accesses, indicating that the access performance is not at the desired access performance level.

12. The computer of claim 11 , wherein the processing module functions to modify the set of the plurality of DSNs by:

determining differences between the actual global data retrieval access information and the estimated global data retrieval accesses of the copies of the dispersed storage encoded data; and

identifying the new DSN based on the differences.

13. The computer of claim 11 , wherein the processing module functions to modify the set of the plurality of DSNs by:

removing the DSN from the set of DSNs; and

deleting the assignment of the set of user devices to the DSN.

14. The computer of claim 10 , wherein the processing module functions to determine access performance by at least one of:

determining an access timing performance level based on one or more of:

access timing performance historical data;

a query;

at least one ping test;

at least one dispersed storage network test; and

at least one encoded data slice access timing performance test;

determining an availability performance level based on one or more of:

availability performance historical data; and

at least one encoded data slice availability test; and

determining a reliability performance level based on one or more of:

reliability performance historical data; and

at least one encoded data slice retrieval success test.

15. The computer of claim 10 , wherein the processing module functions to facilitate the new DSN storing the other copy by:

encoding data in accordance with the error coding dispersal storage parameters to produce the other copy; and

outputting, via the interface, the other copy to the new DSN.

16. The computer of claim 15 , wherein the processing module further functions to:

retrieve, via the interface, one of the copies from a remaining DSN of the set of DSNs; and

decode the one of the copies based on error coding dispersal storage parameters of the remaining DSN to produce the data.

17. The computer of claim 10 , wherein the processing module functions to facilitate the new DSN storing the other copy by:

determining that a remaining DSN of the set of DSNs utilized the error coding dispersal storage parameters; and

coordinating forwarding the other copy from the remaining DSN to the new DSN.

18. The computer of claim 10 , wherein the processing module functions to modify the set of the plurality of DSNs by:

identifying a remaining DSN of the set of DSNs based on reliability information of the access performance and desired reliability of the desired access performance level;

determining new error coding dispersal storage parameters for the remaining DSN based on a difference between the reliability information of the access performance and the desired reliability of the desired access performance level; and

facilitating the remaining DSN storing an updated copy of the dispersed storage encoded data based on the new error coding dispersal storage parameters.

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 May 11, 2011
From: RESCH, JASON K.; GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 026262/0211 →