IP Library Granted Patent US 9,141,297
Granted Patent B2
US 9,141,297 · App. 13/890,510 · Granted Sep 22, 2015

Verifying encoded data slice integrity in a dispersed storage network

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 9,141,297
App. No.
13/890,510
Granted
Sep 22, 2015
Kind
B2
Abstract

A method begins by a dispersed storage (DS) processing module of a storage device receiving an encoded data slice of a set of encoded data slices, where the set of encoded data slices has associated therewith a set of integrity values, and where integrity information is generated from the set of integrity values. The method continues with the DS processing module generating an integrity value for the encoded data slice and obtaining at least a portion of the integrity information from another storage device. The method continues with the DS processing module generating a comparative integrity value for the encoded data slice based on the at least a portion of the integrity information and facilitating storage of the encoded data slice in memory of the storage device when the integrity value compares favorably to the comparative integrity value.

Claims (77)

1. A method for execution by a processing module of a storage device, the method comprises:

receiving, from a requesting entity, an encoded data slice of a set of encoded data slices, wherein a data segment is encoded using a dispersed storage error coding function to produce the set of encoded data slices, in which only a threshold number of the set of encoded data slices are needed to reconstruct the data segment, the threshold number being less than all of the set of encoded data slices, wherein a respective encoded data slice of the set of encoded data slices has associated therewith a respective integrity value, in which integrity information is generated from integrity values corresponding to encoded data slices of the set of encoded data slices, and wherein the set of encoded data slices are separated into individual encoded data slices and distributed to a plurality of devices along with the integrity information;

generating, by the processing module, an integrity value for the encoded data slice received from the requesting entity;

obtaining, by the processing module, at least a portion of the integrity information from another storage device that did not provide the received encoded data slice;

generating, by the processing module, a comparative integrity value for the encoded data slice based on the at least a portion of the integrity information obtained from the other storage device; and

facilitating, by the processing module, storage of the encoded data slice in memory of the storage device when the integrity value is same as the comparative integrity value.

2. The method of claim 1 further comprises:

receiving the encoded data slice as part of a rebuilding process, wherein the encoded data slice is a rebuilt encoded data slice corresponding to one of a corrupt encoded data slice of the set of encoded data slices.

3. The method of claim 1 further comprises:

obtaining, via a request, a retrieved integrity value of the encoded data slice from the other storage device, wherein the other storage device produced the retrieved integrity value from the integrity information; and

generating the comparative integrity value by equating the comparative integrity value to the retrieved integrity value.

4. The method of claim 1 further comprises:

obtaining, via a request, the integrity information from the other storage device;

producing a retrieved integrity value from the integrity information; and

generating the comparative integrity value by equating the comparative integrity value to the retrieved integrity value.

5. The method of claim 1 further comprises:

obtaining, by the processing module, a second at least a portion of the integrity information from a second other storage device; and

generating, by the processing module, the comparative integrity value for the encoded data slice based on the at least a portion of the integrity information and the second at least a portion of the integrity information.

6. The method of claim 1 further comprises:

generating an error message when the integrity value is not the same as the comparative integrity value.

7. A method for execution by a processing module of a storage device, the method comprises:

receiving, from a requesting entity, integrity information and an encoded data slice of a set of encoded data slices, wherein a data segment is encoded using a dispersed storage error coding function to produce the set of encoded data slices, in which only a threshold number of the set of encoded data slices are needed to reconstruct the data segment, the threshold number being less than all of the set of encoded data slices, wherein a respective encoded data slice of the set of encoded data slices has associated therewith a respective integrity value, in which the integrity information is generated from integrity values corresponding to encoded data slices of the set of encoded data slices, and wherein the set of encoded data slices are separated into individual encoded data slices and distributed to a plurality of devices along with the integrity information;

obtaining, by the processing module, at least a portion of a copy of the integrity information from another storage device that did not provide the received encoded data slice;

comparing, by the processing module, the at least a portion of the copy of the integrity information with a corresponding at least a portion of the received integrity information to determine if the integrity value from two different locations for the received encoded data slice are same; and

facilitating, by the processing module, storage of the encoded data slice in memory of the storage device when the comparison is the same.

8. The method of claim 7 further comprises:

generating, by the processing module, an integrity value for the encoded data slice;

obtaining, via a request, a retrieved integrity value of the encoded data slice from the other storage device, wherein the other storage device produced the retrieved integrity value from the copy of the integrity information; and

comparing the integrity value as the corresponding at least a portion of the received integrity information with the retrieved integrity value as the at least a portion of the copy of the integrity information.

9. The method of claim 7 further comprises:

obtaining, by the processing module, the copy of the integrity information from the other storage device; and

comparing, by the processing module, the copy of the integrity information with the received integrity information.

