IP Library Granted Patent US 10,838,814
Granted Patent B2
US 10,838,814 · App. 16/244,615 · Granted Nov 17, 2020

Allocating rebuilding queue entries in a dispersed storage network

Inventors: Andrew D. Baptist (Mt. Pleasant, WI); Greg R. Dhuse (Chicago, IL); Adam M. Gray (Chicago, IL); Wesley B. Leggette (Chicago, IL); Jason K. Resch (Chicago, IL); Ilya Volvovski (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/1092G06F3/064G06F3/0604G06F3/067G06F3/0619G06F3/0644G06F11/1076G06F11/1088G06F2201/81G06F2211/1028G06F2211/1054H03M13/1515H03M13/616
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,838,814
App. No.
16/244,615
Granted
Nov 17, 2020
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 (52)

1. A method for execution by a processing system in storage network that includes a processor, the method comprises:

identifying a slice in error of a set of slices that are dispersed error encoded and stored in a set of storage units;

generating a queue entry that indicates the slice in error, a rebuilding task indicator, an identity of the set of slices, and a 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 storage units or another set of storage units; and

storing the queue entry in the identified rebuilding queue.

2. The method of claim 1 , wherein identifying the slice in error includes generating and outputting, to the set of storage 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 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 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 storage units or the another set of storage 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 storage network 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 in error of a set of slices that are dispersed error encoded and stored in a set of storage units;

generating a queue entry that indicates the slice in error, a rebuilding task indicator, an identity of the set of slices, and a 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 storage units or another set of storage units; and

storing the queue entry in the identified rebuilding queue.

10. The processing system of claim 9 , wherein identifying the slice in error includes generating and outputting, to the set of storage 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 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 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 storage units or the another set of storage 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 storage network that includes a processor and a memory, causes the processing system to perform operations including:

identifying a slice in error of a set of slices that are dispersed error encoded and stored in a set of storage units;

generating a queue entry that indicates of the slice in error, a rebuilding task indicator, an identity of the set of slices, and a 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 storage units or another set of storage 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 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 storage units or the another set of storage 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 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 Jan 10, 2019
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 047956/0653 →