IP Library Granted Patent US 10,503,591
Granted Patent B2
US 10,503,591 · App. 15/832,316 · Granted Dec 10, 2019

Selecting retrieval locations in a dispersed storage network

Inventors: Ethan S. Wozniak (Park Ridge, IL); Andrew D. Baptist (Mt. Pleasant, WI); Greg R. Dhuse (Chicago, IL); Jason K. Resch (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/1076G06F3/064G06F3/0604G06F3/067G06F3/0619G06F3/0689G06F11/1092H04L67/1097G06F2211/1028
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,503,591
App. No.
15/832,316
Granted
Dec 10, 2019
Kind
B2
Abstract

A method for execution by a dispersed storage and task (DST) processing unit includes determining to recover a data segment from a set of storage units. A plurality of candidate retrieval locations of the set of storage units are identified. Performance information for each of the plurality of candidate retrieval locations is obtained. A cost-benefit level for each of a plurality of permutations of a selected number of storage locations of the candidate retrieval locations is determined based on the performance information. One of the plurality of permutations is selected based on the cost-benefit level for each of the plurality of permutations. Retrieval of encoded data slices from the corresponding storage locations of the selected permutation is initiated. The data segment is reproduced in response to receiving a decode threshold number of the encoded data slices.

Claims (56)

1. A method for execution by a dispersed storage and task (DST) processing unit that includes a processor, the method comprises:

determining to recover a data segment from a set of storage units;

identifying a plurality of candidate retrieval locations of the set of storage units;

obtaining performance information for each of the plurality of candidate retrieval locations;

identifying a plurality of permutations of the plurality of candidate retrieval locations, wherein each of the plurality of permutations corresponds to a proper subset of the plurality of candidate retrieval locations that includes a number of candidate retrieval locations selected from the plurality of candidate retrieval locations, wherein the number is strictly less than a total number of candidate retrieval locations in the plurality of candidate retrieval locations, and wherein the number is strictly greater than a decode threshold number;

determining a cost-benefit level for each of the plurality of permutations of of the candidate retrieval locations based on the performance information;

selecting one of the plurality of permutations based on the cost-benefit level for each of the plurality of permutations;

sending, via a network, read slice requests to ones of the plurality of candidate retrieval locations included in the one of the plurality of permutations;

receiving, via the network, a plurality of encoded data slices from the ones of the plurality of candidate retrieval locations in response to the read slice requests; and

reproducing the data segment in response to the plurality of encoded data slices including the decode threshold number of encoded data slices.

2. The method of claim 1 , wherein the determining includes identifying a set of encoded data slices associated with the data segment, wherein the data segment was dispersed storage error encoded to produce the set of encoded data slices for storage in the set of storage units, wherein the decode threshold number corresponds to a decode threshold number of an information dispersal algorithm utilized to dispersed storage error encode the data segment, and wherein reproducing the data segment includes dispersed storage error decoding the decode threshold number of the encoded data slices to produce the data segment.

3. The method of claim 1 , wherein identifying the plurality of candidate retrieval locations includes interpreting encoded data slice location information based on a set of slice names of the plurality of encoded data slices to produce a storage unit identifier for each of the plurality of candidate retrieval locations.

4. The method of claim 1 , wherein obtaining the performance information includes accessing a historical performance record.

5. The method of claim 1 , wherein determining the cost-benefit level includes performing a calculation to estimate an incremental network loading level for each of the plurality of permutations.

6. The method of claim 1 , wherein determining the cost-benefit level includes performing a calculation to estimate a recovery latency for each of the plurality of permutations.

7. The method of claim 1 , wherein selecting the one of the plurality of permutations includes identifying the permutation associated with a most favorable cost-benefit level.

8. The method of claim 1 , wherein selecting the one of the plurality of permutations includes identifying a subset of the plurality of permutations, wherein each of the plurality of permutations in the subset is associated with a cost-benefit level that compares favorably to a cost-benefit threshold level, and wherein the one of the plurality of permutations is selected pseudo-randomly from the subset of the plurality of permutations.

9. The method of claim 1 ,

wherein the plurality of permutations includes at least one permutation that includes exactly one more than the decode threshold number of candidate retrieval locations selected from the plurality of candidate retrieval locations;

wherein the plurality of permutations includes at least one permutation that includes exactly one less than the total number of candidate retrieval locations selected from the plurality of candidate retrieval locations; and

wherein, for each integer number between the one more than the decode threshold number and the one less than the total number, the plurality of permutations includes at least one permutation that includes exactly the each integer number of candidate retrieval locations selected from the plurality of candidate retrieval locations.

10. A processing system of a dispersed storage and task (DST) processing unit 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:

determine to recover a data segment from a set of storage units;

identify a plurality of candidate retrieval locations of the set of storage units;

obtain performance information for each of the plurality of candidate retrieval locations;

identify a plurality of permutations of the plurality of candidate retrieval locations, wherein each of the plurality of permutations corresponds to a proper subset of the plurality of candidate retrieval locations that includes a number of candidate retrieval locations selected from the plurality of candidate retrieval locations, wherein the number is strictly less than a total number of candidate retrieval locations in the plurality of candidate retrieval locations, and wherein the number is strictly greater than a decode threshold number;

determine a cost-benefit level for each of the plurality of permutations of of the candidate retrieval locations based on the performance information;

select one of the plurality of permutations based on the cost-benefit level for each of the plurality of permutations;

send, via a network, read slice requests to ones of the plurality of candidate retrieval locations included in the one of the plurality of permutations;

receive, via the network, a plurality of encoded data slices from the ones of the plurality of candidate retrieval locations in response to the read slice requests; and

reproduce the data segment in response to the plurality of encoded data slices including the decode threshold number of encoded data slices.

11. The processing system of claim 10 , wherein the determining includes identifying a set of encoded data slices associated with the data segment, wherein the data segment was dispersed storage error encoded to produce the set of encoded data slices for storage in the set of storage units, wherein the decode threshold number corresponds to a decode threshold number of an information dispersal algorithm utilized to dispersed storage error encode the data segment, and wherein reproducing the data segment includes dispersed storage error decoding the decode threshold number of the encoded data slices to produce the data segment.

12. The processing system of claim 10 , wherein identifying the plurality of candidate retrieval locations includes interpreting encoded data slice location information based on a set of slice names of the plurality of encoded data slices to produce a storage unit identifier for each of the plurality of candidate retrieval locations.

13. The processing system of claim 10 , wherein obtaining the performance information includes accessing a historical performance record.

14. The processing system of claim 10 , wherein determining the cost-benefit level includes performing a calculation to estimate an incremental network loading level for each of the plurality of permutations.

15. The processing system of claim 10 , wherein determining the cost-benefit level includes performing a calculation to estimate a recovery latency for each of the plurality of permutations.

16. The processing system of claim 10 , wherein selecting the one of the plurality of permutations includes identifying the permutation associated with a most favorable cost-benefit level.

17. The processing system of claim 10 , wherein selecting the one of the plurality of permutations includes identifying a subset of the plurality of permutations, wherein each of the plurality of permutations in the subset is associated with a cost-benefit level that compares favorably to a cost-benefit threshold level, and wherein the one of the plurality of permutations is selected pseudo-randomly from the subset of the plurality of permutations.

18. The processing system of claim 10 ,

wherein the plurality of permutations includes at least one permutation that includes exactly one more than the decode threshold number of candidate retrieval locations selected from the plurality of candidate retrieval locations;

wherein the plurality of permutations includes at least one permutation that includes exactly one less than the total number of candidate retrieval locations selected from the plurality of candidate retrieval locations; and

wherein, for each integer number between the one more than the decode threshold number and the one less than the total number, the plurality of permutations includes at least one permutation that includes exactly the each integer number of candidate retrieval locations selected from the plurality of candidate retrieval locations.

19. 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:

determine to recover a data segment from a set of storage units;

identify a plurality of candidate retrieval locations of the set of storage units;

obtain performance information for each of the plurality of candidate retrieval locations;

identify a plurality of permutations of the plurality of candidate retrieval locations, wherein each of the plurality of permutations corresponds to a proper subset of the plurality of candidate retrieval locations that includes a number of candidate retrieval locations selected from the plurality of candidate retrieval locations, wherein the number is strictly less than a total number of candidate retrieval locations in the plurality of candidate retrieval locations, and wherein the number is strictly greater than a decode threshold number;

determine a cost-benefit level for each of the plurality of permutations of of the candidate retrieval locations based on the performance information;

select one of the plurality of permutations based on the cost-benefit level for each of the plurality of permutations;

send, via a network, read slice requests to ones of the plurality of candidate retrieval locations included in the one of the plurality of permutations;

receive, via the network, a plurality of encoded data slices from the ones of the plurality of candidate retrieval locations in response to the read slice requests; and

reproduce the data segment in response to the plurality of encoded data slices including the decode threshold number of encoded data slices.

20. The non-transitory computer readable storage medium of claim 19 , wherein the determining includes identifying a set of encoded data slices associated with the data segment, wherein the data segment was dispersed storage error encoded to produce the set of encoded data slices for storage in the set of storage units, wherein the decode threshold number corresponds to a decode threshold number of an information dispersal algorithm utilized to dispersed storage error encode the data segment, and wherein reproducing the data segment includes dispersed storage error decoding the decode threshold number of the encoded data slices to produce the data segment.

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 DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2017
From: WOZNIAK, ETHAN S.; BAPTIST, ANDREW D.; DHUSE, GREG R.; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044327/0522 →
Continuity (4)
Continuation In Part 15818633 · Nov 20, 2017
Continuation In Part 14984024 · Dec 30, 2015
Provisional Application 62121736 · Feb 27, 2015
Related Publication 20180095825A1 · Apr 5, 2018