IP Library Granted Patent US 10,241,866
Granted Patent B2
US 10,241,866 · App. 15/439,383 · Granted Mar 26, 2019

Allocating rebuilding queue entries 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 10,241,866
App. No.
15/439,383
Granted
Mar 26, 2019
Kind
B2
Abstract

A method for execution by a processing system in dispersed storage and task network (DSTN) that includes a processor, includes: identifying a slice name of a slice in error of a set of slices stored in a set of dispersed storage (DS) units; identifying a number of slice errors of the set of slices; generating a queue entry that includes the slice name of the slice in error, a rebuilding task indicator, an identity of the set of slices, and the number of slice errors; identifying a rebuilding queue based on the number of slice errors, wherein the rebuilding queue is associated with one of: the set of DS units or another set of DS units; and facilitating storing the queue entry in the identified rebuilding queue.

Claims (55)

1. A method for execution by a processing system in dispersed storage and task network (DSTN) that includes a processor, the method comprises:

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

identifying a number of slice errors of the set of slices;

generating a queue entry that includes the slice name of the slice in error, a rebuilding task indicator, an identity of the set of slices, and the number of slice errors;

identifying a rebuilding queue based on the number of slice errors, wherein the rebuilding queue is associated with one of: the set of DS units or another set of DS units; and

storing the queue entry in the identified rebuilding queue.

2. The method of claim 1 , wherein identifying the slice name of the slice in error includes generating and outputting, to the set of DS units, a set of list slice requests to include a slice name range to be scanned for errors, receiving list slice responses, and identifying the slice name of the slice in error based on a comparison of list slice responses.

3. The method of claim 1 , wherein the rebuilding task indicator includes a rebuilding opcode.

4. The method of claim 1 , wherein the identity of the set of slices includes a source name.

5. The method of claim 1 , wherein identifying the rebuilding queue includes one or more of: a lookup that retrieves the rebuilding queue from a queue list based on the number of slice errors or receiving the rebuilding queue in response to a query that includes on the number of slice errors.

6. The method of claim 1 , wherein storing the queue entry in the identified rebuilding queue includes:

generating a set of queue entry slice names based on one or more of: a queue vault identifier, a queue name associated with the identified rebuilding queue, a DS processing module identifier associated with the processing module, a client identifier based on a vault lookup, or a current timestamp;

encoding the queue entry using a dispersed storage error coding function to produce a set of queue entry slices;

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

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

7. The method of claim 1 , further comprising:

removing the queue entry from the rebuilding queue to rebuild the slice in error, when the rebuilding queue is associated with a highest number of slices in error.

8. The method of claim 1 , further comprising:

deleting the queue entry from the rebuilding queue when rebuilding of the slice in error is complete.

9. A processing system of a dispersed storage and task network (DSTN) 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 operations including:

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

identifying a number of slice errors of the set of slices;

generating a queue entry that includes the slice name of the slice in error, a rebuilding task indicator, an identity of the set of slices, and the number of slice errors;

identifying a rebuilding queue based on the number of slice errors, wherein the rebuilding queue is associated with one of: the set of DS units or another set of DS units; and

storing the queue entry in the identified rebuilding queue.

10. The processing system of claim 9 , wherein identifying the slice name of the slice in error includes generating and outputting, to the set of DS units, a set of list slice requests to include a slice name range to be scanned for errors, receiving list slice responses, and identifying the slice name of the slice in error based on a comparison of list slice responses.

11. The processing system of claim 9 , wherein the rebuilding task indicator includes a rebuilding opcode.

12. The processing system of claim 9 , wherein the identity of the set of slices includes a source name.

13. The processing system of claim 9 , wherein identifying the rebuilding queue includes one or more of: a lookup that retrieves the rebuilding queue from a queue list based on the number of slice errors or receiving the rebuilding queue in response to a query that includes on the number of slice errors.

14. The processing system of claim 9 , wherein storing the queue entry in the identified rebuilding queue includes:

generating a set of queue entry slice names based on one or more of: a queue vault identifier, a queue name associated with the identified rebuilding queue, a DS processing module identifier associated with the processing module, a client identifier based on a vault lookup, or a current timestamp;

encoding the queue entry using a dispersed storage error coding function to produce a set of queue entry slices;

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

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

15. The processing system of claim 9 , further comprising:

removing the queue entry from the rebuilding queue to rebuild the slice in error, when the rebuilding queue is associated with a highest number of slices in error.

16. The processing system of claim 9 , further comprising:

deleting the queue entry from the rebuilding queue when rebuilding of the slice in error is complete.

17. A non-transitory 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 perform operations including:

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

identifying a number of slice errors of the set of slices;

generating a queue entry that includes the slice name of the slice in error, a rebuilding task indicator, an identity of the set of slices, and the number of slice errors;

identifying a rebuilding queue based on the number of slice errors, wherein the rebuilding queue is associated with one of: the set of DS units or another set of DS units; and

storing the queue entry in the identified rebuilding queue.

18. The non-transitory computer readable storage medium of claim 17 , wherein identifying the rebuilding queue includes one or more of: a lookup that retrieves the rebuilding queue from a queue list based on the number of slice errors or receiving the rebuilding queue in response to a query that includes on the number of slice errors.

19. The non-transitory computer readable storage medium of claim 17 , wherein storing the queue entry in the identified rebuilding queue includes:

generating a set of queue entry slice names based on one or more of: a queue vault identifier, a queue name associated with the identified rebuilding queue, a DS processing module identifier associated with the processing module, a client identifier based on a vault lookup, or a current timestamp;

encoding the queue entry using a dispersed storage error coding function to produce a set of queue entry slices;

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

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

20. The non-transitory computer readable storage medium of claim 17 , wherein the operations further include:

removing the queue entry from the rebuilding queue to rebuild the slice in error, when the rebuilding queue 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 Feb 22, 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 041343/0170 →