IP Library Granted Patent US 9,152,514
Granted Patent B2
US 9,152,514 · App. 13/866,224 · Granted Oct 6, 2015

Rebuilding a data segment 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 9,152,514
App. No.
13/866,224
Granted
Oct 6, 2015
Kind
B2
Abstract

A method begins with a processing module storing a set of encoded data slices in memory of a dispersed storage network (DSN), where a data segment is encoded using an error coding dispersal storage function to produce the set of encoded data slices. The method continues with the processing module adding the data segment to a rebuilding list, where encoded data slices of data segments identified in the rebuilding list are checked via a rebuilding process to detect errors and, when one of the encoded data slices has an error, the rebuilding process rebuilds the one of the encoded data slices. The method continues with the processing module, in response to a condition, removing the data segment from the rebuilding list.

Claims (107)

1. A method for execution by a computing device within a dispersed storage network (DSN), the method comprises:

storing a set of encoded data slices in memory of the DSN, wherein a data segment is encoded using an error coding dispersal storage function to produce the set of encoded data slices;

adding the data segment to a rebuilding list, wherein encoded data slices of data segments identified in the rebuilding list are checked via a rebuilding process to detect errors and, when one of the encoded data slices has an error, the rebuilding process rebuilds the one of the encoded data slices;

in response to a condition, removing the data segment from the rebuilding list;

when the data segment has been removed from the rebuilding list:

identifying other data segments of a plurality of data segments, wherein the plurality of data segments includes the data segment and corresponds to at least one data object;

determining whether at least some of the other data segments have been removed from the rebuilding list;

when at least a predetermined number of other data segments has been removed from the rebuilding list, determining whether the at least the predetermined number of other data segments have at least a threshold number of encoded data slices available; and

when the at least the predetermined number of other data segments does not have at least the threshold number of encoded data slices available, deleting the at least one data object from the memory of the DSN.

2. The method of claim 1 , wherein the condition comprises at least one of:

elapse of time;

a user command;

a system administrator directive; and

a passive expiration subscription.

3. The method of claim 1 further comprises, when the data segment has been removed from the rebuilding list:

determining when the set of encoded data slices includes a threshold number of error-free encoded data slices remaining in the memory of the DSN; and

when the set of encoded data slices includes the threshold number of error-free encoded data slices remaining in the memory of the DSN, deleting the threshold number of error-free encoded data slices and deleting addressing information regarding the data segment.

4. The method of claim 1 further comprises, when the data segment has been removed from the rebuilding list:

determining when the set of encoded data slices includes a threshold number of error-free encoded data slices remaining in the memory of the DSN; and

when the set of encoded data slices includes the threshold number of error-free encoded data slices remaining in the memory of the DSN, sending a query regarding re-adding the data segment to the rebuilding list.

5. The method of claim 1 further comprises, when the data segment has been removed from the rebuilding list:

determining when the set of encoded data slices includes a threshold number of error-free encoded data slices remaining in the memory of the DSN; and

when the set of encoded data slices includes the threshold number of error-free encoded data slices remaining in the memory of the DSN, confirming non-rebuilding of encoded data slices of the set of encoded data slices.

6. The method of claim 1 further comprises, when the data segment has been removed from the rebuilding list:

determining when the set of encoded data slices includes a threshold number of error-free encoded data slices remaining in the memory of the DSN; and

when the set of encoded data slices includes the threshold number of error-free encoded data slices remaining in the memory of the DSN:

detecting when less than the threshold number of error-free encoded data slices are available for the data segment; and

when the less than the threshold number of error-free encoded data slices are available for the data segment, deleting the less than the threshold number of error-free encoded data slices and deleting addressing information regarding the data segment.

7. The method of claim 1 further comprises, when the data segment has been removed from the rebuilding list:

determining when the set of encoded data slices includes a threshold number of error-free encoded data slices remaining in the memory of the DSN; and

when the set of encoded data slices includes the threshold number of error-free encoded data slices remaining in the memory of the DSN:

