IP Library Granted Patent US 10,073,645
Granted Patent B2
US 10,073,645 · App. 15/363,622 · Granted Sep 11, 2018

Initiating rebuild actions from DS processing unit errors

Inventors: Niall J. McShane (Arlington Heights, IL); Jason K. Resch (Chicago, IL); Ilya Volvovski (Chicago, IL)
Assignee: International Business Machines Corporation
G06F3/0635G06F3/064G06F3/067G06F3/0611G06F3/0617G06F3/0619G06F3/0659G06F11/0727G06F11/1076G06F11/1092G06F17/30569H03M13/1515H03M13/616H04L12/18H04L67/1008H04L67/1097H04L67/2823
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,073,645
App. No.
15/363,622
Granted
Sep 11, 2018
Kind
B2
Abstract

A method begins by detecting a recovery error when decoding a seemingly valid threshold number of existing encoded data slice. The method continues by sending a notice of the recovery error and a known integrity check value for the data segment to a rebuild module. The method continues by the rebuild module retrieving the set of existing encoded data slices and selectively decoding a different combination of a decode threshold number of existing encoded data slices of the set of existing encoded data slices until the data segment is successfully recovered. The method continues by dispersed storage error encoding the successfully recovered data segment to produce a set of new encoded data slices. The method continues by comparing the seemingly valid encoded data slices with corresponding new encoded data slices on an encoded data slice by encoded data slice basis to identify a corrupted encoded data slice.

Claims (62)

1. A method comprises:

detecting, by a computing device of a dispersed storage network (DSN), a recovery error when decoding a seemingly valid threshold number of existing encoded data slices of a set of existing encoded data slices, wherein a data segment of a data object was dispersed storage error encoded to produce the set of existing encoded data slices;

sending, by the computing device, a notice of the recovery error and a known integrity check value for the data segment to a rebuild module of the DSN;

retrieving, by the rebuild module, the set of existing encoded data slices;

selectively decoding, by the rebuild module, a different combination of a decode threshold number of existing encoded data slices of the set of existing encoded data slices until the data segment is successfully recovered;

dispersed storage error encoding, by the rebuild module, the successfully recovered data segment to produce a set of new encoded data slices; and

comparing, by the rebuild module, the seemingly valid threshold number of existing encoded data slices with corresponding new encoded data slices of the set of new encoded data slices on an encoded data slice by encoded data slice basis to identify a corrupted encoded data slice of the seemingly valid threshold number of existing encoded data slices.

2. The method of claim 1 , wherein the sending further comprises:

sending pillar numbers of the seemingly valid threshold number of existing encoded data slices.

3. The method of claim 1 , wherein the detecting the recovery error comprises:

comparing an integrity check value of the successfully recovered data segment with a locally stored integrity check value of the data segment; and

when the comparing yields an unfavorable result, indicating the recovery error.

4. The method of claim 1 , wherein the selectively decoding further comprises:

for a first combination of the set of existing encoded data slices, recovering a first data segment;

generating an integrity check value for the first data segment;

comparing the integrity check value for the first data segment with the known integrity check value; and

when the comparing is favorable, indicating the first combination produces the successfully recovered data segment.

5. The method of claim 4 further comprises:

when the comparing is unfavorable, selecting a second combination of the set of existing encoded data slices to produce a second recovered data segment;

generating a second integrity check value for the second recovered data segment;

comparing the second integrity check value with the known integrity check value; and

when the comparing is favorable, indicating the second combination produces the successfully recovered data segment.

6. The method of claim 1 , wherein the comparing comprises:

for a first existing encoded data slice of the seemingly valid threshold number of existing encoded data slices:

comparing a first existing slice name of the first existing encoded data slice with a first new slice name of a first new encoded data slice of the set of new encoded data slices;

comparing a first existing integrity check value of the first existing encoded data slice with a first new integrity check value of the first new encoded data slice;

comparing a first existing encoded portion of the first existing encoded data slice with a first new encoded portion of the first new encoded data slice; and

when one or more of the comparisons is unfavorable, identifying the first existing encoded data slice as the corrupted encoded data slice.

7. The method of claim 1 further comprises:

sending a new encoded data slice (EDS) to a storage unit to replace the corrupted encoded data slice.

8. A rebuild module comprises:

an interface;

memory; and

a processing module operably coupled to the interface and the memory, wherein the processing module is operable to:

receive, via the interface and from a computing device of a dispersed storage network (DSN), a recovery error regarding a seemingly valid threshold number of existing encoded data slices of a set of existing encoded data slices and a known integrity check of a data segment, wherein the data segment of a data object was dispersed storage error encoded to produce the set of existing encoded data slices;

retrieve, via the interface the set of existing encoded data slices from storage units of the DSN;

selectively decode a different combination of a decode threshold number of existing encoded data slices of the set of existing encoded data slices until the data segment is successfully recovered;

dispersed storage error encode the successfully recovered data segment to produce a set of new encoded data slices; and

compare the seemingly valid threshold number of existing encoded data slices with corresponding new encoded data slices of the set of new encoded data slices on an encoded data slice by encoded data slice to identified a corrupted encoded data slice of the seemingly valid threshold number of existing encoded data slices.

9. The rebuild module of claim 8 , wherein the processing module is further operable to:

receive, via the interface, pillar numbers of the seemingly valid threshold number of existing encoded data slices.

10. The rebuild module of claim 8 , wherein the processing module is further operable to detect the recovery error by:

comparing an integrity check value of the successfully recovered data segment with a locally stored integrity check value of the data segment; and

when the comparing yields an unfavorable result, indicate the recovery error.

11. The rebuild module of claim 8 , wherein the processing module is further operable to perform the selectively decoding by:

for a first combination of the set of existing encoded data slices, recovering a first data segment;

generating an integrity check value for the first data segment;

comparing the integrity check value for the first data segment with the known integrity check value; and

when the comparing is favorable, indicating the first combination produces the successfully recovered data segment.

12. The rebuild module of claim 11 , wherein the processing module is further operable to:

when the comparing is unfavorable, select a second combination of the set of existing encoded data slices to produce a second recovered data segment;

generate a second integrity check value for the second recovered data segment;

compare the second integrity check value with the known integrity check value; and

when the comparing is favorable, indicate the second combination produces the successfully recovered data segment.

13. The rebuild module of claim 8 , wherein the processing module is further operable to:

for a first existing encoded data slice of the seemingly valid threshold number of existing encoded data slices:

compare a first existing slice name of the first existing encoded data slice with a first new slice name of a first new encoded data slice of the set of new encoded data slices;

compare a first existing integrity check value of the first existing encoded data slice with a first new integrity check value of the first new encoded data slice;

compare a first existing encoded portion of the first existing encoded data slice with a first new encoded portion of the first new encoded data slice; and

when one or more of the comparisons is unfavorable, identify the first existing encoded data slice as the corrupted encoded data slice.

14. The rebuild module of claim 8 , wherein the processing module is further operable to:

send, via the interface, a new encoded data slice (EDS) to a storage unit to replace the corrupted encoded data slice.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 050451/0549 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2016
From: MCSHANE, NIALL J.; RESCH, JASON K.; VOLVOVSKI, ILYA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040522/0325 →
Continuity (2)
Provisional Application 62260743 · Nov 30, 2015
Related Publication 20170153943A1 · Jun 1, 2017