IP Library Granted Patent US 10,440,105
Granted Patent B2
US 10,440,105 · App. 16/036,999 · Granted Oct 8, 2019

Using a decentralized agreement protocol to rank storage locations for target width

Inventors: Ravi V. Khadiwala (Bartlett, IL); Jason K. Resch (Chicago, IL); Wesley B. Leggette (Chicago, IL)
Assignee: PURE STORAGE, INC.
H04L67/1025H04L67/1008H04L67/1012H04L67/1095H04L67/1097H04L67/306
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,440,105
App. No.
16/036,999
Granted
Oct 8, 2019
Kind
B2
Abstract

A method for utilizing a decentralized agreement protocol to rank storage locations in a dispersed storage network (DSN) for data access operations. In response to receiving a DSN access request including data for dispersed storage, a DSN address is determined based, at least in part, on the DSN access request. A storage unit pool including a plurality of storage units is identified, and a resource level selection approach is determined with respect to the storage unit pool. The method continues with requesting and obtaining ranked scoring information for the plurality of storage units in accordance with the resource level selection approach. Based on the ranked scoring information and the resource level selection approach, an information dispersal algorithm (IDA) width number of storage units of the storage unit pool are selected for storage of the data as encoded by the IDA into encoded data slices.

Claims (80)

1. A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:

receiving a DSN access request including data for dispersed storage;

determining a DSN address based, at least in part, on the DSN access request;

identifying a storage unit pool for processing of the DSN access request, the storage unit pool including a plurality of storage units;

determining a resource level selection approach regarding the plurality of storage units;

obtaining ranked scoring information for the plurality of storage units in accordance with the resource level selection approach;

selecting an information dispersal algorithm (IDA) width number of storage units based on the ranked scoring information and the resource level selection approach;

encoding the data with the IDA to produce at least one set of encoded data slices; and

issuing write slice requests to the selected storage units including, for storage thereof, the at least one set of encoded data slices.

2. The method of claim 1 further comprises:

receiving one or more write slice responses indicating a status of a write slice request;

determining that a write slice response indicates a write failure regarding an encoded data slice of the at least one set of encoded data slices; and

in response to the indication of a write failure, issuing a new write slice request, for storage of the encoded data slice, to a differing storage unit of the storage unit pool, wherein the differing storage unit is selected based, at least in part, on the ranked scoring information.

3. The method of claim 2 , wherein the ranked scoring information indicates that the differing storage unit is a next highest ranked storage unit of the storage unit pool exclusive of the selected storage units.

4. The method of claim 1 further comprises:

receiving a DSN access request including a retrieval request for the data;

determining the DSN address associated with the data based, at least in part, on the DSN access request;

identifying the storage unit pool used for processing of the DSN access request including the data for dispersed storage;

determining the resource level selection approach regarding the plurality of storage units;

obtaining ranked scoring information for the plurality of storage units in accordance with the resource level selection approach;

selecting at least a decode threshold number of storage units based on the ranked scoring information and the resource level selection approach; and

issuing read slice requests, for encoded data slices of the at least one set of encoded data slices, to the at least a decode threshold number of selected storage units.

5. The method of claim 4 further comprises:

receiving at least a decode threshold number of encoded data slices of a set of encoded data slices in response to the read slice requests;

decoding the received encoded data slices to produce recovered data; and

outputting the recovered data to a requesting entity.

6. The method of claim 4 , wherein issuing read slices requests to the selected storage units includes issuing read slice requests for more than a decoded threshold number of encoded data slices but less than the IDA width number of encoded data slices.

7. The method of claim 1 , wherein identifying a storage unit pool for processing of the DSN access request includes at least one of:

utilizing a decentralized agreement function based on the DSN address;

performing a lookup operation based on the DSN address; or

receiving the identity of the storage unit pool from a device of the DSN.

8. The method of claim 1 , wherein issuing write slices requests to the selected storage units includes issuing write slice requests for less than the IDA width number of encoded data slices, but at least a decode threshold number of encoded data slices required to recover the data.

9. The method of claim 1 , wherein determining a resource level selection approach includes at least one:

performing a lookup operation;

receiving the resource level selection approach via the DSN access request; or

interpreting a storage unit availability indicator.

