IP Library Granted Patent US 10,241,695
Granted Patent B2
US 10,241,695 · App. 15/352,950 · Granted Mar 26, 2019

Optimizing rebuilds when using multiple information dispersal algorithms

Inventors: Andrew D. Baptist (Mt. Pleasant, WI); Ethan S. Wozniak (Park Ridge, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F3/0619G06F3/064G06F3/0604G06F3/067G06F3/0608G06F3/0611G06F3/0616G06F3/0623G06F3/0631G06F3/0644G06F3/0647G06F3/0652G06F3/0653G06F3/0659G06F3/0661G06F3/0665G06F11/1076G06F11/1092G06F12/0813G06F12/0888G06F12/1408G06F17/30194G06F17/30327H03M13/3761H04L43/0852H04L43/0876H04L43/0888H04L43/16H04L67/1097G06F2212/1032G06F2212/1036G06F2212/1052G06F2212/154G06F2212/263G06F2212/402G06F2212/403G06F2212/60G06F2212/62H03M13/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,241,695
App. No.
15/352,950
Granted
Mar 26, 2019
Kind
B2
Abstract

Systems and methods for rebuilding encoded data slices in a dispersed storage network (DSN). In an embodiment, a data segment is dispersed storage error encoded using first dispersal parameters and differing second dispersal parameters to produce a first set of encoded data slices and a second sets of encoded data slices for storage in the DSN. A storage error is identified involving an encoded data slice of the first set of encoded data slices. When a first decode threshold number associated with the first dispersal parameters is greater than a second decode threshold number associated with the second dispersal parameters, a second decode threshold number of encoded data slices of the second set of encoded data slices is retrieved. The retrieved slices are decoded to recover the data segment, which is then re-encoded using the first dispersal parameters to generate a rebuilt encoded data slice corresponding to the storage error.

Claims (46)

1. A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the DSN storing a first set of encoded data slices and a second set of encoded data slices, wherein a data segment is dispersed storage error encoded using first dispersal parameters and differing second dispersal parameters to produce, respectively, the first and second sets of encoded data slices, the method comprising:

identifying a storage error associated with storage in the DSN of a first encoded data slice of the first set of encoded data slices;

in response to identifying the storage error, determining that a first decode threshold number associated with the first dispersal parameters is greater than a second decode threshold number associated with the second dispersal parameters;

obtaining, from storage of the DSN, a second decode threshold number of encoded data slices of the second set of encoded data slices;

generating, by the one or more processing modules, a rebuilt encoded data slice associated with the first encoded data slice using the second decode threshold number of encoded data slices; and

storing the rebuilt encoded data slice associated with the first encoded data slice.

2. The method of claim 1 , wherein the first set of encoded data slices is stored in a first set of dispersed storage units and the second set of encoded data slices is stored in a second set of dispersed storage units.

3. The method of claim 2 , wherein the first set of dispersed storage units include a first number of dispersed storage units corresponding to a first information dispersal algorithm width number of the first dispersal parameters and the second set of dispersed storage units include a second number of dispersed storage units corresponding to a second information dispersal algorithm width number of the second dispersal parameters.

4. The method of claim 3 , wherein the first information dispersal algorithm width number of the first dispersal parameters is greater than the first decode threshold number and the second information dispersal algorithm width number of the second dispersal parameters is greater than the second decode threshold number.

5. The method of claim 3 , wherein generating a rebuilt encoded data slice associated with the first encoded data slice using the second decode threshold number of encoded data slices further comprises dispersed storage error decoding, by the one or more processing modules, the second decode threshold number of encoded data slices using the second dispersal parameters to produce a recovered data segment.

6. The method of claim 5 , further comprising dispersed storage error encoding, by the one or more processing modules, the recovered data segment using the first dispersal parameters.

7. The method of claim 1 , wherein identifying a storage error associated with a first encoded data slice of a first set of encoded data slices further comprises interpreting list slice responses, interpreting an error message and interpreting a read slice response.

8. The method of claim 1 , further comprising issuing, by the one or more processing modules, read slice requests for the second decode threshold number of encoded data slices.

9. The method of claim 1 , wherein storing the rebuilt encoded data slice associated with the first encoded data slice further comprises identifying, by the one or more processing modules, a storage unit associated with the storage error and identifying another storage unit with favorable capacity and performance for storage of the rebuilt encoded data slice.

10. A dispersed storage integrity processing unit for use in a dispersed storage network, the dispersed storage network including a first set of dispersed storage units storing a first set of encoded data slices and a second set of dispersed storage units storing a second set of encoded data slices, wherein a data segment is dispersed storage error encoded using first dispersal parameters and differing second dispersal parameters to produce, respectively, the first and second sets of encoded data slices, the dispersed storage integrity processing unit comprising:

a communications interface;

a memory; and

a computer processor;

where the memory includes instructions for causing the computer processor to:

identify a storage error associated with a first encoded data slice of the first set of encoded data slices;

in response to identifying the storage error, determine that a first decode threshold number associated with the first dispersal parameters is greater than a second decode threshold number associated with the second dispersal parameters;

obtain, via the communications interface, a second decode threshold number of second encoded data slices of the second set of encoded data slices;

generate a rebuilt encoded data slice associated with the first encoded data slice using the second decode threshold number of second encoded data slices; and

issue, via the communications interface, a write slice request to store the rebuilt encoded data slice associated with the first encoded data slice.

11. The dispersed storage integrity processing unit of claim 10 , wherein the first set of encoded data slices is stored in a first information dispersal algorithm width number of the first set of dispersed storage units and the second set of encoded data slices is stored in a second information dispersal algorithm width number of the second set of dispersed storage units.

12. The dispersed storage integrity processing unit of claim 11 , wherein the first information dispersal algorithm width number is greater than the first decode threshold number and the second information dispersal algorithm width number is greater than the second decode threshold number.

13. The dispersed storage integrity processing unit of claim 12 , wherein the first information dispersal algorithm width number is greater than the second information dispersal algorithm width number.

14. The dispersed storage integrity processing unit of claim 12 , wherein the memory further comprises instructions for causing the computer processor to dispersed storage error decode the second decode threshold number of second encoded data slices using the second dispersal parameters to produce a recovered data segment.

15. The dispersed storage integrity processing unit of claim 14 , wherein the memory further comprises instructions for causing the computer processor to dispersed storage error encode the recovered data segment using the first dispersal parameters.

16. The dispersed storage integrity processing unit of claim 10 , wherein the memory further comprises instructions for causing the computer processor to interpret list slice responses, interpret an error message and interpret a read slice response.

17. The dispersed storage integrity processing unit of claim 10 , wherein the memory further comprises instructions for causing the computer processor to issue read slice requests for the second decode threshold number of second encoded data slices.

18. The dispersed storage integrity processing unit of claim 10 , wherein the memory further comprises instructions for causing the computer processor to identify a storage unit associated with the storage error and identify another storage unit with favorable capacity and performance.

19. A dispersed storage network comprising:

a first set of dispersed storage units storing a first set of encoded data slices, wherein a data segment is dispersed storage error encoded using first dispersal parameters to produce the first set of encoded data slices;

a second set of dispersed storage units storing a second set of encoded data slices, wherein the data segment is dispersed storage error encoded using second dispersal parameters to produce the second set of encoded data slices; and

a disperse storage integrity processing unit including:

a communications interface;

a memory; and

a computer processor;

where the memory includes instructions for causing the computer processor to:

identify a storage error associated with a first encoded data slice of the first set of encoded data slices;

determine that a first decode threshold number associated with the first dispersal parameters is greater than a second decode threshold number associated with the second dispersal parameters;

obtain, via the communications interface, a second decode threshold number of second encoded data slices of the second set of encoded data slices;

generate a rebuilt encoded data slice associated with the first encoded data slice using the second decode threshold number of second encoded data slices; and

store the rebuilt encoded data slice associated with the first encoded data slice.

20. The dispersed storage network of claim 19 , wherein the first set of encoded data slices is stored in a subset of the first set of dispersed storage units and the second set of encoded data slices is stored in a subset of the second set of dispersed storage units.

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 Nov 16, 2016
From: BAPTIST, ANDREW D.; WOZNIAK, ETHAN S.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040343/0702 →
Continuity (2)
Provisional Application 62272848 · Dec 30, 2015
Related Publication 20170192692A1 · Jul 6, 2017
Cited By (1)
US 12,223,194