IP Library Granted Patent US 10,922,179
Granted Patent B2
US 10,922,179 · App. 16/426,100 · Granted Feb 16, 2021

Post rebuild verification

Inventors: Jason K. Resch (Chicago, IL); Greg R. Dhuse (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/1092G06F3/067G06F3/0611G06F3/0619G06F9/30029G06F11/1451
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,922,179
App. No.
16/426,100
Granted
Feb 16, 2021
Kind
B2
Abstract

A method for execution by a dispersed storage network (DSN), the method begins by determining a slice name of an encoded data slice to verify, obtaining the encoded data slice and optionally compressing the encoded data slice, determining a dispersed storage (DS) unit of the stored set of DS units to produce a selected DS unit, sending the compressed encoded data slice request message to the selected DS unit, receiving a compressed encoded data slice response message to produce a selected compressed encoded data slice, determining a compressed encoded data slice partial of the encoded data slice, determining whether a sum of compressed encoded data slice partials compares favorably to the selected compressed encoded data slice, indicating a failed test when the processing module determines that the comparison is not favorable and indicating a passed test when the processing module determines that the comparison is favorable.

Claims (55)

1. A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:

determining an encoded data slice to verify;

obtaining the encoded data slice;

determining a dispersed storage (DS) unit of a storage set of DS units to produce a selected DS unit;

sending an encoded data slice request message to each of the storage set of DS units, including the selected DS unit;

receiving encoded data slice response messages to produce a selected encoded data slice;

determining encoded data slice partials of the encoded data slice;

determining whether a sum of the encoded data slice partials compares favorably to the selected encoded data slice wherein encoded data slice partials of the sum of encoded data slice partials includes the encoded data slice partial of the encoded data slice and excludes an encoded data slice partial associated with the selected DS unit;

indicating a failed test when the processing module determines that the comparison is not favorable; and

indicating a passed test when the processing module determines that the comparison is favorable.

2. The method of claim 1 , wherein the obtaining the encoded data slice is based on one or more of: retrieving the encoded data slice from a local memory, receiving the encoded data slice in response to sending a slice request message to a DS unit, or receiving the encoded data slice from a DS processing unit.

3. The method of claim 1 , wherein the obtaining the encoded data slice further includes compressing the encoded data slice to produce a compressed encoded data slice.

4. The method of claim 3 , wherein the compressing is based on one or more of: a compression algorithm identifier (ID), a portion indicator, or a number of bits indicator.

5. The method of claim 3 , wherein the compressing includes selecting one or more of: a portion of the encoded data slice that includes all bits of the encoded data slice, less than all of the bits of the encoded data slice, a random portion of the bits of the encoded data slice, or a predetermined portion of the bits of the encoded data slice.

6. The method of claim 1 , wherein the determining a DS unit of the storage set of DS units to produce a selected DS unit is based on any of: a random pick, a DS unit with a favorable comparison to selection criteria, a DS unit next in a DS unit list, or a DS unit that is not storing the encoded data slice.

7. The method of claim 1 , wherein the favorable comparison to selection criteria is based on one or more of: high trust, high reliability, highly available, or low latency.

8. The method of claim 1 , wherein the determining an encoded data slice partial of the encoded data slice includes partial decoding the encoded data slice to produce a vector utilizing an inverted square encoding matrix multiplied by the encoded data slice, partial encoding the vector to produce an encoded data slice partial utilizing an encoding matrix multiplied by the vector to produce the encoded data slice partial.

9. The method of claim 1 , wherein the encoded data slice response message includes an encoded data slice partial associated with the DS unit of the encoded data slice response.

10. The method of claim 1 , wherein the sum includes finite field math utilizing an XOR logical function.

11. The method of claim 1 , wherein the determining that the comparison is favorable includes when the sum of the encoded data slice partials is substantially the same as the encoded data slice.

12. A computing device of a group of computing devices of a dispersed storage network (DSN), the computing device comprises:

an interface;

a local memory; and

a processing module operably coupled to the interface and the local memory, wherein the processing module functions to:

determine an encoded data slice to verify;

obtain the encoded data slice to produce an encoded data slice;

determine a dispersed storage (DS) unit of a storage set of DS units to produce a selected DS unit;

send an encoded data slice request message to each of the storage set of DS units, including the selected DS unit;

receive encoded data slice response messages to produce a selected encoded data slice;

determine encoded data slice partials of the encoded data slice;

determine whether a sum of the encoded data slice partials compares favorably to the selected encoded data slice wherein encoded data slice partials of the sum of encoded data slice partials includes the encoded data slice partial of the encoded data slice and excludes an encoded data slice partial associated with the selected DS unit;

indicate a failed test when the processing module determines that the comparison is not favorable; and

indicate a passed test when the processing module determines that the comparison is favorable.

13. The computing device of claim 12 , wherein the determine a DS unit of the storage set of DS units to produce a selected DS unit is based on any of: a random pick, a DS unit with a favorable comparison to selection criteria, a DS unit next in a DS unit list, or a DS unit that is not storing the encoded data slice.

14. The computing device of claim 12 , wherein the favorable comparison to selection criteria is based on one or more of: high trust, high reliability, highly available, or low latency.

15. The computing device of claim 12 , wherein the obtaining the encoded data slice further includes compressing the encoded data slice to produce a compressed encoded data slice.

16. The computing device of claim 15 , wherein the determine that the comparison is favorable includes when a sum of compressed encoded data slice partials is substantially the same as the compressed encoded data slice.

17. A dispersed storage network (DSN), the DSN comprises:

a plurality of storage units;

a processing module operably coupled to an interface, local memory and the plurality of storage units, wherein the processing module functions to:

determine an encoded data slice to verify;

obtain the encoded data slice and compressing the encoded data slice to produce a compressed encoded data slice;

determine a storage set of DS units associated with the encoded data slice to verify;

send compressed encoded data slice partial request messages to the storage set of DS units;

receive at least a decode threshold number of compressed encoded data slice partial response messages to produce compressed encoded data slice partials;

determine whether a sum of the compressed encoded data slice partials compares favorably to the compressed encoded data slice; and

when the processing module determines that the comparison is favorable:

determine a DS unit of the storage set of DS units to produce a selected DS unit;

send a compressed encoded data slice request message to the selected DS unit;

receive a compressed encoded data slice response message to produce a selected compressed encoded data slice;

determine a compressed encoded data slice partial of the encoded data slice;

determine whether a sum of compressed encoded data slice partials compares favorably to the selected compressed encoded data slice wherein compressed encoded data slice partials of the sum of compressed encoded data slice partials includes the compressed encoded data slice partial of the encoded data slice and excludes a compressed encoded data slice partial associated with the selected DS unit;

indicate a failed test when the processing module determines that the comparison is not favorable; and

indicate a passed test when the processing module determines that the comparison is favorable.

18. The DSN of claim 17 further comprises repeating testing of a same encoded data slice utilizing other permutations of the selected DS unit.

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 May 30, 2019
From: RESCH, JASON K.; DHUSE, GREG R.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049318/0720 →
Continuity (4)
Continuation In Part 15285582 · Oct 5, 2016
Continuation In Part 13291030 · Nov 7, 2011
Provisional Application 61417873 · Nov 29, 2010
Related Publication 20190278657A1 · Sep 12, 2019