IP Library Granted Patent US 11,182,251
Granted Patent B1
US 11,182,251 · App. 17/247,447 · Granted Nov 23, 2021

Rebuilding an encoded data slice utilizing integrity check values

Inventors: Brennan James Trichardt (Chicago, IL); Jason K. Resch (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/1092G06F2211/1028
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,182,251
App. No.
17/247,447
Granted
Nov 23, 2021
Kind
B1
Abstract

A method includes executing a set of read requests regarding a set of encoded data slices stored in storage units of a storage network, where a data segment is encoded in accordance with a dispersed storage error coding function to produce the set of encoded data slices, and where a decode threshold number of encoded data slices of the set of encoded data slices is needed to rebuild a missing or corrupt encoded data slice of the set of encoded data slices. The method further includes determining, for an encoded data slice, whether an integrity check value substantially matches a known integrity check value. When the integrity check value does not substantially match the known integrity check value, the method further rebuilding the encoded data slice based on the decode threshold number of encoded data slices and storing the rebuilt encoded data slice in the storage units.

Claims (57)

1. A method for execution by one or more computing devices of a storage network, the method comprises:

executing a read operation to reconstruct data from a decode threshold number of encoded data slices of a set of encoded data slices that is stored in storage units of the storage network, wherein the data was encoded in accordance with an error coding function to produce the set of encoded data slices;

during the executing the read operation:

determining an encoded data slice not within the decode threshold number of encoded data slices has an integrity check value that does not substantially match a known integrity check value for the encoded data slice; and

rebuilding the encoded data slice based on the decode threshold number of encoded data slices.

2. The method of claim 1 further comprises:

determining a revision error for a second encoded data slice of the set of encoded data slices; and

rebuilding the second encoded data slice based on the decode threshold number of encoded data slices.

3. The method of claim 1 further comprises:

determining an expected read response to a read request associated with a second encoded data slice of the set of encoded data slices was not received; and

rebuilding the second encoded data slice based on the decode threshold number of encoded data slices.

4. The method of claim 1 further comprises:

determining a second encoded data slice of the set of encoded data slices is corrupted; and

rebuilding the second encoded data slice based on the decode threshold number of encoded data slices.

5. The method of claim 1 further comprises:

determining a second encoded data slice of the set of encoded data slices is flagged in a rebuilding list; and

rebuilding the second encoded data slice based on the decode threshold number of encoded data slices.

6. The method of claim 1 further comprises:

determining a second encoded data slice of the set of encoded data slices as being previously identified during a rebuilding process; and

rebuilding the second encoded data slice based on the decode threshold number of encoded data slices.

7. The method of claim 1 further comprises:

error decoding at least the decode threshold number of encoded data slices to produce the reconstructed data; and

determining to temporarily keep the reconstructed data until an expiration of a time period.

8. The method of claim 7 further comprises:

receiving a read request for the set of encoded data slices; and

determining to use the reconstructed data in executing the read request.

9. The method of claim 1 , wherein the set of encoded data slices includes a total width number, and wherein the decode threshold number is less than the total width number.

10. A computing device of a storage network comprises:

an interface;

memory; and

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

execute a read operation to reconstruct data from a decode threshold number of encoded data slices of a set of encoded data slices that is stored in storage units of the storage network, wherein the data was encoded in accordance with an error coding function to produce the set of encoded data slices;

during the executing the read operation:

determine an encoded data slice not within the decode threshold number of encoded data slices has an integrity check value that does not substantially match a known integrity check value for the encoded data slice; and

rebuild the encoded data slice based on the decode threshold number of encoded data slices.

11. The computing device of claim 10 , wherein the processing module is further operable to:

determine a revision error for a second encoded data slice of the set of encoded data slices; and

rebuild the second encoded data slice based on the decode threshold number of encoded data slices.

12. The computing device of claim 10 , wherein the processing module is further operable to:

determine an expected read response to a read request associated with a second encoded data slice of the set of encoded data slices was not received; and

rebuild the second encoded data slice based on the decode threshold number of encoded data slices.

13. The computing device of claim 10 , wherein the processing module is further operable to:

determine a second encoded data slice of the set of encoded data slices is corrupted; and

rebuild the second encoded data slice based on the decode threshold number of encoded data slices.

14. The computing device of claim 10 , wherein the processing module is further operable to:

determine a second encoded data slice of the set of encoded data slices is flagged in a rebuilding list; and

rebuild the second encoded data slice based on the decode threshold number of encoded data slices.

15. The computing device of claim 10 , wherein the processing module is further operable to:

determine a second encoded data slice of the set of encoded data slices as being previously identified during a rebuilding process; and

rebuild the second encoded data slice based on the decode threshold number of encoded data slices.

16. The computing device of claim 10 , wherein the processing module is further operable to:

error decode at least the decode threshold number of encoded data slices to produce the reconstructed data; and

determine to temporarily keep the reconstructed data until an expiration of a time period.

17. The computing device of claim 16 , wherein the processing module is further operable to:

receive a read request for the set of encoded data slices; and

determine to use the reconstructed data in executing the read request.

18. The computing device of claim 10 , wherein the set of encoded data slices includes a total width number, and wherein the decode threshold number is less than the total width number.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2020
From: TRICHARDT, BRENNAN JAMES; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 054628/0956 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2020
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 054717/0434 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 054717/0493 →