IP Library Granted Patent US 8,681,790
Granted Patent B2
US 8,681,790 · App. 13/080,177 · Granted Mar 25, 2014

List digest operation dispersed storage network frame

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 8,681,790
App. No.
13/080,177
Granted
Mar 25, 2014
Kind
B2
Abstract

A method begins by a processing module generating a payload section of a dispersed storage network (DSN) frame regarding a list digest request operation by generating a start slice name field of the payload section to include a start slice name of a slice name range, generating an end slice name field of the payload section to include an end slice name of the slice name range, and generating a maximum response count field of the payload section to include a maximum slice name response count. The method continues with the processing module generating a protocol header of the DSN frame by generating a payload length field of the protocol header to include a payload length that represents a length of the payload section, generating an operation code field to indicate the list digest request operation, and generating remaining fields of the protocol header.

Claims (150)

1. A method for a processing module of a computing device to perform a list digest request operation, the method comprises:

generating a payload section of a dispersed storage network (DSN) frame regarding the list digest request operation by:

generating a start slice name field of the payload section to include a start slice name of a slice name range;

generating an end slice name field of the payload section to include an end slice name of the slice name range; and

generating a maximum response count field of the payload section to include a maximum slice name response count; and

generating a protocol header of the DSN frame by:

generating a payload length field of the protocol header to include a payload length that represents a length of the payload section;

generating an operation code field to indicate the list digest request operation, wherein the list digest request operation requests a representation of slice names in the slice name range; and

generating remaining fields of the protocol header.

2. The method of claim 1 further comprises:

outputting the DSN frame in order of the protocol header, the start slice name field, the end slice name field, and the maximum response count field.

3. The method of claim 1 , wherein generating remaining fields of the protocol header comprises at least one of:

generating a protocol class field to indicate a protocol class for the list digest request operation; and

generating a protocol class version field for the list digest request operation.

4. The method of claim 1 further comprises:

generating the start slice name by one of:

establishing the start slice name as a first slice name in a spectrum of slice names;

establishing the start slice name as an intermediate slice name in the spectrum of slice names; and

determining the start slice name based on a response to a previous list digest request operation; and

generating the end slice name by one of:

establishing the end slice name as the last slice name in the spectrum of slice names;

establishing the end slice name as a second intermediate slice name in the spectrum of slice names; and

determining the end slice name based on the response to the previous list digest request operation; and

generating the maximum response count by at least one of:

determining the maximum response count based on a number of slice names in the spectrum of slice names;

determining the maximum response count based on a DSN performance indicator; and

determining the maximum response count based on the response to the previous list digest request operation.

5. The method of claim 1 further comprises:

determining a length of the start slice name field;

determining a length of the end slice name field;

determining a length of the maximum response count field; and

generating the payload length based on the length of the start slice name field, the length of the end slice name field, and the length of the maximum response count field.

6. The method of claim 1 further comprises:

generating a plurality of DSN frames regarding the list digest request operation, wherein the plurality of DSN frames includes the DSN frame.

7. A method for a processing module of a computing device to perform a list digest response operation, the method comprises:

generating a payload of a dispersed storage network (DSN) frame regarding one or more slice names of the list digest response operation by:

generating a digest length field to include a length of a digest, wherein the digest includes a representation of slice names in a slice name range;

generating a digest field to include the digest;

generating a last slice name field to include a last slice name of the slice name range; and

generating a slice count field to indicate a number of slice names of the list digest response operation; and

generating a protocol header of the DSN frame by:

generating a payload length field of the protocol header to include a payload length that represents a sum of a length of the digest length field, the digest field, the last slice name field, and the slice count field; and

generating remaining fields of the protocol header.

8. The method of claim 7 further comprises:

outputting the DSN frame in order of the protocol header, the digest length field, the digest field, the last slice name field, and the slice count field.

9. The method of claim 7 further comprises:

generating the digest by:

determining the slice name range; and

generating the digest as a hash function of at least a portion of a slice name/revision list associated with at least some of a plurality of slices names within the slice name range; and

generating the last slice name by one of:

selecting an end slice name of the slice name range; and

using a final slice name as indicated in a list digest request DSN frame; and

generating the number of slice names of the list digest response operation by at least one of:

determining the number based on the plurality of slices names within the slice name range; and

determining the number based on visible encoded data slices associated with at least some of the plurality of slice names.

10. The method of claim 9 , wherein the determining the slice name range based on at least one of:

a start slice name of a list digest request;

an end slice name of the list digest request;

a last slice name of a list digest response; and

a DSN performance indicator.

11. The method of claim 9 , wherein, for a slice name of the plurality of slices names, the slice name/revision list comprises at least one of:

a slice name of the one or more slice names;

a slice revision count indicating a number of revisions of the slice name;

one or more slice revision numbers for each of the revisions of the slice name; and

one or more slice length indicators corresponding to each of the revisions of the slice name to include a length of a corresponding encoded data slice.

12. The method of claim 7 , wherein generating remaining fields of the protocol header comprises at least one of:

generating an operation code field to indicate the list digest response operation;

generating a protocol class field to indicate a protocol class for the list digest response operation; and

generating a protocol class version field for the list digest response operation.

13. The method of claim 7 further comprises:

