IP Library Granted Patent US 12,061,797
Granted Patent B1
US 12,061,797 · App. 17/247,434 · Granted Aug 13, 2024

Verifiable rebuilding of an appended encoded data slice

Inventors: Ravi V. Khadiwala (Bartlett, IL); Jason K. Resch (Chicago, IL)
Assignee: Pure Storage, Inc.
G06F3/0619G06F3/0608G06F3/0647G06F3/067G06F3/0689G06F11/167H04L9/40H04L63/123G06F16/00
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 12,061,797
App. No.
17/247,434
Granted
Aug 13, 2024
Kind
B1
Abstract

A method includes rebuilding an appended encoded data slice of a set of appended encoded data slices stored in a set of storage units of a storage network to produce a rebuilt appended encoded data slice, where the appended encoded data slice includes an encoded data slice of a set of encoded data slices and slice integrity check value information, where the slice integrity check value information includes a slice integrity check value for the encoded data slice, and where the encoded data slice is hashed to produce the slice integrity check value. The method further includes generating current slice integrity check value information for the rebuilt appended encoded data slice. The method further includes verifying the current slice integrity check value information corresponds to the slice integrity check value information. When verified, the method includes storing the rebuilt appended encoded data slice.

Claims (37)

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

rebuilding an appended encoded data slice of a set of appended encoded data slices stored in a set of storage units of the storage network to produce a rebuilt appended encoded data slice, wherein the appended encoded data slice includes an encoded data slice of a set of encoded data slices and slice integrity check value information, wherein a data segment of a data object is dispersed error encoded to produce the set of encoded data slices, wherein the slice integrity check value information includes a slice integrity check value for the encoded data slice, and wherein the encoded data slice is hashed to produce the slice integrity check value;

generating current slice integrity check value information for the rebuilt appended encoded data slice;

verifying the current slice integrity check value information corresponds to the slice integrity check value information to produce a trusted rebuilt encoded data slice; and

when the current slice integrity check value information corresponds to the slice integrity check value information, storing the rebuilt appended encoded data slice as the trusted rebuilt encoded data slice.

2. The method of claim 1 , wherein the slice integrity check value information comprises:

an integrity check value list, wherein the integrity check value list includes a width number equal to a number of integrity check values of a set of integrity check values, wherein each encoded data slice of the set of encoded data slices is hashed to produce the set of integrity check values.

3. The method of claim 1 , wherein the slice integrity check value information comprises:

an integrity check value list hash, wherein an integrity check value list is hashed to produce the integrity check value list hash; and

an encoded integrity check value list slice of a set of encoded integrity check value list slices, wherein the integrity check value list is dispersed error encoded to produce the set of encoded integrity check value list slices.

4. The method of claim 1 , wherein the generating the current slice integrity check value information for the rebuilt appended encoded data slice further comprises:

determining whether the slice integrity check value information is an integrity check value list or an integrity check value list hash and an encoded integrity check value list slice.

5. The method of claim 4 further comprises:

when the slice integrity check value information is the integrity check value list:

generating a current integrity check value list, wherein the current integrity check value list includes a width number equal to a number of current integrity check values of a set of current integrity check values, wherein each encoded data slice associated with a decode threshold number of appended encoded data slices of the set of appended encoded data slices and the rebuilt appended encoded data slice is hashed to produce a set of current integrity check values.

6. The method of claim 4 further comprises:

when the slice integrity check value information is the integrity check value list hash and the encoded integrity check value list slice:

generating a current integrity check value list;

hashing the current integrity check value list to produce a current integrity check value list hash; and

dispersed error encoding the current integrity check value list to produce a set of current encoded integrity check value list slices.

7. The method of claim 4 , wherein the determining whether the slice integrity check value information is the integrity check value list or the integrity check value list hash and the encoded integrity check value list slice comprises:

sending a slice integrity check value information inquiry to a processing unit of the storage network that generated the set of appended encoded data slices.

8. The method of claim 4 , wherein the determining whether the slice integrity check value information is the integrity check value list or the integrity check value list hash and the encoded integrity check value list slice comprises:

performing a trusted source lookup.

9. The method of claim 1 , wherein the verifying the current slice integrity check value information corresponds to the slice integrity check value information comprises:

comparing the current slice integrity check value information to the slice integrity check value information.

10. The method of claim 1 , wherein the verifying the current slice integrity check value information corresponds to the slice integrity check value information comprises:

performing a deterministic function on the current slice integrity check value information.

11. The method of claim 1 further comprises:

when the current slice integrity check value information does not correspond to the slice integrity check value information, indicating an authenticity failure of the rebuilding of the appended encoded data slice.

12. The method of claim 1 further comprises:

identifying the appended encoded data slice for rebuilding.

13. The method of claim 1 , wherein the rebuilding further comprises:

obtaining a decode threshold number of appended encoded data slices of the set of appended encoded data slices; and

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

14. The method of claim 1 , wherein the storing the rebuilt appended encoded data slice further comprises:

sending the rebuilt appended encoded data slice that includes a rebuilt encoded data slice and the current slice integrity check value information to a storage unit of the set of storage units.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2020
From: KHADIWALA, RAVI V.; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 054613/0820 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 054693/0808 →
Continuity (3)
Continuation 15660635 · Jul 26, 2017
Continuation In Part 15082887 · Mar 28, 2016
Provisional Application 62168145 · May 29, 2015