IP Library Granted Patent US 10,649,828
Granted Patent B2
US 10,649,828 · App. 16/136,106 · Granted May 12, 2020

Prioritized data rebuilding in a dispersed storage network

Inventors: S. Christopher Gladwin (Chicago, IL); Asimuddin Kazi (Naperville, IL)
Assignee: PURE STORAGE, INC.
G06F11/0727G06F11/1076G06F11/1084G06F11/1088G06F11/1092G06F11/1662G06F11/2069G06F16/18G06F2211/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,649,828
App. No.
16/136,106
Granted
May 12, 2020
Kind
B2
Abstract

A method begins with a processing module querying distributed storage network (DSN) storage units regarding storage errors associated with a data segment. The method continues with the processing module receiving query responses and depending on the responses, assigning a first threshold priority or a second threshold priority to encoded data slices (EDSs) associated with the data segment. The method proceeds with the processing module, depending on the assigned threshold priority, issuing read slice requests and rebuilding EDS associated with the data segment.

Claims (74)

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:

transmitting a plurality of queries to a plurality of storage units of the DSN, wherein each query of the plurality of queries is directed at a storage unit of a plurality of storage units of the DSN associated with a first data segment;

receiving one or more query response message of a plurality of query response messages from the plurality of storage units of the DSN, wherein each query response message of the plurality of query response messages is associated with a query of the plurality of queries;

determining, based on the plurality of query response messages received from the plurality of storage units of the DSN, whether a first threshold number of error-free dispersed storage error encoded data slices (EDSs) has been stored in the plurality of storage units of the DSN, wherein the first threshold number of error-free dispersed storage error EDSs were produced from the first data segment;

when the first threshold number of error-free dispersed storage error EDSs has been stored in the plurality of storage units of the DSN, assigning a first rebuilding priority to the first data segment;

when the first threshold number of error-free dispersed storage error EDSs has not been stored in the plurality of storage units of the DSN, determining whether a second threshold number of error-free dispersed storage error EDSs has been stored in the plurality of storage units of the DSN;

when the second threshold number of error-free dispersed storage error EDSs has been stored in the plurality of storage units of the DSN, assigning a second rebuilding priority to the first data segment; and

when a number of error-free dispersed storage error EDSs is between the first threshold number of error-free dispersed storage error EDSs and the second threshold number of error-free dispersed storage error EDSs, issuing a decode threshold number of read slice requests to storage units known to store available error-free EDSs; and

rebuilding one or more dispersed storage error EDSs associated with the first data segment that are not error-free.

2. The method of claim 1 , further comprising:

when the second threshold number of error-free dispersed storage error EDSs has not been stored in the plurality of storage units of the DSN, determining whether a third threshold number of error-free dispersed storage error EDSs has been stored in the plurality of storage units of the DSN; and

when the number of error-free dispersed storage error EDSs is between the second threshold number of error-free dispersed storage error EDSs and the third threshold number of error-free dispersed storage error EDSs, issuing one or more read slice requests to storage units known to store available error-free EDSs; and

rebuilding one or more dispersed storage error EDSs associated with the first data segment that are not error-free.

3. The method of claim 1 , further comprising:

transmitting at least a second threshold number of list slice message requests to the plurality of storage units of the DSN, wherein the at least a second threshold number of list slice message requests is associated with a second data segment;

receiving a second plurality of list slice response messages from the plurality of storage units of the DSN, wherein a number of list slice response messages are associated with the second threshold number of list slice message requests;

determining, based on the second plurality of list slice response messages received from the plurality of storage units of the DSN, whether the first threshold number of error-free dispersed storage error EDSs associated with the second threshold number of list slice message requests has been stored in the plurality of storage units of the DSN;

when the first threshold number of error-free dispersed storage error EDSs associated with the second threshold number of list slice message requests has been stored in the plurality of storage units of the DSN, assigning the first rebuilding priority to the first data segment;

when the first threshold number of error-free dispersed storage error EDSs associated with the second threshold number of list slice message requests has not been stored in the plurality of storage units of the DSN, determining whether the second threshold number of error-free dispersed storage error EDSs associated with the second threshold number of list slice message requests has been stored in the plurality of storage units of the DSN;

when the second threshold number of error-free dispersed storage error EDSs associated with the second threshold number of list slice message requests has been stored in the plurality of storage units of the DSN, assigning a second rebuilding priority to the first data segment; and

when the number of error-free dispersed storage error EDSs associated with the second threshold number of list slice message requests is between the first threshold number of error-free dispersed storage error EDSs associated with the second threshold number of list slice message requests and the second threshold number of error-free dispersed storage error EDSs associated with the second threshold number of list slice message requests, issuing a decode threshold number of read slice requests to storage units known to store available error-free EDSs associated with the second threshold number of list slice message requests; and

