IP Library Granted Patent US 10,936,417
Granted Patent B2
US 10,936,417 · App. 16/399,215 · Granted Mar 2, 2021

Multi-stage slice recovery in a dispersed storage network

Inventor: Jason K. Resch (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/1076G06F3/064G06F3/065G06F3/067G06F3/0619G06F11/1662G06F16/22G06F16/2471G06F16/24578G06F16/27G06F16/273H03M13/33H03M13/3761H04L65/4076H04L67/06H04L67/1095H04L67/1097H04L67/16G06F2201/805H03M13/1515
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,936,417
App. No.
16/399,215
Granted
Mar 2, 2021
Kind
B2
Abstract

A computing device for use in a dispersed storage network (DSN) to recover corrupt encoded data slices. The computing device requests, from storage units of the DSN, encoded data slices corresponding to a data segment. In response, the computing device receives at least a decode threshold number of encoded data slices and at least one integrity error message that provides an indication of a corrupt encoded data slice, such that less than a decoded threshold number of valid slices is received. Utilizing at least one correction approach, which may involve stored integrity data, the computing device corrects the corrupt slice(s) to produce a decode threshold number of encoded data slices in order to decode the corresponding data segment. A variety of correction approaches may be employed, including a multi-stage approach that utilizes data from both valid and invalid slices.

Claims (22)

1. A computing device comprises:

an interface;

memory that stores operational instructions; and

a processing module operably coupled to the interface and the memory, wherein the processing module is configured to execute the operational instructions to:

transmit to a set of storage units of a storage network, via the interface, a request for encoded data slices, wherein each of the encoded data slices includes an encoded portion of a corresponding data segment;

receive, via the interface, less than a decode threshold number of requested encoded data slices and at least one integrity error message from the set of storage units, wherein the at least one integrity error message provides an indication of a corrupt encoded data slice;

request, via the interface, at least one corrupt encoded data slice from the set of storage units;

receive, via the interface, the at least one corrupt encoded data slice; and

correct the at least one corrupt encoded data slice, utilizing at least one correction approach, to produce at least a decode threshold number of encoded data slices.

2. The computing device of claim 1 , wherein the processing module is further configured to execute the operational instructions to:

decode the decode threshold number of encoded data slices to generate the corresponding data segment.

3. The computing device of claim 1 , wherein correction of the at least one corrupt encoded data slice includes:

selecting a first correction approach based on stored integrity information;

attempting to correct the at least one corrupt encoded data slice using the first correction approach;

in response to determining that the first correction approach was not successful, selecting a second correction approach based on the stored integrity information; and

correcting the at least one corrupt encoded data slice using the second correction approach.

4. The computing device of claim 1 , wherein the at least one correction approach utilizes slice substitution and stored integrity information corresponding to a pre-encoded version of the corresponding data segment.

5. The computing device of claim 1 , wherein the local memory includes integrity information corresponding to a pre-encoded version of the corresponding data segment, wherein the at least one correction approach includes applying the integrity information to determine if the at least one corrupt encoded data slice is valid.

6. The computing device of claim 1 , wherein the at least one correction approach includes byte-by-byte recovery of the at least one corrupt encoded data slice utilizing valid bytes, in a common byte position, from a decode threshold number of encoded data slices.

7. The computing device of claim 1 , wherein the at least one correction approach utilizes integrity information regarding the corresponding data segment.

8. The computing device of claim 1 , wherein the at least one correction approach utilizes integrity information generated by a dispersed storage error encoding process during encoding of the encoded data slices.

9. The computing device of claim 1 , wherein the at least one correction approach utilizes integrity information regarding individual ones of the encoded data slices generated prior to storage of the encoded data slices in the set of storage units.

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 Apr 30, 2019
From: RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049037/0425 →
Continuity (4)
Division 16031488 · Jul 10, 2018
Division 15184614 · Jun 16, 2016
Provisional Application 62186590 · Jun 30, 2015
Related Publication 20190258545A1 · Aug 22, 2019