10. The method of claim 7 further comprises:

receiving the encoded data slice as part of a rebuilding process, wherein the encoded data slice is a rebuilt encoded data slice corresponding to one of a corrupt encoded data slice of the set of encoded data slices.

11. A dispersed storage (DS) module of a storage device, the DS module comprises:

a first module, when operable within a computing device, causes the computing device to:

receive, from a requesting entity, an encoded data slice of a set of encoded data slices, wherein a data segment is encoded using a dispersed storage error coding function to produce the set of encoded data slices, in which only a threshold number of the set of encoded data slices are needed to reconstruct the data segment, the threshold number being less than all of the set of encoded data slices, wherein a respective encoded data slice of the set of encoded data slices has associated therewith a respective integrity value, in which integrity information is generated from integrity values corresponding to encoded data slices of the set of encoded data slices, and wherein the set of encoded data slices are separated into individual encoded data slices and distributed to a plurality of devices along with the integrity information; and

generate an integrity value for the encoded data slice received from the requesting entity;

a second module, when operable within the computing device, causes the computing device to:

obtain at least a portion of the integrity information from another storage device that did not provide the received encoded data slice; and

generate a comparative integrity value for the encoded data slice based on the at least a portion of the integrity information obtained from the other storage device; and

a third module, when operable within the computing device, causes the computing device to:

facilitate storage of the encoded data slice in memory of the storage device when the integrity value is same as the comparative integrity value.

12. The DS module of claim 11 further comprises:

the first module further functions to receive the encoded data slice as part of a rebuilding process, wherein the encoded data slice is a rebuilt encoded data slice corresponding to one of a corrupt encoded data slice of the set of encoded data slices.

13. The DS module of claim 11 further comprises:

the second module further functions to:

obtain, via a request, a retrieved integrity value of the encoded data slice from the other storage device, wherein the other storage device produced the retrieved integrity value from the integrity information; and

generate the comparative integrity value by equating the comparative integrity value to the retrieved integrity value.

14. The DS module of claim 11 further comprises:

the second module further functions to:

obtain, via a request, the integrity information from the other storage device;

produce a retrieved integrity value from the integrity information; and

generate the comparative integrity value by equating the comparative integrity value to the retrieved integrity value.

15. The DS module of claim 11 further comprises:

the second module further functions to:

obtain a second at least a portion of the integrity information from a second other storage device; and

generate the comparative integrity value for the encoded data slice based on the at least a portion of the integrity information and the second at least a portion of the integrity information.

16. The DS module of claim 11 further comprises:

the third module further functions to generate an error message when the integrity value is not the same as the comparative integrity value.

17. A dispersed storage (DS) module of a storage device, the DS module comprises:

a first module, when operable within a computing device, causes the computing device to:

receive, from a requesting entity, integrity information and an encoded data slice of a set of encoded data slices, wherein a data segment is encoded using a dispersed storage error coding function to produce the set of encoded data slices, in which only a threshold number of the set of encoded data slices are needed to reconstruct the data segment, the threshold number being less than all of the set of encoded data slices, wherein a respective encoded data slice of the set of encoded data slices has associated therewith a respective integrity value, in which the integrity information is generated from integrity values corresponding to encoded data slices of the set of encoded data slices, and wherein the set of encoded data slices are separated into individual encoded data slices and distributed to a plurality of devices along with the integrity information;

a second module, when operable within the computing device, causes the computing device to:

obtain at least a portion of a copy of the integrity information from another storage device that did not provide the received encoded data slice; and

a third module, when operable within the computing device, causes the computing device to:

compare the at least a portion of the copy of the integrity information with a corresponding at least a portion of the received integrity information to determine if the integrity value from two different locations for the received encoded data slice are same; and

facilitate storage of the encoded data slice in memory of the storage device when the comparison is the same.

18. The DS module of claim 17 further comprises:

the first module further functions to generate an integrity value for the encoded data slice;

the second module further functions to obtain, via a request, a retrieved integrity value of the encoded data slice from the other storage device, wherein the other storage device produced the retrieved integrity value from the copy of the integrity information; and

the third module further functions to compare the integrity value as the corresponding at least a portion of the received integrity information with the retrieved integrity value as the at least a portion of the copy of the integrity information.

19. The DS module of claim 17 further comprises:

the second module further functions to obtain the copy of the integrity information from the other storage device; and

the third module further functions to compare the copy of the integrity information with the received integrity information.

20. The DS module of claim 17 further comprises:

the first module further functions to receive the encoded data slice as part of a rebuilding process, wherein the encoded data slice is a rebuilt encoded data slice corresponding to one of a corrupt encoded data slice of the set of encoded data slices.

Assignments (6)
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 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2013
From: RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 030384/0085 →