rebuilding one or more dispersed storage error EDSs associated with the second data segment that are not error-free.

4. The method of claim 1 , wherein the DSN includes a plurality of storage sites and the plurality of storage units of the DSN are distributed between at least two of the plurality of storage sites and further wherein each of the at least two of the plurality of storage sites includes a number of storage units sufficient to store each of the second threshold number of error-free dispersed storage error EDSs in a separate storage unit.

5. The method of claim 1 , wherein the first threshold number of error-free dispersed storage error EDSs is less than an information dispersal algorithm (IDA) width number of dispersed storage error EDSs.

6. The method of claim 5 , wherein the second threshold number of error-free dispersed storage error EDSs is less than an information dispersal algorithm (IDA) width number of dispersed storage error EDSs and less than the first threshold number of error-free dispersed storage error EDSs.

7. The method of claim 1 , wherein the rebuilding one or more dispersed storage error EDSs associated with the first data segment that are not error-free further comprises:

rebuilding a number of dispersed storage error EDSs such that the number of error-free dispersed storage error EDSs is equal to or greater than the second threshold number of error-free dispersed storage error EDSs.

8. The method of claim 1 , wherein the rebuilding one or more dispersed storage error EDSs associated with the first data segment that are not error-free further comprises:

rebuilding a number of dispersed storage error EDSs such that the number of error-free dispersed storage error EDSs is equal to or greater than the first threshold number of error-free dispersed storage error EDSs, based on at least one of predetermined DSN system performance level, current DSN traffic load, and predetermined network traffic level.

9. The method of claim 1 , wherein each query of the plurality of queries is a list slice request and each query response message of the plurality of query response messages is a list slice message, and further wherein each list slice message includes an indication of a storage error in a storage unit associated with the first data segment.

10. A computing device comprising:

an interface configured to interface and communicate with a dispersed or distributed storage network (DSN);

memory that stores operational instructions;

a processing module operably coupled to the interface and to the memory, wherein the processing module, when operable within the computing device based on the operational instructions, is configured to:

transmit at least a first threshold number of list slice message requests to a plurality of storage units of the DSN, wherein the at least a first threshold number of list slice message requests is associated with a first data segment;

receive a plurality of list slice response messages from the plurality of storage units of the DSN, wherein a number of list slice response messages are associated with the first threshold number of list slice message requests;

determine, based on the plurality of list slice response messages received from the plurality of storage units of the DSN, whether a first threshold number of error-free dispersed storage error EDSs has been stored in the plurality of storage units of the DSN;

when the first threshold number of error-free dispersed storage error EDSs has been stored in the plurality of storage units of the DSN, assign a first rebuilding priority to the first data segment;

when the first threshold number of error-free dispersed storage error EDSs has not been stored in the plurality of storage units of the DSN, determine whether a second threshold number of error-free dispersed storage error EDSs has been stored in the plurality of storage units of the DSN;

when the second threshold number of error-free dispersed storage error EDSs has been stored in the plurality of storage units of the DSN, assign a second rebuilding priority to the first data segment; and

when a number of error-free dispersed storage error EDSs is between the first threshold number of error-free dispersed storage error EDSs and the second threshold number of error-free dispersed storage error EDSs, issue a decode threshold number of read slice requests to storage units known to store available error-free EDSs; and

rebuild one or more dispersed storage error EDSs associated with the first data segment that are not error-free.

11. The computing device of claim 10 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured to:

when the second threshold number of error-free dispersed storage error EDSs has not been stored in the plurality of storage units of the DSN, determine whether a third threshold number of error-free dispersed storage error EDSs has been stored in the plurality of storage units of the DSN; and

when the number of error-free dispersed storage error EDSs is between the second threshold number of error-free dispersed storage error EDSs and the third threshold number of error-free dispersed storage error EDSs, issue one or more read slice requests to storage units known to store available error-free EDSs; and

rebuild one or more dispersed storage error EDSs associated with the first data segment that are not error-free.

12. The computing device of claim 10 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured to:

transmit at least a second threshold number of list slice message requests to the plurality of storage units of the DSN, wherein the at least a second threshold number of list slice message requests is associated with a second data segment;

receive a second plurality of list slice response messages from the plurality of storage units of the DSN, wherein the number of list slice response messages are associated with the second threshold number of list slice message requests;

determine, based on the plurality of list slice response messages received from the plurality of storage units of the DSN, whether the first threshold number of error-free dispersed storage error EDSs associated with the second threshold number of list slice message requests has been stored in the plurality of storage units of the DSN;

