IP Library Granted Patent US 10,204,009
Granted Patent B2
US 10,204,009 · App. 15/403,869 · Granted Feb 12, 2019

Prioritized rebuilds using dispersed indices

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,204,009
App. No.
15/403,869
Granted
Feb 12, 2019
Kind
B2
Abstract

A method of rebuilding data stored as encoded data slices in a dispersed storage network (DSN) includes using a scanning module to identify a slice name of a slice in error of a set of slices stored in a set of dispersed storage (DS) units. The number of erroneous slices in the set of slices is also identified. A queue entry that includes the following items is generated: the slice name of the slice in error; a rebuilding task indicator; an identifier of the set of slices; and the number of slice errors. Additionally, a vault source name is generated based on the number of slice errors. The queue entry is stored in a rebuilding queue at the same or another set of DS units, using the vault source name. A rebuilding module facilitates rebuilding the slice in error.

Claims (64)

1. A method of rebuilding data stored as encoded data slices in a dispersed storage network (DSN), the method comprising:

identifying, by a scanning module implemented by a processing device, a slice name of a slice in error of a set of slices stored in a set of dispersed storage (DS) units;

identifying, by the scanning module, a number of slice errors of the set of slices, wherein the number of slice errors indicates how many slices in the set of slices are in error;

generating, by the scanning module, a queue entry including information associated with a slice in error, the information associated with the slice in error including the slice name of the slice in error, a rebuilding task indicator, an identifier of the set of slices, and the number of slice errors;

generating, by the scanning module, a vault source name based on the number of slice errors;

transmitting, by the scanning module, a write queue entry request to a set of DS units, the write queue entry request indicating that the queue entry is to be stored in a rebuilding queue by the set of DS units using the vault source name;

identifying, by a rebuilding module, the slice in error based on the queue entry in the rebuilding queue; and

rebuilding the slice in error using a rebuilding module.

2. The method of claim 1 , further comprising:

generating a set of slice names using the vault source name.

3. The method of claim 2 , further comprising:

encoding the queue entry to produce a set of queue entry slices.

4. The method of claim 3 , further comprising:

generating a set of write slice requests that includes the set of queue entry slices and the set of slice names.

5. The method of claim 4 , further comprising:

outputting the set of write slice requests to another set of DS units.

6. The method of claim 1 , further comprising:

generating a queue name associated with the rebuilding queue.

7. The method of claim 1 , further comprising:

operating on the queue entry in response to determining that the queue entry is associated with a highest number of slices in error.

8. A dispersed storage network (DSN) comprising:

a scanning module implemented by a processing device, the scanning module configured to:

identify a slice name of a slice in error of a set of slices stored in a set of dispersed storage (DS) units;

identify a number of slice errors of the set of slices, wherein the number of slice errors indicates how many slices in the set of slices are in error;

generate a queue entry including information associated with a slice in error, the information associated with the slice in error including:

the slice name of the slice in error;

a rebuilding task indicator;

an identifier of the set of slices;

the number of slice errors;

generate a vault source name based on the number of slice errors;

transmit a write queue entry request to a set of DS units, the write queue entry request indicating that the queue entry is to be stored in a rebuilding queue belonging to a set of DS units, the rebuilding queue associated with the vault source name;

a rebuilding module configured to:

rebuild the slice in error based on the queue entry in the rebuilding queue; and

removing remove the queue entry from the rebuilding queue.

9. The DSN of claim 8 , wherein the scanning module is further configured to:

generate a set of slice names using the vault source name.

10. The DSN of claim 9 , wherein the scanning module is further configured to:

encode the queue entry to produce a set of queue entry slices.

11. The DSN of claim 10 , wherein the scanning module is further configured to:

generate a set of write slice requests that includes the set of queue entry slices and the set of slice names.

12. The DSN of claim 11 , wherein the scanning module is further configured to:

output the set of write slice requests to another set of DS units.

13. The DSN of claim 8 , wherein the scanning module is further configured to:

generate a queue name associated with the rebuilding queue.

14. The DSN of claim 8 , wherein the rebuilding module is further configured to:

operate on the queue entry in response to determining that the queue entry is associated with a highest number of slices in error.

15. A non-transitory computer readable medium tangibly embodying a program of instructions configured to be stored in memory and executed by a processor, the program of instructions comprising:

at least one instruction configured to identify a slice name of a slice in error of a set of slices stored in a set of dispersed storage (DS) units;

at least one instruction configured to identify a number of slice errors of the set of slices, wherein the number of slice errors indicates how many slices in the set of slices are in error;

at least one instruction configured to generate a queue entry including information associated with a slice in error, the information associated with the slice in error including the slice name of the slice in error, a rebuilding task indicator, an identifier of the set of slices, and the number of slice errors;

at least one instruction configured to generate a vault source name based on the number of slice errors;

at least one instruction configured to transmit a write queue entry request to a set of DS units, the write queue entry request indicating that the queue entry is to be stored in a rebuilding queue by the set of DS units using the vault source name;

at least one instruction configured to identify the slice in error based on the queue entry in the rebuilding queue; and

at least one instruction configured to rebuild the slice in error.

16. The non-transitory computer readable medium of claim 15 , further comprising:

at least one instruction configured to generate a set of slice names using the vault source name.

17. The non-transitory computer readable medium of claim 16 , further comprising:

at least one instruction configured to encode the queue entry to produce a set of queue entry slices.

18. The non-transitory computer readable medium of claim 17 , further comprising:

at least one instruction configured to generate a set of write slice requests that includes the set of queue entry slices and the set of slice names.

19. The non-transitory computer readable medium of claim 18 , further comprising:

at least one instruction configured to output the set of write slice requests to another set of DS units.

20. The non-transitory computer readable medium of claim 15 , further comprising:

at least one instruction configured to operate on the queue entry in response to determining that the queue entry is associated with a highest number of slices in error.

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 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 Jan 11, 2017
From: BAPTIST, ANDREW D.; DHUSE, GREG R.; GRAY, ADAM M.; LEGGETTE, WESLEY B.; RESCH, JASON K.; VOLVOVSKI, ILYA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040949/0594 →