detecting when less than the threshold number of encoded data slices are available for the data segment; and

when the less than the threshold number of encoded data slices are available for the data segment, replacing the data segment with null data.

8. A method for execution by a computing device within a dispersed storage network (DSN), the method comprises:

storing a set of encoded data slices in memory of the DSN, wherein a data segment is encoded using an error coding dispersal storage function to produce the set of encoded data slices;

determining a rebuilding option regarding the data segment is to not include the data segment on a rebuilding list, wherein encoded data slices of data segments identified in the rebuilding list are checked via a rebuilding process to detect errors and, when one of the encoded data slices has an error, the rebuilding process rebuilds the one of the encoded data slices;

determining disposition of the data segment when the set of encoded data slices includes a threshold number of error-free encoded data slices remaining in the memory of the DSN;

identifying other data segments of a plurality of data segments, wherein the plurality of data segments includes the data segment and corresponds to at least one data object;

determining whether at least some of the other data segments are not in the rebuilding list;

when at least a predetermined number of other data segments is not in the rebuilding list, determining whether the at least the predetermined number of other data segments has at least a threshold number of encoded data slices available; and

when the at least the predetermined number of other data segments does not have at least the threshold number of encoded data slices available, deleting the at least one data object from the memory of the DSN.

9. The method of claim 8 , wherein the determining the disposition of the data segment comprises one of:

deleting the threshold number of error-free encoded data slices and deleting addressing information regarding the data segment;

sending a query regarding adding the data segment to the rebuilding list;

confirming non-rebuilding of encoded data slices of the set of encoded data slices;

detecting when less than the threshold number of error-free encoded data slices are available for the data segment and, when the less than the threshold number of error-free encoded data slices are available for the data segment, deleting the less than the threshold number of error-free encoded data slices and deleting addressing information regarding the data segment; and

detecting when less than the threshold number of error-free encoded data slices are available for the data segment, and, when the less than the threshold number of error-free encoded data slices are available for the data segment, replacing the data segment with null data.

10. A dispersed storage (DS) module of a computing device within a dispersed storage network (DSN), the DS module comprises:

a first module, when operable within the computing device, causes the computing device to:

store a set of encoded data slices in memory of the DSN, wherein a data segment is encoded using an error coding dispersal storage function to produce the set of encoded data slices;

a second module, when operable within the computing device, causes the computing device to:

add the data segment to a rebuilding list, wherein encoded data slices of data segments identified in the rebuilding list are checked via a rebuilding process to detect errors and, when one of the encoded data slices has an error, the rebuilding process rebuilds the one of the encoded data slices; and

a third module, when operable within the computing device, causes the computing device to:

in response to a condition, remove the data segment from the rebuilding list;

when the data segment has been removed from the rebuilding list:

identify other data segments of a plurality of data segments, wherein the plurality of data segments includes the data segment and corresponds to at least one data object;

determine whether at least some of the other data segments have been removed from the rebuilding list;

when at least a predetermined number of other data segments have been removed from the rebuilding list, determine whether the at least the predetermined number of other data segments has at least a threshold number of encoded data slices available; and

when the at least the predetermined number of other data segments does not have at least the threshold number of encoded data slices available, delete the at least one data object from the memory of the DSN.

11. The DS module of claim 10 , wherein the condition comprises at least one of:

elapse of time;

a user command;

a system administrator directive; and

a passive expiration subscription.

12. The DS module of claim 10 further comprises, when the data segment has been removed from the rebuilding list:

the third module further functions to:

determine when the set of encoded data slices includes a threshold number of error-free encoded data slices remaining in the memory of the DSN; and

when the set of encoded data slices includes the threshold number of error-free encoded data slices remaining in the memory of the DSN, delete the threshold number of error-free encoded data slices and deleting addressing information regarding the data segment.

13. The DS module of claim 10 further comprises, when the data segment has been removed from the rebuilding list:

the third module further functions to:

determine when the set of encoded data slices includes a threshold number of error-free encoded data slices remaining in the memory of the DSN; and