10. The method of claim 1 , wherein the plurality of storage units of the storage unit pool are implemented at a plurality of sites, each of the plurality of sites having one or more storage units of the plurality of storage units, and wherein selecting an IDA width number of storage units based on the ranked scoring information and the resource level selection approach includes selecting at least one storage unit of each of the plurality of sites.

11. The method of claim 1 , wherein the ranked scoring information includes a ranking of storage units on a site-by-site basis.

12. A computing device of a group of computing devices of a dispersed storage network (DSN), the computing device comprises:

a network interface;

a local memory; and

a processing module operably coupled to the local memory and the network interface, the processing module configured to:

receive, via the network interface, a DSN access request including data for dispersed storage;

determine a DSN address based, at least in part, on the DSN access request;

identify a storage unit pool for processing of the DSN access request, the storage unit pool including a plurality of storage units;

determine a resource level selection approach regarding the plurality of storage units;

obtain ranked scoring information for the plurality of storage units in accordance with the resource level selection approach;

select an information dispersal algorithm (IDA) width number of storage units based on the ranked scoring information and the resource level selection approach;

encode the data with the IDA to produce at least one set of encoded data slices; and

issue, via the network interface, write slice requests to the selected storage units including, for storage thereof, the at least one set of encoded data slices.

13. The computing device of claim 12 , wherein the processing module is further configured to:

receive, via the network interface, one or more write slice responses indicating a status of a write slice request;

determine that a write slice response indicates a write failure regarding an encoded data slice of the at least one set of encoded data slices; and

in response to the indication of a write failure, issue a new write slice request via the network interface, for storage of the encoded data slice, to a differing storage unit of the storage unit pool, wherein the differing storage unit is selected based, at least in part, on the ranked scoring information.

14. The computing device of claim 13 , wherein the ranked scoring information indicates that the differing storage unit is a next highest ranked storage unit of the storage unit pool exclusive of the selected storage units.

15. The computing device of claim 12 , wherein the processing module is further configured to:

receive a DSN access request including a retrieval request for the data;

determine the DSN address associated with the data based, at least in part, on the DSN access request;

identify the storage unit pool used for processing of the DSN access request including the data for dispersed storage;

determine the resource level selection approach regarding the plurality of storage units;

obtain ranked scoring information for the plurality of storage units in accordance with the resource level selection approach;

select at least a decode threshold number of storage units based on the ranked scoring information and the resource level selection approach; and

issue read slice requests, for encoded data slices of the at least one set of encoded data slices, to the at least a decode threshold number of selected storage units.

16. The computing device of claim 15 , wherein the processing module is further configured to:

receive at least a decode threshold number of encoded data slices of a set of encoded data slices in response to the read slice requests;

decode the received encoded data slices to produce recovered data; and

output the recovered data to a requesting entity.

17. The computing device of claim 15 , wherein issuing read slices requests to the selected storage units includes issuing read slice requests for more than a decoded threshold number of encoded data slices but less than the IDA width number of encoded data slices.

18. The computing device of claim 12 , wherein issuing write slices requests to the selected storage units includes issuing write slice requests for less than the IDA width number of encoded data slices, but at least a decode threshold number of encoded data slices required to recover the data.

19. The computing device of claim 12 , wherein obtaining ranked scoring information for the plurality of storage units includes issuing a rank scoring information request to a decentralized agreement module and receiving responsive scoring information.

20. A computer readable storage medium comprises:

at least one memory section that stores operational instructions that, when executed by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), causes the one or more computing devices to:

receive a DSN access request including data for dispersed storage;

determine a DSN address based, at least in part, on the DSN access request;

identify a storage unit pool for processing of the DSN access request, the storage unit pool including a plurality of storage units;

determine a resource level selection approach regarding the plurality of storage units;

obtain ranked scoring information for the plurality of storage units in accordance with the resource level selection approach;

select an information dispersal algorithm (IDA) width number of storage units based on the ranked scoring information and the resource level selection approach;

encode the data with the IDA to produce at least one set of encoded data slices; and

issue write slice requests to the selected storage units including, for storage thereof, the at least one set of encoded data slices.

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 Jul 17, 2018
From: KHADIWALA, RAVI V.; RESCH, JASON K.; LEGGETTE, WESLEY B.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046364/0973 →
Continuity (3)
Continuation In Part 14707999 · May 8, 2015
Provisional Application 62019126 · Jun 30, 2014
Related Publication 20180324246A1 · Nov 8, 2018