IP Library Granted Patent US 10,664,360
Granted Patent B2
US 10,664,360 · App. 15/823,877 · Granted May 26, 2020

Identifying additional resources to accelerate rebuildling

Inventors: Wesley B. Leggette (Chicago, IL); Andrew D. Baptist (Mt. Pleasant, WI); Greg R. Dhuse (Chicago, IL); Jason K. Resch (Chicago, IL); Gary W. Grube (Barrington Hills, IL)
Assignee: PURE STORAGE, INC.
G06F11/1469G06F9/5027G06F9/5077G06F11/1076G06F11/1448G06F11/2082G06F11/3034G06F16/16G06F16/23G06F16/235G06Q10/101G06Q50/01
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,664,360
App. No.
15/823,877
Granted
May 26, 2020
Kind
B2
Abstract

Systems and methods for rebuilding data in a dispersed storage network (DSN) involve identifying a rebuilding process for a set of DS units requiring additional resources, identifying one or more tasks of the rebuilding process, identifying identified DS units of another set of DS units to support the one or more tasks and assigning the one or more tasks to the identified DS units. The systems and methods further involve receiving one or more rebuilding results and facilitating completion of the one or more tasks utilizing the one or more rebuilding results. The systems and method may further involve partitioning the one or more tasks to produce partial tasks, assigning the partial tasks to identified DS units, receiving rebuilding partial results and facilitating completion of one or more tasks utilizing the one or more rebuilding partial results.

Claims (48)

1. A method of rebuilding data in a distributed storage network (DSN), the DSN including a first set of distributed storage (DS) units and a second set of DS units, the method comprising:

identifying a rebuilding process of the first set of DS units requiring additional resources, wherein the additional resources are required when a pace of the rebuilding process compares unfavorably to a target pace;

identifying one or more tasks of the rebuilding process;

partitioning the one or more tasks to produce partial tasks;

identifying DS units of the second set of DS units to support the partial tasks;

assigning the partial tasks to the identified DS units of the second set of DS units;

receiving one or more rebuilding results; and

facilitating completion of the one or more tasks utilizing the one or more rebuilding results; and

wherein the one or more rebuilding results include rebuilding partial results.

2. The method of claim 1 , wherein the step of identifying the rebuilding process of the first set of DS units requiring additional resources is based on one or more of a pace of the rebuilding process is less than a target pace, and a number of slices to rebuild is greater than a rebuilding threshold number.

3. The method of claim 1 , wherein the step of identifying one or more tasks of the rebuilding process includes one or more of identifying unexecuted tasks of a task list associated with the rebuilding process, receiving a request, receiving an error message, and identifying a task of the one or more tasks that is most unlikely to be executed within a time frame.

4. The method of claim 1 , wherein the step of identifying DS units of the second set of DS units to support the partial tasks is based on one or more of availability, a query, an error message, and a level of DS unit errors.

5. The method of claim 1 , wherein the step of partitioning the one or more tasks to produce partial tasks includes matching a number of partial tasks to a number of the identified DS units.

6. The method of claim 1 , wherein the step of assigning the partial tasks to the identified DS units includes one or more of mapping partial tasks to the identified DS units based on dividing a number of partial tasks by a number of identified DS units, matching the partial tasks to the identified DS units based on DS unit capability information, and receiving an assignment plan.

7. The method of claim 1 , wherein the one or more rebuilding results include one or more of a slice name of a slice to be rebuilt, a no error found indicator, a rebuilt slice, a partially rebuilt slice and an indicator that the rebuilt slice has been stored to retire an error.

8. The method of claim 1 , wherein facilitating completion of the one or more tasks utilizing the one or more rebuilding results includes one or more of initiating a new rebuilding process, storing a rebuilt slice, and instructing a DS unit in the first set of DS units to store the rebuilt slice in a corresponding DS unit in the first set of DS units.

9. A distributed storage (DS) processing unit for rebuilding data in a distributed storage network (DSN), the DSN including a first set of DS units and a second set of DS units, the DS processing unit comprising:

a memory; and

a computer processor;

where the memory includes instructions for causing the computer processor to:

identify a rebuilding process of the first set of DS units requiring additional resources, wherein the additional resources are required when a pace of the rebuilding process compares unfavorably to a target pace;

identify one or more tasks of the rebuilding process;

partition the one or more tasks to produce partial tasks;

identify DS units of the second set of DS units to support the one or more tasks;

assign the partial tasks to the identified DS units;

receive one or more rebuilding partial results; and

facilitate completion of the one or more tasks utilizing the one or more rebuilding partial results.

10. The DS processing unit of claim 9 , wherein the memory includes instructions for further causing the computer processor to identify the rebuilding process based on one or more of a pace of the rebuilding process is less than a target pace, and a number of slices to rebuild is greater than a rebuilding threshold number.

11. The DS processing unit of claim 9 , wherein the memory includes instructions for further causing the computer processor to identify one or more tasks of the rebuilding process based on one or more of unexecuted tasks of a task list associated with the rebuilding process, a request, an error message, and a task of the one or more tasks that is most unlikely to be executed within a time frame.

12. The DS processing unit of claim 9 , wherein the memory includes instructions for further causing the computer processor to identify identified DS units of the second set of DS units to support the partial tasks based on one or more of availability, a query, an error message, and a level of DS unit errors.

13. The DS processing unit of claim 9 , wherein the memory includes instructions for further causing the computer processor to match a number of partial tasks to a number of the identified DS units.

14. The DS processing unit of claim 9 , wherein the memory includes instructions for further causing the computer processor to map partial tasks to the identified DS units based on dividing a number of partial tasks by a number of identified DS units, match the partial tasks to the identified DS units based on DS unit capability information, and receive an assignment plan.

15. The DS processing unit of claim 9 , wherein the one or more partial rebuilding results include one or more of a slice name of a slice to be rebuilt, a no error found indicator, a rebuilt slice, a partially rebuilt slice and an indicator that the rebuilt slice has been stored to retire an error.

16. The DS processing unit of claim 9 , wherein the memory includes instructions for further causing the computer processor to initiate a new rebuilding process, store a rebuilt slice, and instruct a DS unit in the first set of DS units to store the rebuilt slice in a corresponding DS unit in the first set of DS units.

17. A distributed storage network (DSN) comprises:

a first set of distributed storage (DS) units;

a second set of DS units;

a DS processing unit for rebuilding data in the DSN including:

a memory; and

a computer processor;

where the memory includes instructions for causing the computer processor to:

identify a rebuilding process of the first set of DS units requiring additional resources, wherein the additional resources are required when a pace of the rebuilding process compares unfavorably to a target pace;

identify one or more tasks of the rebuilding process;

partition the one or more tasks to produce partial tasks;

identify DS units of the second set of DS units to support the partial tasks;

assign the partial tasks to the identified DS units;

receive one or more rebuilding partial results; and

facilitate completion of the partial tasks utilizing the one or more rebuilding partial results.

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 Nov 28, 2017
From: LEGGETTE, WESLEY B.; BAPTIST, ANDREW D.; DHUSE, GREG R.; RESCH, JASON K.; GRUBE, GARY W.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044233/0671 →