IP Library Granted Patent US 10,747,616
Granted Patent B2
US 10,747,616 · App. 15/843,143 · Granted Aug 18, 2020

Adapting rebuilding of encoded data slices in a dispersed storage network

Inventors: Greg R. Dhuse (Chicago, IL); Ravi V. Khadiwala (Bartlett, IL); Jason K. Resch (Chicago, IL); Ilya Volvovski (Chicago, IL); Wesley B. Leggette (Chicago, IL); Andrew D. Baptist (Mt. Pleasant, WI)
Assignee: PURE STORAGE, INC.
G06F11/1092G06F3/064G06F3/067G06F3/0619G06F16/22G06F16/2365G06F16/25
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,747,616
App. No.
15/843,143
Granted
Aug 18, 2020
Kind
B2
Abstract

A method for execution by a storage unit of a dispersed storage network includes updating a rebuilding task list based on detecting at least one storage error associated with storage of encoded data slices in a set of storage units that includes the storage unit. An encoded data slice is rebuilt based on the rebuilding task list and an affinity with the encoded data slice. The rebuilding task list is again updated based on detecting execution of at least one task of the rebuilding task list. The rebuilding task list is further updated based on detecting expiration of an execution time frame between sequential tasks of the rebuilding task list.

Claims (46)

1. A method for execution by a storage unit that includes a processor, the method comprises:

receiving a rebuilding task list via a network;

updating the rebuilding task list based on detecting at least one storage error associated with storage of encoded data slices in a set of storage units that includes the storage unit;

rebuilding an encoded data slice based on the rebuilding task list and an affinity with the encoded data slice;

updating the rebuilding task list based on detecting execution of at least one task of the rebuilding task list; and

updating the rebuilding task list based on detecting expiration of an execution time frame between sequential tasks of the rebuilding task list.

2. The method of claim 1 , wherein the encoded data slice is associated with at least one data segment, and wherein the data segment was dispersed storage error encoded to produce a set of encoded data slices that includes the encoded data slice for storage in the set of storage units.

3. The method of claim 1 , further comprising performing a scan for encoded data slice errors, wherein the at least one storage error is detected as a result of performing the scan.

4. The method of claim 1 , wherein updating the rebuilding task list includes modifying the rebuilding task list to include at least one task that addresses the at least one storage error.

5. The method of claim 1 , wherein updating the rebuilding task list includes generating an updated rebuilding task list, further comprising transmitting the updated rebuilding task list to the set of storage units.

6. The method of claim 1 , wherein updating the rebuilding task list includes generating an updated rebuilding task list, wherein an update notification is transmitted to the set of storage units in response to the generation of the updated rebuilding task list, and wherein at least one of the set of storage units accesses the updated rebuilding task list in response to receiving the update notification.

7. The method of claim 1 , wherein rebuilding the encoded data slice includes:

interpreting the rebuilding task list to identify a plurality of tasks associated with a rebuilding module of the storage unit;

generating a plurality of priority levels corresponding to the plurality of tasks; and

executing the plurality of tasks in accordance with the plurality of priority levels to rebuild the encoded data slice.

8. The method of claim 7 , wherein the plurality of priority levels are generated based on at least one of: a calculated severity estimate or a calculated rebuild time.

9. The method of claim 1 , wherein the encoded data slice is rebuilt in response to a plurality of tasks of the rebuilding task list indicating that no other rebuilding module is designated to rebuild the encoded data slice within a rebuilding time frame.

10. The method of claim 1 , wherein updating the rebuilding task list based on detecting the execution of the at least one task includes:

locating the at least one task in a plurality of tasks of the rebuilding task list; and

removing the at least one task from the rebuilding task list to produce an updated rebuilding task list.

11. The method of claim 1 , wherein updating the rebuilding task list based on detecting the expiration of the execution time frame includes re-prioritizing tasks of the rebuilding task list in response to determining that the execution time frame has expired from a first task of the sequential tasks.

12. A processing system of a storage 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:

receive a rebuilding task list via a network;

update the rebuilding task list based on detecting at least one storage error associated with storage of encoded data slices in a set of storage units that includes the storage unit;

rebuild an encoded data slice based on the rebuilding task list and an affinity with the encoded data slice;

update the rebuilding task list based on detecting execution of at least one task of the rebuilding task list; and

update the rebuilding task list based on detecting expiration of an execution time frame between sequential tasks of the rebuilding task list.

13. The processing system of claim 12 , wherein the encoded data slice is associated with at least one data segment, and wherein the data segment was dispersed storage error encoded to produce a set of encoded data slices that includes the encoded data slice for storage in the set of storage units.

14. The processing system of claim 12 , wherein the at least one storage error is detected as a result of performing a scan for encoded data slice errors.

15. The processing system of claim 12 , wherein updating the rebuilding task list includes modifying the rebuilding task list to include at least one task that addresses the at least one storage error.

16. The processing system of claim 12 , wherein updating the rebuilding task list includes generating an updated rebuilding task list, and wherein the operational instructions, when executed by the at least one processor, further cause the processing system to transmit the updated rebuilding task list to the set of storage units.

17. The processing system of claim 12 , wherein rebuilding the encoded data slice includes:

interpreting the rebuilding task list to identify a plurality of tasks associated with a rebuilding module of the storage unit;

generating a plurality of priority levels corresponding to the plurality of tasks; and

executing the plurality of tasks in accordance with the plurality of priority levels to rebuild the encoded data slice.

18. The processing system of claim 12 , wherein the encoded data slice is rebuilt in response to a plurality of tasks of the rebuilding task list indicating that no other rebuilding module is designated to rebuild the encoded data slice within a rebuilding time frame.

19. The processing system of claim 12 , wherein updating the rebuilding task list based on detecting the expiration of the execution time frame includes re-prioritizing tasks of the rebuilding task list in response to determining that the execution time frame has expired from a first task of the sequential tasks.

20. A 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:

receive a rebuilding task list via a network;

update rebuilding task list based on detecting at least one storage error associated with storage of encoded data slices in a set of storage units;

rebuild an encoded data slice based on the rebuilding task list and an affinity with the encoded data slice;

update the rebuilding task list based on detecting execution of at least one task of the rebuilding task list; and

update the rebuilding task list based on detecting expiration of an execution time frame between sequential tasks of the rebuilding task list.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 050451/0549 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2017
From: DHUSE, GREG R.; KHADIWALA, RAVI V.; RESCH, JASON K.; VOLVOVSKI, ILYA; LEGGETTE, WESLEY B.; BAPTIST, ANDREW D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044415/0354 →
Continuity (3)
Continuation In Part 15006845 · Jan 26, 2016
Provisional Application 62141034 · Mar 31, 2015
Related Publication 20180107550A1 · Apr 19, 2018