IP Library Granted Patent US 11,409,767
Granted Patent B1
US 11,409,767 · App. 17/097,140 · Granted Aug 9, 2022

Rebuilding failed slices in a vast storage network

Inventors: Asimuddin Kazi (Naperville, IL); Jason K. Resch (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F16/27G06F3/064G06F3/067G06F3/0619G06F3/0659G06F3/0689G06F11/1076G06F16/178H04L67/1097H04L67/34
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 11,409,767
App. No.
17/097,140
Granted
Aug 9, 2022
Kind
B1
Abstract

A method for execution by a rebuilding module includes detecting that less than a pillar width number of encoded data slices of a common revision are retrievable from a set of storage units. A decode threshold number of encoded data slices are retrieved and decoded to reproduce a data segment. The data segment is encoded to produce at least one encoded data slice and storage of the at least one encoded data slice in the set of storage units is facilitated in accordance with the common revision when determining to rebuild the at least one encoded data slice. The data segment is encoded to reproduce the set of encoded data slices and storage of the reproduced set of encoded data slices is facilitated in the set of storage units in accordance with a new revision when determining to not rebuild the at least one encoded data slice.

Claims (42)

1. A method for execution by a processor of a storage network, the method comprises:

encoding, via a dispersed error encoding, at least one data object as a write threshold number of encoded data slices;

storing the write threshold number of the encoded data slices in a set of storage units of a storage network;

determining when, due to a failure of at least one of the set of storage units, less than the write threshold number of the encoded data slices are available from the set of storage units, wherein the determining is based on when less than a pillar width number of the set of encoded data slices of a common revision are retrievable from the set of storage units:

retrieving a decode threshold number of the encoded data slices from others of the set of storage units;

decoding the decode threshold number of the encoded data slices to reproduce the at least one data object;

restoring availability of the write threshold number of the encoded data slices from the set of storage units by:

rebuilding a subset of encoded data slices of the set of encoded data slices, based on an encoding of the at least one data object; and

storing the subset of encoded data slices in the storage network.

2. The method of claim 1 , wherein determining when less than the write threshold number of encoded data slices are available includes invoking a list query to the set of storage units and comparing query responses received from the set of storage units.

3. The method of claim 1 , wherein retrieving the decode threshold number of encoded data slices includes generating at least the decode threshold number of read slice requests for transmission to the set of storage units, and receiving the at least the decode threshold number of encoded data slices from the set of storage units in response.

4. The method of claim 1 , further comprising:

identifying dispersal parameters associated with the set of encoded data slices, wherein the dispersal parameters include the decode threshold number.

5. The method of claim 4 , wherein identifying the dispersal parameters includes reading an encoded data slice of the set of encoded data slices and extracting the dispersal parameters from the encoded data slice.

6. The method of claim 5 , wherein retrieving the decode threshold number of encoded data slices is performed when the less than the pillar width number includes at least the decode threshold number of encoded data slices.

7. The method of claim 6 , further comprising:

determining whether to rebuild the subset of encoded data slices of the set of encoded data slices based on determining whether combining the at least one encoded data slice with the less than the pillar width number of encoded data slices reforms a full pillar width number of encoded data slices.

8. The method of claim 7 , further comprising:

encoding the at least one data object to reproduce the set of encoded data slices and facilitating storage of the reproduced set of encoded data slices in the set of storage units in accordance with a new revision when it is determined to not rebuild the subset of encoded data slices of the set of encoded data slices.

9. The method of claim 7 , wherein determining whether to rebuild the at least one encoded data slice is further based on a reliability goal.

10. A processing system of a storage network comprises:

at least one processor;

at least one memory that stores operational instructions, that when executed by the at least one processor cause the processing system to perform operations that include:

encoding, via a dispersed error encoding, at least one data object as a write threshold number of encoded data slices;

storing the write threshold number of the encoded data slices in a set of storage units of the storage network;

determining when, due to a failure of at least one of the set of storage units, less than the write threshold number of the encoded data slices are available from the set of storage units, wherein the determining is based on when less than a pillar width number of the set of encoded data slices of a common revision are retrievable from the set of storage units:

retrieving a decode threshold number of the encoded data slices from others of the set of storage units;

decoding the decode threshold number of the encoded data slices to reproduce the at least one data object;

restoring availability of the write threshold number of the encoded data slices from the set of storage units by:

rebuilding a subset of encoded data slices of the set of encoded data slices, based on an encoding of the at least one data object; and

storing the subset of encoded data slices in the storage network.

11. The processing system of claim 10 , wherein determining when less than the write threshold number of encoded data slices are available includes invoking a list query to the set of storage units and comparing query responses received from the set of storage units.

12. The processing system of claim 10 , wherein retrieving the decode threshold number of encoded data slices includes generating at least the decode threshold number of read slice requests for transmission to the set of storage units, and receiving the at least the decode threshold number of encoded data slices from the set of storage units in response.

13. The processing system of claim 10 , wherein the operations further include:

identifying dispersal parameters associated with the set of encoded data slices, wherein the dispersal parameters include the decode threshold number.

14. The processing system of claim 13 , wherein identifying the dispersal parameters includes reading an encoded data slice of the set of encoded data slices and extracting the dispersal parameters from the encoded data slice.

15. The processing system of claim 14 , wherein retrieving the decode threshold number of encoded data slices is performed when the less than the pillar width number includes at least the decode threshold number of encoded data slices.

16. The processing system of claim 15 , wherein the operations further include:

determining whether to rebuild the subset of encoded data slices of the set of encoded data slices based on determining whether combining the at least one encoded data slice with the less than the pillar width number of encoded data slices reforms a full pillar width number of encoded data slices.

17. The processing system of claim 16 , wherein the operations further include:

encoding the at least one data object to reproduce the set of encoded data slices and facilitating storage of the reproduced set of encoded data slices in the set of storage units in accordance with a new revision when it is determined to not rebuild the subset of encoded data slices of the set of encoded data slices.

18. The processing system of claim 16 , wherein determining whether to rebuild the at least one encoded data slice is further based on a reliability goal.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2020
From: KAZI, ASIMUDDIN; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 054363/0007 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 054405/0050 →
Continuity (6)
Continuation 16297978 · Mar 11, 2019
Continuation 15822873 · Nov 27, 2017
Continuation In Part 15400092 · Jan 6, 2017
Continuation In Part 15223707 · Jul 29, 2016
Continuation 13959702 · Aug 5, 2013
Provisional Application 61700691 · Sep 13, 2012