IP Library Granted Patent US 12,061,580
Granted Patent B1
US 12,061,580 · App. 17/226,344 · Granted Aug 13, 2024

End to end verification of data in a storage network

Inventor: Zachary J. Mark (Chicago, IL)
Assignee: Pure Storage, Inc.
G06F16/215G06F16/10G06F16/2365
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,580
App. No.
17/226,344
Granted
Aug 13, 2024
Kind
B1
Abstract

A method for execution by a computing device of a storage unit of a storage network includes receiving a digest list request from a storage network entity regarding integrity data for a set of encoded data slices where the storage unit stores a plurality of encoded data slices of the set of encoded data slices and corresponding integrity data, where the digest list request is for integrity data of the plurality of encoded data slices. The method continues with the storage unit collecting integrity data, transmitting the collected integrity data to the storage network entity. The method continues with the storage unit receiving an indication that an inconsistency exists in the collected integrity data as compared to integrity data received from one or more other storage units storing a second plurality of encoded data slices of the set of encoded data slices.

Claims (41)

1. A method for execution by a computing device of a storage unit of a storage network, the method comprises:

receiving a digest list request from a storage network entity, wherein the digest list request is regarding integrity data for a set of encoded data slices, wherein a data object is dispersed storage error encoded to produce the set of encoded data slices, wherein the storage unit stores a plurality of encoded data slices of the set of encoded data slices and corresponding integrity data, and wherein the digest list request includes a request to the storage unit to respond with integrity data of the plurality of encoded data slices of the set of encoded data slices;

collecting, in response to the digest list request, integrity data regarding the plurality of encoded data slices to produce collected integrity data;

transmitting the collected integrity data to the storage network entity; and

receiving, from the storage network entity, an indication that an inconsistency exists in the collected integrity data as compared to integrity data received from one or more other storage units storing a second plurality of encoded data slices of the set of encoded data slices, wherein the inconsistency has been determined by comparing the collected integrity data to integrity data collected from the one or more other storage units.

2. The method of claim 1 , wherein the digest list request includes a request to obtain integrity data for encoded data slices within an address range.

3. The method of claim 1 , wherein the digest list request includes a request to obtain metadata for encoded data slices within an address range.

4. The method of claim 1 , wherein the collecting integrity data regarding the plurality of encoded data slices comprises:

calculating a digest for the digest list request over an error scanning range to produce the collected integrity data.

5. The method of claim 4 , wherein the error scanning range includes a starting slice name through an ending slice name, wherein the ending slice name is a count added to the starting slice name.

6. The method of claim 1 , wherein the collected integrity data includes a get digest list request response.

7. The method of claim 1 , wherein the digest list request includes a starting slice name and a count of slice names to include in the digest.

8. The method of claim 1 , wherein the integrity data includes a cyclic redundancy check (CRC), hash value.

9. The method of claim 1 , further comprising:

in response to the indication that an inconsistency exists in the integrity data, update at least one encoded data slice of the plurality of encoded data slices to resolve the inconsistency.

10. A storage unit of a storage network comprises:

a network interface;

a computer processing unit including:

a memory; and

one or more processing modules, wherein the memory includes instructions for causing the computer processing unit to:

receive a digest list request from a storage network entity, wherein the digest list request is regarding integrity data for a set of encoded data slices, wherein a data object is dispersed storage error encoded to produce the set of encoded data slices, wherein the storage unit stores a plurality of encoded data slices of the set of encoded data slices and corresponding integrity data, and wherein the digest list request includes a request to the storage unit to respond with integrity data of the plurality of encoded data slices of the set of encoded data slices;

collect, in response to the digest list request, integrity data regarding the plurality of encoded data slices to produce collected integrity data;

transmit the collected integrity data to the storage network entity;

receive, from the storage network entity, an indication that an inconsistency exists in the collected integrity data as compared to integrity data received from one or more other storage units storing a second plurality of encoded data slices of the set of encoded data slices, wherein the inconsistency has been determined by comparing the collected integrity data to integrity data collected from the one or more other storage units; and

in response to the indication that an inconsistency exists in the integrity data, update at least one encoded data slice of the plurality of encoded data slices to resolve the inconsistency.

11. The storage network of claim 10 , wherein the digest list request includes a request to obtain integrity data for encoded data slices within an address range.

12. The storage network of claim 10 , wherein the digest list request includes a request to obtain metadata for encoded data slices within an address range.

13. The storage network of claim 10 , wherein the collecting integrity data regarding the plurality of encoded data slices comprises:

calculating a digest for the digest list request over an error scanning range to produce the collected integrity data.

14. The storage network of claim 13 , wherein the error scanning range includes a starting slice name through an ending slice name, wherein the ending slice name is a count added to the starting slice name.

15. The storage network of claim 10 , wherein the collected integrity data includes a get digest list request response.

16. The storage network of claim 10 , wherein the digest list request includes a starting slice name and a count of slice names to include in the digest.

17. The storage network of claim 10 , wherein the integrity data includes a cyclic redundancy check (CRC), hash value.

18. The storage network of claim 10 , wherein the digest list request includes a request to not send the plurality of encoded data slices.

19. A method for execution by a computing device of a storage unit of a storage network, the method comprises:

receiving a digest list request from a storage network entity, wherein the digest list request is regarding storage verification data for a set of encoded data slices, wherein a data object is dispersed storage error encoded to produce the set of encoded data slices, wherein the storage unit stores a plurality of encoded data slices of the set of encoded data slices and corresponding storage verification data, and wherein the digest list request includes a request to respond with storage verification data of the plurality of encoded data slices of the set of encoded data slices;

collecting, in response to the digest list request, storage verification data regarding the plurality of encoded data slices to produce collected storage verification data;

transmitting the collected storage verification data to the storage network entity; and

receiving, from the storage network entity, an indication that an inconsistency exists in the collected storage verification data as compared to storage verification data received from one or more other storage units storing a second plurality of encoded data slices of the set of encoded data slices, wherein the inconsistency has been determined by comparing the collected storage verification data to storage verification data collected from the one or more other storage units.

20. The method of claim 19 , further comprising:

in response to the indication that an inconsistency exists in the storage verification data, updating at least one encoded data slice of the plurality of encoded data slices to resolve the inconsistency.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2021
From: MARK, ZACHARY J.
To: CLEVERSAFE, INC.
Reel/Frame 055881/0203 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2021
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 055885/0897 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 055886/0001 →
Continuity (4)
Continuation 16359318 · Mar 20, 2019
Continuation 15230113 · Aug 5, 2016
Continuation 12753569 · Apr 2, 2010
Provisional Application 61237650 · Aug 27, 2009