IP Library Granted Patent US 8,819,516
Granted Patent B2
US 8,819,516 · App. 13/916,138 · Granted Aug 26, 2014

Method and apparatus for storage integrity processing based on error types 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 8,819,516
App. No.
13/916,138
Granted
Aug 26, 2014
Kind
B2
Abstract

A storage integrity system in a dispersed storage network scans an address range of data slices to identify errors in one of a plurality of encoded data slices, wherein the plurality of encoded data slices are generated from a data segment using an error encoding dispersal function. When the storage integrity system detects an error, it identifies one of the encoded data slices for rebuilding. The identified data slice is rebuilt in response to the type of error. For example, when the type of the error includes a temporary error, the storage integrity system waits a predetermined time period to determine whether the error still exists prior to rebuilding the identified data slice.

Claims (68)

1. A method for execution by one or more processing modules, the method comprises:

selecting an encoded data slice with an error for rebuilding to produce an identified data slice, wherein the identified data is one of a plurality of encoded data slices generated from a data segment using an error encoding dispersal function; and

rebuilding the identified data slice in response to a type of the error.

2. The method of claim 1 , wherein the rebuilding the identified data slice comprises:

when the type of the error includes a temporary error, waiting a predetermined time period;

after the predetermined time period, determining whether the error still exists; and

when the error still exists after the predetermined time period, rebuilding the identified data slice.

3. The method of claim 1 , wherein the rebuilding the identified data slice comprises:

when the type of the error includes a temporary error, scanning the plurality of encoded data slices to determine a number E of the plurality of encoded data slices with an associated error;

when the number E of the plurality of encoded data slices with an associated error compares unfavorably to a threshold, rebuilding the encoded data slice; and

when the number E of the plurality of encoded data slices with an associated error compares favorably to the threshold, waiting a predetermined time period before rebuilding the identified encoded data slice.

4. The method of claim 3 , wherein the threshold equals a number X of the plurality of encoded data slices less a number T of the plurality of encoded data slices needed to reconstruct the data segment based on the error coding dispersal function.

5. The method of claim 1 , wherein the rebuilding the identified data slice comprises:

retrieving at least a number T of the plurality of encoded data slices, wherein the number T corresponds to a number of the plurality of encoded data slices needed to reconstruct the data segment based on the error coding dispersal function;

reconstructing the data segment from at least the number T of the plurality of encoded data slices to produce a reconstructed data segment; and

generating a second plurality of encoded data slices from the reconstructed data segment based on the error coding dispersal function, wherein the second plurality of encoded data slices includes a rebuilt encoded data slice corresponding to the identified data slice.

6. The method of claim 1 further comprising:

determining the type of the error to be at least one of: a slice failure, a storage unit failure, and a site failure.

7. The method of claim 1 , wherein the rebuilding the identified data slice comprises:

determining the type of the error to be a slice failure;

when the slice failure includes a data corruption error, rebuilding the identified data slice;

when the slice failure includes a version update error, rebuilding the identified data slice; and

when the slice failure includes a missing slice error, waiting a predetermined time period to determine whether the missing slice error is corrected during the predetermined time period without rebuilding.

8. The method of claim 1 , wherein the rebuilding the identified data slice comprises:

determining the type of the error to be a storage unit failure, wherein the identified data slice is stored on a storage unit with the storage unit failure; and

when the storage unit failure is a temporary outage, waiting a predetermined time period to determine whether the storage unit failure is corrected during the predetermined time period without rebuilding.

9. The method of claim 1 , wherein the rebuilding the identified data slice comprises:

determining the type of the error to be a site failure, wherein the identified data slice is stored on a storage unit at a site with the site failure; and

when the site failure is a temporary outage, waiting a predetermined time period to determine whether the site failure is corrected during the predetermined time period without rebuilding.

10. The method of claim 1 , further comprising:

periodically scanning an address range of encoded data slices stored in one or more storage units, wherein the plurality of encoded data slices has addresses within the address range; and

determining whether one of the encoded data slices within the address range has an associated error.

11. The method of claim 1 , further comprising:

scanning the plurality of encoded data slices, wherein the plurality of encoded data slices is stored in one or more storage units; and

determining whether one of the plurality of encoded data slices has an associated error.

12. A storage integrity system in a dispersed storage network, comprising:

at least one network interface to the dispersed storage network; and

at least one processing module that is operable to:

identify an encoded data slice with an error for rebuilding to produce an identified data slice, wherein the identified data is one of a plurality of encoded data slices generated from a data segment using an error encoding dispersal function; and

rebuild the identified data slice in response to a type of the error.

13. The system of claim 12 , wherein the at least one processing module is further operable to:

when the type of the error includes a temporary error, waiting a predetermined time period;

after the predetermined time period, determining whether the error still exists; and

when the error still exists after the predetermined time period, rebuilding the identified data slice.

14. The system of claim 12 , wherein the at least one processing module is further operable to:

when the type of the error includes a temporary error, scanning the plurality of encoded data slices to determine a number E of the plurality of encoded data slices with an associated error;

when the number E of the plurality of encoded data slices with an associated error compares unfavorably to a threshold, rebuilding the encoded data slice; and

when the number E of the plurality of encoded data slices with an associated error compares favorably to the threshold, waiting a predetermined time period before rebuilding the identified encoded data slice.

15. The system of claim 14 , wherein the threshold equals a number X of the plurality of encoded date slices less a number T of the plurality of encoded data slices needed to reconstruct the data segment based on the error coding dispersal function.

16. The system of claim 12 , wherein the at least one processing module is further operable to:

determine the type of the error to be a slice failure;

when the slice failure includes a data corruption error, rebuild the identified data slice;

when the slice failure includes a version update error, rebuild the identified data slice; and

when the slice failure includes a missing slice error, determine whether the missing slice error is corrected during a predetermined time period before rebuilding.

17. The system of claim 12 , wherein the at least one processing module is further operable to:

determine the type of the detected error to be a storage unit failure, wherein the identified data slice is stored on a storage unit with the storage unit failure; and

when the storage unit failure is a temporary outage, determine whether the storage unit failure is corrected during a predetermined time period before rebuilding.

18. The system of claim 12 , wherein the at least one control unit is further operable to:

determine the type of the detected error to be a site failure, wherein the identified data slice is stored on a storage unit at a site with the site failure; and

when the site failure is a temporary outage, determine whether the site failure is corrected during a predetermined time period before rebuilding.

19. The system of claim 12 , further comprising:

at least one scanning agent operable to:

periodically scan an address range of encoded data slices stored in one or more storage units, wherein the plurality of encoded data slices has addresses within the address range; and

determine whether one of the encoded data slices within the address range has an associated error.

20. The system of claim 12 , further comprising:

at least one scanning agent operable to:

scan the plurality of encoded data slices, wherein the plurality of encoded data slices is stored in one or more storage units; and

determine whether one of the plurality of encoded data slices has an associated error.

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 Mar 31, 2016
From: DHUSE, GREG; BAPTIST, ANDREW; MARK, ZACHARY J.; RESCH, JASON K.; VOLVOVSKI, ILYA
To: CLEVERSAFE, INC.
Reel/Frame 038161/0973 →