IP Library Granted Patent US 9,690,520
Granted Patent B2
US 9,690,520 · App. 14/721,615 · Granted Jun 27, 2017

Recovering an encoded data slice 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,690,520
App. No.
14/721,615
Granted
Jun 27, 2017
Kind
B2
Abstract

A method begins by a processing module of a dispersed storage network (DSN) receiving a DSN retrieval request regarding a data object and performing a scoring function using properties of the DSN retrieval request and properties of DSN memory of the DSN to produce a storage scoring resultant. The method continues with the processing module identifying a set of primary storage units based on the storage scoring resultant and sending a set of retrieval requests to the set of primary storage units. When a primary storage unit does not provide a favorable response, using the storage scoring resultant to identify an alternative storage unit. When the alternative storage unit is identified, sending a corresponding retrieval request to the alternative storage unit.

Claims (124)

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 retrieval request regarding a data object;

performing a scoring function using one or more properties of the DSN retrieval request and one or more properties of DSN memory of the DSN to produce a storage scoring resultant, wherein the DSN memory includes a plurality of storage units that are logically arranged into a plurality of storage pools;

identifying a set of primary storage units of the plurality of storage units based on the storage scoring resultant;

sending a set of retrieval requests to the set of primary storage units regarding the DSN retrieval request;

when a primary storage unit of the set of primary storage units does not provide a favorable response to a corresponding one of the set of retrieval requests regarding a corresponding portion of the data object, using the storage scoring resultant to identify an alternative storage unit of the plurality of storage units regarding the corresponding portion of the data object; and

when the alternative storage unit is identified, sending the corresponding one of the set of retrieval requests to the alternative storage unit.

2. The method of claim 1 , wherein the performing the scoring function further comprises:

selecting a resource level; and

selecting the one or more properties of the DSN memory from a plurality of properties of the DSN memory based on the selected resource level.

3. The method of claim 2 further comprises:

calculating, based on the selected resource level, a plurality of storage values based on the one or more properties of the DSN retrieval request and the one or more properties of DSN memory; and

performing a ranking function on the plurality of storage values to produce the storage scoring resultant.

4. The method of claim 1 , wherein the performing the scoring function further comprises:

selecting a storage pool level indication as a resource level;

selecting a storage pool identifier and a storage pool weighting factor for each of the plurality of storage pools to produce a plurality of storage pool identifiers and a plurality of storage pool weighting factors, wherein the one or more properties of DSN memory includes the plurality of storage pool identifiers and the plurality of storage pool weighting factors;

selecting a source name of the DSN retrieval request as the one or more properties of the DSN retrieval request;

performing a series of functions on the source name based on the plurality of storage pool identifiers and the plurality of storage pool weighting factors to produce a plurality of storage values; and

performing a ranking function on the plurality of storage values to produce the storage scoring resultant.

5. The method of claim 4 , wherein a series of the series of functions comprises:

a deterministic function of the source name and one of the storage pool identifiers to produce an interim result;

a normalizing function of the interim result to produce a normalized interim result; and

a scoring function of the normalized interim result and a corresponding one of the storage pool weighting factors to produce a storage value of the plurality of storage values.

6. The method of claim 1 , wherein the performing the scoring function further comprises:

selecting a storage unit level indication as a resource level;

selecting a storage site-storage unit identifier and a storage site-storage weighting factor for each of the plurality of storage units to produce a plurality of storage site-storage unit identifiers and a plurality of storage site-storage unit weighting factors, wherein the one or more properties of DSN memory includes the plurality of storage site-storage unit identifiers and the plurality of storage site-storage unit weighting factors;

selecting a source name of the DSN retrieval request as the one or more properties of the DSN retrieval request;

performing a series of functions on the source name based on the plurality of storage site-storage unit identifiers and the plurality of storage site-storage unit weighting factors to produce a plurality of storage values; and

performing a ranking function on the plurality of storage value to produce the storage scoring resultant.

7. The method of claim 1 , wherein the DSN retrieval request comprises one of:

a read request for reading the data object from the DSN memory, wherein the favorable response to the corresponding one of the set of retrieval requests includes sending the corresponding portion of the data object;

a list request for storage information regarding the data object, wherein the favorable response to a corresponding one of the set of retrieval requests includes sending storage information regarding the corresponding portion of the data object;

an individual read request regarding the corresponding portion of the data object, wherein the favorable response includes sending the corresponding portion of the data object and wherein the set of primary storage units only includes the primary storage unit; and

an individual list request regarding the corresponding portion of the data object, wherein the favorable response includes sending the storage information of the corresponding portion of the data object and wherein the set of primary storage units only includes the primary storage unit.

8. The method of claim 1 further comprises:

when the alternative storage unit is not identified, issuing a rebuilding function for the corresponding portion of the data object, wherein a rebuilt corresponding portion of the data object is to be stored in the alternative storage unit.