when the first threshold number of error-free dispersed storage error EDSs associated with the second threshold number of list slice message requests has been stored in the plurality of storage units of the DSN, assign the first rebuilding priority to the first data segment;

when the first threshold number of error-free dispersed storage error EDSs associated with the second threshold number of list slice message requests has not been stored in the plurality of storage units of the DSN, determine whether the second threshold number of error-free dispersed storage error EDSs associated with the second threshold number of list slice message requests has been stored in the plurality of storage units of the DSN;

when the second threshold number of error-free dispersed storage error EDSs associated with the second threshold number of list slice message requests has been stored in the plurality of storage units of the DSN, assign a second rebuilding priority to the first data segment; and

when the number of error-free dispersed storage error EDSs associated with the second threshold number of list slice message requests is between the first threshold number of error-free dispersed storage error EDSs associated with the second threshold number of list slice message requests and the second threshold number of error-free dispersed storage error EDSs associated with the second threshold number of list slice message requests, issue a decode threshold number of read slice requests to storage units known to store available error-free EDSs associated with the second threshold number of list slice message requests; and

rebuild one or more dispersed storage error EDSs associated with the second data segment that are not error-free.

13. The computing device of claim 10 , wherein the DSN includes a plurality of storage sites and the plurality of storage units of the DSN are distributed between at least two of the plurality of storage sites and further wherein each of the at least two of the plurality of storage sites includes a number of storage units sufficient to store each of the second threshold number of error-free dispersed storage error EDSs in a separate storage unit.

14. The computing device of claim 10 , wherein the first threshold number of error-free dispersed storage error EDSs is less than an information dispersal algorithm (IDA) width number of dispersed storage error EDSs.

15. The computing device of claim 10 , wherein the second threshold number of error-free dispersed storage error EDSs is less than an information dispersal algorithm (IDA) width number of dispersed storage error EDSs and less than the first threshold number of error-free dispersed storage error EDSs.

16. The computing device of claim 10 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured to:

rebuild a number of dispersed storage error EDSs such that the number of error-free dispersed storage error EDSs is equal to or greater than the second threshold number of error-free dispersed storage error EDSs.

17. The computing device of claim 10 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured to:

rebuild a number of dispersed storage error EDSs such that the number of error-free dispersed storage error EDSs is equal to or greater than the first threshold number of error-free dispersed storage error EDSs, based on at least one of predetermined DSN system performance level, current DSN traffic load, and predetermined network traffic level.

18. A non-transitory computer readable storage device comprises:

a first memory section that stores operational instructions that, when executed by a computing device, causes the computing device to transmit at least a first threshold number of list slice message requests to a plurality of storage units of a distributed storage network (DSN), wherein the at least a first threshold number of list slice message requests is associated with a first data segment;

a second memory section that stores operational instructions that, when executed by the computing device, causes the computing device to:

receive a plurality of list slice response messages from the plurality of storage units of the DSN;

determine, based on the plurality of list slice response messages received from the plurality of storage units of the DSN, whether a first threshold number of error-free dispersed storage error EDSs has been stored in the plurality of storage units of the DSN; and

when the first threshold number of error-free dispersed storage error EDSs has been stored in the plurality of storage units of the DSN, assign a first rebuilding priority to the first data segment;

when the first threshold number of error-free dispersed storage error EDSs has not been stored in the plurality of storage units of the DSN, determine whether a second threshold number of error-free dispersed storage error EDSs has been stored in the plurality of storage units of the DSN; and

when the second threshold number of error-free dispersed storage error EDSs has been stored in the plurality of storage units of the DSN, assign a second rebuilding priority to the first data segment;

when a number of error-free dispersed storage error EDSs is between the first threshold number of error-free dispersed storage error EDSs and the second threshold number of error-free dispersed storage error EDSs, issue a decode threshold number of read slice requests to storage units known to store available error-free EDSs; and

rebuild one or more dispersed storage error EDSs associated with the first data segment that are not error-free.

19. The non-transitory computer readable storage device of claim 18 , wherein the first threshold number of error-free dispersed storage error EDSs is less than an information dispersal algorithm (IDA) width number of dispersed storage error EDSs.

20. The non-transitory computer readable storage device of claim 19 , wherein the second threshold number of error-free dispersed storage error EDSs is less than an information dispersal algorithm (IDA) width number of dispersed storage error EDSs and less than the first threshold number of error-free dispersed storage error EDSs.

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 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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY PREVIOUSLY RECORDED AT REEL: 046933 FRAME: 0099. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 17, 2018
From: GLADWIN, S. CHRISTOPHER; KAZI, ASIMUDDIN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 047245/0133 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2018
From: GLADWIN, S. CHRISTOPHER; KAZI, ASIMUDDIN NMI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046933/0099 →