when the set of encoded data slices includes the threshold number of error-free encoded data slices remaining in the memory of the DSN, send a query regarding re-adding the data segment to the rebuilding list.

14. The DS module of claim 10 further comprises, when the data segment has been removed from the rebuilding list:

the third module further functions to:

determine when the set of encoded data slices includes a threshold number of error-free encoded data slices remaining in the memory of the DSN; and

when the set of encoded data slices includes the threshold number of error-free encoded data slices remaining in the memory of the DSN, confirm non-rebuilding of encoded data slices of the set of encoded data slices.

15. The DS module of claim 10 further comprises, when the data segment has been removed from the rebuilding list:

the third module further functions to:

determine when the set of encoded data slices includes a threshold number of error-free encoded data slices remaining in the memory of the DSN; and

when the set of encoded data slices includes the threshold number of error-free encoded data slices remaining in the memory of the DSN:

detect when less than the threshold number of error-free encoded data slices are available for the data segment; and

when the less than the threshold number of error-free encoded data slices are available for the data segment, delete the less than the threshold number of error-free encoded data slices and deleting addressing information regarding the data segment.

16. The DS module of claim 10 further comprises, when the data segment has been removed from the rebuilding list:

the third module further functions to:

determine when the set of encoded data slices includes a threshold number of error-free encoded data slices remaining in the memory of the DSN; and

when the set of encoded data slices includes the threshold number of error-free encoded data slices remaining in the memory of the DSN:

detect when less than the threshold number of error-free encoded data slices are available for the data segment; and

when the less than the threshold number of error-free encoded data slices are available for the data segment, replace the data segment with null data.

17. A dispersed storage (DS) module of a computing device within a dispersed storage network (DSN), the DS module comprises:

a first module, when operable within the computing device, causes the computing device to:

store a set of encoded data slices in memory of the DSN, wherein a data segment is encoded using an error coding dispersal storage function to produce the set of encoded data slices;

a second module, when operable within the computing device, causes the computing device to:

determine a rebuilding option regarding the data segment is to not include the data segment on a rebuilding list, wherein encoded data slices of data segments identified in the rebuilding list are checked via a rebuilding process to detect errors and, when one of the encoded data slices has an error, the rebuilding process rebuilds the one of the encoded data slices; and

a third module, when operable within the computing device, causes the computing device to:

determine disposition of the data segment when the set of encoded data slices includes a threshold number of error-free encoded data slices remaining in the memory of the DSN, wherein

the second module further functions to:

identify other data segments of a plurality of data segments, wherein the plurality of data segments includes the data segment and corresponds to at least one data object; and

determine whether at least some of the other data segments are not in the rebuilding list; and

the third module further functions to:

when at least a predetermined number of other data segments is not in the rebuilding list, determine whether the at least the predetermined number of other data segments has at least a threshold number of encoded data slices available; and

when the at least the predetermined number of other data segments does not have at least the threshold number of encoded data slices available, delete the at least one data object from the memory of the DSN.

18. The DS module of claim 17 , wherein the third module functions to determine the disposition of the data segment by one of:

deleting the threshold number of error-free encoded data slices and deleting addressing information regarding the data segment;

sending a query regarding adding the data segment to the rebuilding list;

confirming non-rebuilding of encoded data slices of the set of encoded data slices;

detecting when less than the threshold number of error-free encoded data slices are available for the data segment and, when the less than the threshold number of error-free encoded data slices are available for the data segment, deleting the less than the threshold number of error-free encoded data slices and deleting addressing information regarding the data segment; and

detecting when less than the threshold number of encoded data slices are available for the data segment, and, when the less than the threshold number of encoded data slices are available for the data segment, replacing the data segment with null data.

Assignments (6)
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 May 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2013
From: RESCH, JASON K.; BAPTIST, ANDREW; MARKISON, TIMOTHY W.; GRUBE, GARY W.
To: CLEVERSAFE, INC.
Reel/Frame 030251/0832 →