9. The method of claim 8 further comprises:

determining whether the primary storage unit is available for storing the rebuilt corresponding portion of the data object; and

when the primary storage unit is available for storing the rebuilt corresponding portion of the data object, transferring the rebuilt corresponding portion of the data object from the alternative storage unit to the primary storage unit.

10. A non-transitory 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 retrieval request regarding a data object;

perform a scoring function using one or more properties of the DSN retrieval request and one or more properties of DSN memory of the DSN to produce a storage scoring resultant, wherein the DSN memory includes a plurality of storage units that are logically arranged into a plurality of storage pools;

identify a set of primary storage units of the plurality of storage units based on the storage scoring resultant;

send a set of retrieval requests to the set of primary storage units regarding the DSN retrieval request;

when a primary storage unit of the set of primary storage units does not provide a favorable response to a corresponding one of the set of retrieval requests regarding a corresponding portion of the data object, use the storage scoring resultant to identify an alternative storage unit of the plurality of storage units regarding the corresponding portion of the data object; and

when the alternative storage unit is identified, send the corresponding one of the set of retrieval requests to the alternative storage unit.

11. The non-transitory computer readable storage medium of claim 10 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to further perform the scoring function by:

selecting a resource level; and

selecting the one or more properties of the DSN memory from a plurality of properties of the DSN memory based on the selected resource level.

12. The non-transitory computer readable storage medium of claim 11 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices of the DSN to:

calculate, based on the selected resource level, a plurality of storage values based on the one or more properties of the DSN retrieval request and the one or more properties of DSN memory; and

perform a ranking function on the plurality of storage values to produce the storage scoring resultant.

13. The non-transitory computer readable storage medium of claim 10 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to further perform the scoring function by:

selecting a storage pool level indication as a resource level;

selecting a storage pool identifier and a storage pool weighting factor for each of the plurality of storage pools to produce a plurality of storage pool identifiers and a plurality of storage pool weighting factors, wherein the one or more properties of DSN memory includes the plurality of storage pool identifiers and the plurality of storage pool weighting factors;

selecting a source name of the DSN retrieval request as the one or more properties of the DSN retrieval request;

performing a series of functions on the source name based on the plurality of storage pool identifiers and the plurality of storage pool weighting factors to produce a plurality of storage values; and

performing a ranking function on the plurality of storage values to produce the storage scoring resultant.

14. The non-transitory computer readable storage medium of claim 13 , wherein a series of the series of functions comprises:

a deterministic function of the source name and one of the storage pool identifiers to produce an interim result;

a normalizing function of the interim result to produce a normalized interim result; and

a scoring function of the normalized interim result and a corresponding one of the storage pool weighting factors to produce a storage value of the plurality of storage values.

15. The non-transitory computer readable storage medium of claim 10 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to further perform the scoring function by:

selecting a storage unit level indication as a resource level;

selecting a storage site-storage unit identifier and a storage site-storage weighting factor for each of the plurality of storage units to produce a plurality of storage site-storage unit identifiers and a plurality of storage site-storage unit weighting factors, wherein the one or more properties of DSN memory includes the plurality of storage site-storage unit identifiers and the plurality of storage site-storage unit weighting factors;

selecting a source name of the DSN retrieval request as the one or more properties of the DSN retrieval request;

performing a series of functions on the source name based on the plurality of storage site-storage unit identifiers and the plurality of storage site-storage unit weighting factors to produce a plurality of storage values; and

performing a ranking function on the plurality of storage value to produce the storage scoring resultant.

16. The non-transitory computer readable storage medium of claim 10 , wherein the DSN retrieval request comprises one of:

a read request for reading the data object from the DSN memory, wherein the favorable response to the corresponding one of the set of retrieval requests includes sending the corresponding portion of the data object;

a list request for storage information regarding the data object, wherein the favorable response to a corresponding one of the set of retrieval requests includes sending storage information regarding the corresponding portion of the data object;

an individual read request regarding the corresponding portion of the data object, wherein the favorable response includes sending the corresponding portion of the data object and wherein the set of primary storage units only includes the primary storage unit; and

an individual list request regarding the corresponding portion of the data object, wherein the favorable response includes sending the storage information of the corresponding portion of the data object and wherein the set of primary storage units only includes the primary storage unit.

17. The non-transitory computer readable storage medium of claim 10 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices of the DSN to:

when the alternative storage unit is not identified, issue a rebuilding function for the corresponding portion of the data object, wherein a rebuilt corresponding portion of the data object is to be stored in the alternative storage unit.

18. The non-transitory computer readable storage medium of claim 17 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices of the DSN to:

determine whether the primary storage unit is available for storing the rebuilt corresponding portion of the data object; and

