IP Library Granted Patent US 9,235,549
Granted Patent B2
US 9,235,549 · App. 14/312,163 · Granted Jan 12, 2016

List range operation dispersed storage network frame

Inventors: Andrew Baptist (Mt. Pleasant, WI); Wesley Leggette (Chicago, IL); Jason K. Resch (Chicago, IL); Zachary J. Mark (Chicago, IL); Ilya Volvovski (Chicago, IL); Greg Dhuse (Chicago, IL); Manish Motwani (Chicago, IL)
Assignee: International Business Machines Corporation
G06F15/167H04L67/1097H04L69/22H04L69/26
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 9,235,549
App. No.
14/312,163
Granted
Jan 12, 2016
Kind
B2
Abstract

A method begins by generating list range requests. A list range request includes a payload section and a protocol header section. The payload section includes a start slice name field regarding a start slice name of a slice name range; an end slice name field regarding an end slice name of the slice name range; and a maximum response count field regarding a maximum slice name response count. The protocol header includes a payload length field that represents a length of the payload section and an operation code field to indicate the list range request operation. The list range request includes a request to provide a list of slices names corresponding to stored encoded data slices associated with slice names within the slice name range. The method continues by sending the range requests to storage units of the DSN.

Claims (98)

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 plurality of list range requests, wherein a list range request of the plurality of list range requests includes:

a payload section that includes:

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

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

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

a protocol header that includes:

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

an operation code field to indicate the list range request operation, wherein the list range request includes a request to provide a list of slices names corresponding to a plurality of stored encoded data slices associated with slice names within the slice name range; and

sending, by the processing module, the plurality of list range requests to storage units of a dispersed storage network (DSN).

2. The method of claim 1 , wherein the protocol header further comprises at least one of:

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

a protocol class version field for the list range request operation.

3. 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.

4. 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.

5. 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 plurality of list range requests, wherein a list range request of the plurality of list range requests includes:

a payload section that includes:

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

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

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

a protocol header that includes:

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

an operation code field to indicate a list range request operation, wherein the list range request includes a request to provide a list of slices names corresponding to a plurality of stored encoded data slices associated with slice names within the slice name range; and

send the plurality of list range requests to storage units of a dispersed storage network (DSN).

6. The computer of claim 5 , wherein the protocol header further comprises at least one of:

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

a protocol class version field for the list range request operation.

7. The computer of claim 5 , wherein the processing module is further operable 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.

8. The computer of claim 5 , wherein the processing module is further operable 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.

9. A non-transitory computer readable medium comprises:

a first memory section that stores operational instructions that, when executed by a processing module, causes the processing module to:

generate a plurality of list range requests, wherein a list range request of the plurality of list range requests includes:

a payload section that includes:

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

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

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

a protocol header that includes:

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

an operation code field to indicate a list range request operation, wherein the list range request includes a request to provide a list of slices names corresponding to a plurality of stored encoded data slices associated with slice names within the slice name range; and

a second memory section that stores operational instructions that, when executed by the processing module, causes the processing module to:

send the plurality of list range requests to storage units of a dispersed storage network (DSN).

10. The non-transitory computer readable medium of claim 9 , wherein the protocol header further comprises at least one of:

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

a protocol class version field for the list range request operation.

11. The non-transitory computer readable medium of claim 9 , wherein the first memory section further stores operational instructions that, when executed by a processing module, causes the processing module 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.

12. The non-transitory computer readable medium of claim 9 , wherein the first memory section further stores operational instructions that, when executed by a processing module, causes the processing module 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.

Assignments (5)
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 →
Continuity (4)
Continuation 13080312 · Apr 5, 2011
Continuation 13073948 · Mar 28, 2011
Provisional Application 61328000 · Apr 26, 2010
Related Publication 20140301410A1 · Oct 9, 2014