IP Library Granted Patent US 11,194,662
Granted Patent B2
US 11,194,662 · App. 16/390,530 · Granted Dec 7, 2021

Digest listing decomposition

Inventors: Sebastien Vas (Sunnyvale, CA); Zachary J. Mark (Chicago, IL); Jason K. Resch (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/1092G06F11/0727G06F11/141G06F11/167G06F16/13H04L9/3242H04L9/3247H04L9/3263H04L9/3271H04L63/06H04L63/12H04L67/06H04W12/041H04W12/0431H04W12/35G06F16/137G06F21/31G06F21/6209G06F2211/1028H04L63/0428H04L67/1097H04L2209/043H04L2209/30H04L2209/34H04L2209/56H04L2209/80H04W12/10
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,194,662
App. No.
16/390,530
Granted
Dec 7, 2021
Kind
B2
Abstract

To identify slice errors, a processing module of a computing device in a dispersed storage network (DSN) sends first list digest requests to at least first and second dispersed storage (DS) units. The requests indicates a first range of slice names to include in a first list digest. The processing module receives digest responses from the DS units, and compares the digest responses to determine whether they identify the same slices. If they do not identify the same slices, the processing module sends second list digest requests indicating a sub-range of the first range of slice names to include in second list digests. The sub-range continues to be narrowed until the processing module identifies at least one sub-range of slice names where a slice error exists.

Claims (51)

1. A method for use in a processing module of a computing device included in a storage network, the method comprising:

sending first list digest requests to at least first and second storage units, the first list digest requests indicating a first range of slice identifiers to include in a first list digest;

receiving, in response to the first list digest requests, first and second list digest responses from the first and second storage units;

determining whether the first list digest response compares favorably to the second list digest response; and

in response to an unfavorable determination, sending second list digest requests to the first and second storage units, the second list digest requests indicating a second range of slice identifiers to include in second list digests.

2. The method of claim 1 , further comprising:

continuing to narrow the second range of slice identifiers until the processing module identifies a narrowed second range of slice identifiers where a slice error exists.

3. The method of claim 1 , further comprising;

sending the at least first and second storage units list range request messages;

receiving first and second list range request response messages from the at least first and second DS units; and

identifying a difference between the first and second list range request response messages.

4. The method of claim 3 , wherein the list range request messages sent to the first and second storage units include a start slice identifier, an end slice identifier, and a maximum response count.

5. The method of claim 3 , wherein the first and second list range response messages include the following for each slice identifier: a slice revision count, a slice revision and slice length for each slice revision.

6. The method of claim 1 , further comprising:

determining a test range of slice identifiers to test for slice errors, wherein the test range of slice identifiers to test for slice errors corresponds to the first range of slice names.

7. The method of claim 1 , wherein the at least first and second DS units are included in a common storage unit storage set.

8. A method for use in a processing module of a computing device included in a storage network, the method comprising:

sending first list digest requests to at least first and second dispersed storage storage units, the first list digest requests indicating a first range of slice identifiers to include in a first list digest;

receiving, in response to the first list digest requests, first and second list digest responses from the first and second storage units;

determining whether the first list digest response compares favorably to the second list digest response; and

in response to an unfavorable determination, sending second list digest requests to the first and second storage units, the second list digest requests indicating a second range of slice identifiers to include in second list digests.

9. The method of claim 8 , wherein the method further comprises:

continuing to narrow the second range of slice identifiers until the processing module identifies a narrowed second range of slice identifiers where a slice error exists.

10. The method of claim 8 , wherein the method further comprises:

sending the at least first and second storage units a list range request message;

receive first and second list range request response messages from the at least first and second storage units; and

identifying a difference between the first and second list range request response messages.

11. The method of claim 10 , wherein the method further comprises:

including a start slice identifier, an end slice identifier, and a maximum response count in the list range request messages sent to the first and second storage units.

12. The method of claim 10 , wherein the at least first and second storage units are further configured to:

include the following in the first and second list range response messages for each slice name: a slice revision count, a slice revision and slice length for each slice revision.

13. The method of claim 8 , wherein the at least first and second storage units are included in a common storage unit storage set.

14. A storage processing unit comprising:

an interface;

a memory; and

a processing module operable to:

send first list digest requests to at least first and second storage units, the first list digest requests indicating a first range of slice identifiers to include in a first list digest;

receive, in response to the first list digest requests, first and second list digest responses from the first and second storage units;

determine whether the first list digest response compares favorably to the second list digest response; and

in response to an unfavorable determination, send second list digest requests to the first and second storage units, the second list digest requests indicating a second range of slice identifiers to include in second list digests.

15. The storage processing unit of claim 14 , wherein the processing module is further operable to:

continuing to narrow the second range of slice identifiers until the processing module identifies a narrowed second range of slice identifiers where a slice error exists.

16. The storage processing unit of claim 14 , wherein the processing module is further operable to:

send the at least first and second storage units list range request messages;

receive first and second list range request response messages from the at least first and second storage units; and

identify a difference between the first and second list range request response messages.

17. The storage processing unit of claim 15 , wherein the list range request messages sent to a first and second storage units include a start slice identifier, an end slice identifier, and a maximum response count.

18. The storage processing unit of claim 15 , wherein first and second list range response messages include the following for each slice identifier: a slice revision count, a slice revision and slice length for each slice revision.

19. The storage processing unit of claim 14 , further comprising:

determining a test range of slice identifiers to test for slice errors, wherein the test range of slice identifiers to test for slice errors corresponds to the first range of slice identifiers.

20. The storage processing unit of claim 14 , wherein the at least first and second DS units are included in a common storage unit storage set.

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 DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2019
From: VAS, SEBASTIEN; MARK, ZACHARY J.; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 048957/0025 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2019
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 048957/0185 →