when the primary storage unit is available for storing the rebuilt corresponding portion of the data object, transfer the rebuilt corresponding portion of the data object from the alternative storage unit to the primary storage unit.

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

an interface;

a local memory; and

a processing module operably coupled to the interface and the local memory, wherein the processing module functions to:

receive a DSN retrieval request regarding a data object;

perform a scoring function using one or more properties of the DSN retrieval request and one or more properties of DSN memory of the DSN to produce a storage scoring resultant, wherein the DSN memory includes a plurality of storage units that are logically arranged into a plurality of storage pools;

identify a set of primary storage units of the plurality of storage units based on the storage scoring resultant;

send, via the interface, a set of retrieval requests to the set of primary storage units regarding the DSN retrieval request;

when a primary storage unit of the set of primary storage units does not provide a favorable response to a corresponding one of the set of retrieval requests regarding a corresponding portion of the data object, use the storage scoring resultant to identify an alternative storage unit of the plurality of storage units regarding the corresponding portion of the data object; and

when the alternative storage unit is identified, send, via the interface, the corresponding one of the set of retrieval requests to the alternative storage unit.

20. The computing device of claim 19 , wherein the processing module functions to further perform the scoring function by:

selecting a resource level; and

selecting the one or more properties of the DSN memory from a plurality of properties of the DSN memory based on the selected resource level.

21. The computing device of claim 20 , wherein the processing module further functions to:

calculate, based on the selected resource level, a plurality of storage values based on the one or more properties of the DSN retrieval request and the one or more properties of DSN memory; and

perform a ranking function on the plurality of storage values to produce the storage scoring resultant.

22. The computing device of claim 19 , wherein the processing module functions to further perform the scoring function by:

selecting a storage pool level indication as a resource level;

selecting a storage pool identifier and a storage pool weighting factor for each of the plurality of storage pools to produce a plurality of storage pool identifiers and a plurality of storage pool weighting factors, wherein the one or more properties of DSN memory includes the plurality of storage pool identifiers and the plurality of storage pool weighting factors;

selecting a source name of the DSN retrieval request as the one or more properties of the DSN retrieval request;

performing a series of functions on the source name based on the plurality of storage pool identifiers and the plurality of storage pool weighting factors to produce a plurality of storage values; and

performing a ranking function on the plurality of storage values to produce the storage scoring resultant.

23. The computing device of claim 22 , wherein a series of the series of functions comprises:

a deterministic function of the source name and one of the storage pool identifiers to produce an interim result;

a normalizing function of the interim result to produce a normalized interim result; and

a scoring function of the normalized interim result and a corresponding one of the storage pool weighting factors to produce a storage value of the plurality of storage values.

24. The computing device of claim 19 , wherein the processing module functions to further perform the scoring function by:

selecting a storage unit level indication as a resource level;

selecting a storage site-storage unit identifier and a storage site-storage weighting factor for each of the plurality of storage units to produce a plurality of storage site-storage unit identifiers and a plurality of storage site-storage unit weighting factors, wherein the one or more properties of DSN memory includes the plurality of storage site-storage unit identifiers and the plurality of storage site-storage unit weighting factors;

selecting a source name of the DSN retrieval request as the one or more properties of the DSN retrieval request;

performing a series of functions on the source name based on the plurality of storage site-storage unit identifiers and the plurality of storage site-storage unit weighting factors to produce a plurality of storage values; and

performing a ranking function on the plurality of storage value to produce the storage scoring resultant.

25. The computing device of claim 19 , wherein the DSN retrieval request comprises one of:

a read request for reading the data object from the DSN memory, wherein the favorable response to the corresponding one of the set of retrieval requests includes sending the corresponding portion of the data object;

a list request for storage information regarding the data object, wherein the favorable response to a corresponding one of the set of retrieval requests includes sending storage information regarding the corresponding portion of the data object;

an individual read request regarding the corresponding portion of the data object, wherein the favorable response includes sending the corresponding portion of the data object and wherein the set of primary storage units only includes the primary storage unit; and

an individual list request regarding the corresponding portion of the data object, wherein the favorable response includes sending the storage information of the corresponding portion of the data object and wherein the set of primary storage units only includes the primary storage unit.

26. The computing device of claim 19 , wherein the processing module further functions to:

when the alternative storage unit is not identified, issue, via the interface, a rebuilding function for the corresponding portion of the data object, wherein a rebuilt corresponding portion of the data object is to be stored in the alternative storage unit.

27. The computing device of claim 26 , wherein the processing module further functions to:

determine whether the primary storage unit is available for storing the rebuilt corresponding portion of the data object; and

when the primary storage unit is available for storing the rebuilt corresponding portion of the data object, transfer the rebuilt corresponding portion of the data object from the alternative storage unit to the primary storage unit.

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 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2015
From: GRUBE, GARY W.; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 036471/0178 →