IP Library Granted Patent US 8,761,167
Granted Patent B2
US 8,761,167 · App. 13/080,312 · Granted Jun 24, 2014

List range 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,761,167
App. No.
13/080,312
Granted
Jun 24, 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 range 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 and generating remaining fields of the protocol header.

Claims (134)

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

generating, by the processing module, a payload section of a dispersed storage network (DSN) frame regarding the list range 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, by the processing module, 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 range request operation, wherein the list range request operation requests a list of slices names corresponding to a plurality of stored encoded data slices associated with slice names within the slice name range;

generating remaining fields of the protocol header; and

sending, by the computing device, the DSN frame to a storage unit of the DSN, where the DSN frame is requesting that the storage unit respond with a list of slice names that correspond to encoded data slices that are stored by storage unit and that have a slice name between the start slice name and the end slice name.

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 range request operation; and

generating a protocol class version field for the list range 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 of a range of slice names of one or more possible ranges of slice names;

establishing the start slice name as an intermediate slice name in the range of slice names of the one or more possible ranges of slice names; and

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

generating the end slice name by one of:

establishing the end slice name as a last slice name in the range of slice names of the one or more possible ranges of slice names;

establishing the end slice name as a second intermediate slice name in the range of slice names of the one or more possible ranges of slice names; and

determining the end slice name based on the response to the previous list range 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 range of slice names of the one or more possible ranges 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 range 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 for the payload length field 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 range request operation, wherein the plurality of DSN frames includes the DSN frame.

7. A method for a processing module of a computing device to execute a response to a list range request, the method comprises:

generating, by the processing module, a payload of a dispersed storage network (DSN) frame regarding a range of slice names indicated in the list range request, wherein the payload includes:

generating a last slice name field to include a last slice name being included in the response; and

generating, for each found slice name in the range of slices names, a slice information section that includes:

a slice name field to include a slice name of one of the found slice names;

a slice revision count field to indicate a number of revisions of an encoded data slice corresponding to the slice name; and

a slice revision numbering field to individually identify the revisions of the encoded data slice; and

generating, by the processing module, 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 last slice name field summed with the length of the slice information sections of the found slice names;

generating remaining fields of the protocol header; and

sending, by the computing device, the DSN frame to another computing device of the DSN, where the DSN frame includes a list of slice names that correspond to encoded data slices that are stored by computing device and that have a slice name in the range of slice names.

8. The method of claim 7 further comprises:

outputting the DSN frame in order of the protocol header, the last slice name field, and the one or more slice information sections and, within the slice information section, in an order of the slice revision count field, and, for each of the revisions of the slice name, the slice revision numbering field.

9. The method of claim 7 , wherein the generating the one or more slice information sections further comprises:

determining the one or more slice information sections by at least one of:

determining a number of slice names in a slice name range associated with a list range request;

determining a number of slice names based on a DSN performance indicator; and

determining a number of slice names associated with the list range response operation.

10. The method of claim 7 further comprises:

determining the last slice name as a slice name associated with a last slice information section of the one or more slice information sections.

11. 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 range response operation;

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

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

12. 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 range request message is not authorized; and

discarding the DSN frame when the error condition is established.

13. The method of claim 7 , wherein generating the slice information section further comprises:

generating a slice length field for each of the revisions of the slice name to include a length of a corresponding encoded data slice.

14. A computer comprises:

an interface;

a memory; and

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

generate a payload section of a dispersed storage network (DSN) frame regarding a list range request 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 range request operation, wherein the list range request operation requests a list of slices names corresponding to a plurality of stored encoded data slices associated with slice names within the slice name range;

generating remaining fields of the protocol header; and

send, via the interface, the DSN frame to a storage unit of the DSN, where the DSN frame is requesting that the storage unit respond with a list of slice names that correspond to encoded data slices that are stored by storage unit and that have a slice name between the start slice name and the end slice name.

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 remaining fields of the protocol header by at least one of:

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

generating a protocol class version field for the list range 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 of a range of slice names of one or more possible ranges of slice names;

establishing the start slice name as an intermediate slice name in the range of slice names of the one or more possible ranges of slice names; and

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

generate the end slice name by one of:

establishing the end slice name as a last slice name in the range of slice names of the one or more possible ranges of slice names;

establishing the end slice name as a second intermediate slice name in the range of slice names of the one or more possible ranges of slice names; and

determining the end slice name based on the response to the previous list range 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 range of slice names of the one or more possible ranges 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 range 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 for the payload length field 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 range 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 to the memory, where the processing module is operable to:

generate a payload of a dispersed storage network (DSN) frame regarding a range of slice names indicated in a list range request, wherein the payload includes:

a last slice name field to include a last slice name being included in the response; and

for each found slice name in the range of slices names, a slice information section that includes:

a slice name field to include a slice name of one of the found slice names;

a slice revision count field to indicate a number of revisions of an encoded data slice corresponding to the slice name; and

a slice revision numbering field to individually identify the revisions of the encoded data slice; 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 last slice name field summed with the length of the slice information sections of the found slice names;

generating remaining fields of the protocol header; and

send, via the interface, the DSN frame to another computing device of the DSN, where the DSN frame includes a list of slice names that correspond to encoded data slices that are stored by computing device and that have a slice name in the range of slice names.

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 last slice name field, and the one or more slice information sections and, within the slice information section, in an order of the slice revision count field, and, for each of the revisions of the slice name, the slice revision numbering field.

22. The computer of claim 20 , wherein the processing module further functions to generate the one or more slice information sections by:

determining the one or more slice information sections by at least one of:

determining a number of slice names in a slice name range associated with a list range request;

determining a number of slice names based on a DSN performance indicator; and

determining a number of slice names associated with the list range response operation.

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

determine the last slice name as a slice name associated with a last slice information section of the one or more slice information sections.

24. 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 range response operation;

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

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

25. 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 range request message is not authorized; and

discard the DSN frame when the error condition is established.

26. The computer of claim 20 , wherein the processing module further functions to generate the slice information section by:

generating a slice length field for each of the revisions of the slice name to include a length of a corresponding encoded data slice.

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 Apr 25, 2011
From: BAPTIST, ANDREW; LEGGETTE, WESLEY; RESCH, JASON K.; MARK, ZACHARY J.; VOLVOVSKI, ILYA; DHUSE, GREG; MOTWANI, MANISH
To: CLEVERSAFE, INC.
Reel/Frame 026177/0754 →