establishing an error condition based on one or more of: the one or more slice names being associated with a locked encoded data slice state, the one or more slice names are associated with one or more encoded data slices that are not locally stored, and a list digest message is not authorized; and

discarding the DSN frame when the error condition is established.

14. A computer comprises:

an interface;

a memory; and

a processing module operably coupled to the interface and the memory, wherein the processing module is operable to:

generate a payload section of a dispersed storage network (DSN) frame regarding a list digest request operation by:

generating a start slice name field of the payload section to include a start slice name of a slice name range;

generating an end slice name field of the payload section to include an end slice name of the slice name range; and

generating a maximum response count field of the payload section to include a maximum slice name response count; and

generate a protocol header of the DSN frame by:

generating a payload length field of the protocol header to include a payload length that represents a length of the payload section;

generating an operation code field to indicate the list digest request operation, wherein the list digest request operation requests a representation of slice names in the slice name range; and

generating remaining fields of the protocol header.

15. The computer of claim 14 , wherein the processing module further functions to:

output, via the interface, the DSN frame in order of the protocol header, the start slice name field, the end slice name field, and the maximum response count field.

16. The computer of claim 14 , wherein the processing module functions to generate the remaining fields of the protocol header by at least one of:

generating a protocol class field to indicate a protocol class for the list digest request operation; and

generating a protocol class version field for the list digest request operation.

17. The computer of claim 14 , wherein the processing module further functions to:

generate the start slice name by one of:

establishing the start slice name as a first slice name in a spectrum of slice names;

establishing the start slice name as an intermediate slice name in the spectrum of slice names; and

determining the start slice name based on a response to a previous list digest request operation; and

generate the end slice name by one of:

establishing the end slice name as the last slice name in the spectrum of slice names;

establishing the end slice name as a second intermediate slice name in the spectrum of slice names; and

determining the end slice name based on the response to the previous list digest request operation; and

generate the maximum response count by at least one of:

determining the maximum response count based on a number of slice names in the spectrum of slice names;

determining the maximum response count based on a DSN performance indicator; and

determining the maximum response count based on the response to the previous list digest request operation.

18. The computer of claim 14 , wherein the processing module further functions to:

determine a length of the start slice name field;

determine a length of the end slice name field;

determine a length of the maximum response count field; and

generate the payload length based on the length of the start slice name field, the length of the end slice name field, and the length of the maximum response count field.

19. The computer of claim 14 , wherein the processing module further functions to:

generate a plurality of DSN frames regarding the list digest request operation, wherein the plurality of DSN frames includes the DSN frame.

20. A computer comprises:

an interface;

a memory; and

a processing module operably coupled to the interface and the memory, wherein the processing module is operable to:

generate a payload of a dispersed storage network (DSN) frame regarding one or more slice names of a list digest response operation by:

generating a digest length field to include a length of a digest, wherein the digest includes a representation of slice names in a slice name range;

generating a digest field to include the digest;

generating a last slice name field to include a last slice name of the slice name range; and

generating a slice count field to indicate a number of slice names of the list digest response operation; and

generate a protocol header of the DSN frame by:

generating a payload length field of the protocol header to include a payload length that represents a sum of a length of the digest length field, the digest field, the last slice name field, and the slice count field; and

generating remaining fields of the protocol header.

21. The computer of claim 20 , wherein the processing module further functions to:

output, via the interface, the DSN frame in order of the protocol header, the digest length field, the digest field, the last slice name field, and the slice count field.

22. The computer of claim 20 , wherein the processing module further functions to:

generate the digest by:

determining the slice name range; and

generating the digest as a hash function of at least a portion of a slice name/revision list associated with at least some of a plurality of slices names within the slice name range; and

generate the last slice name by one of:

selecting an end slice name of the slice name range; and

using a final slice name as indicated in a list digest request DSN frame; and

generate the number of slice names of the list digest response operation by at least one of:

determining the number based on the plurality of slices names within the slice name range; and

determining the number based on visible encoded data slices associated with at least some of the plurality of slice names.

23. The computer of claim 22 , wherein the processing module determines the slice name range based on at least one of:

a start slice name of a list digest request;

an end slice name of the list digest request;

a last slice name of a list digest response; and

a DSN performance indicator.

24. The computer of claim 22 , wherein, for a slice name of the plurality of slices names, the slice name/revision list comprises at least one of:

a slice name of the one or more slice names;

a slice revision count indicating a number of revisions of the slice name;

one or more slice revision numbers for each of the revisions of the slice name; and

one or more slice length indicators corresponding to each of the revisions of the slice name to include a length of a corresponding encoded data slice.

25. The computer of claim 20 , wherein the processing module functions to generate the remaining fields of the protocol header by at least one of:

generating an operation code field to indicate the list digest response operation;

generating a protocol class field to indicate a protocol class for the list digest response operation; and

generating a protocol class version field for the list digest response operation.

26. The computer of claim 20 , wherein the processing module further functions to:

establish an error condition based on one or more of: the one or more slice names being associated with a locked encoded data slice state, the one or more slice names are associated with one or more encoded data slices that are not locally stored, and a list digest message is not authorized; and

discard the DSN frame when the error condition is established.

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 Sep 20, 2011
From: MARK, ZACHARY J.; VOLVOVSKI, ILYA
To: CLEVERSAFE, INC.
Reel/Frame 026934/0980 →