# US 2014/0207899 A1 · List digest operation dispersed storage network frame

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0207899 A1
- Document ID: US20140207899A1
- Status: Published application
- Kind: A1
- Application number: 14/223,138
- Filed: 2014-03-24
- Published: 2014-07-24
- Earliest claimed: 2010-04-26
- Assignees: Cleversafe, Inc.
- Applicants: Cleversafe, Inc.
- Inventors: Zachary J. Mark; Ilya Volvovski
- Web page: https://patentgrep.com/patent/US20140207899A1

## CPC

- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/064: {Management of blocks}
- G06F 3/0644: {Management of space entities, e.g. partitions, extents, pools}
- G06F 3/065: {Replication mechanisms}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 11/1076: {Parity data used in redundant arrays of independent storages, e.g. in RAID systems}
- G06F 15/167: using a common memory, e.g. mailbox
- H04L 69/22: Parsing or analysis of headers
- H04L 69/26: {Special purpose or proprietary protocols or architectures (network applications for proprietary or special purpose networking environments H04L67/12)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method begins generating a plurality of list digest request frames. Each list digest request frames includes a payload section and a protocol header. The payload section includes a start slice name field, an end slice name, and a response count field. The protocol header includes a payload length field and an operation code field to indicate the list digest request operation. The method continues by outputting the list digest request frames to storage units of a dispersed storage network.

## Claims

### Claim 1

A method for a processing module of a computing device to perform a list digest request operation, the method comprises:
generating a plurality of list digest request frames, wherein each of the plurality of list digest request frames includes:
a payload section that includes:
a start slice name field to include a corresponding one of a set of start slice names of a corresponding one of a set of slice name ranges;
an end slice name field to include corresponding one of a set of end slice names of the corresponding one of a set of slice name ranges; and
a response count field to include a slice name response count; and
a protocol header that includes:
a payload length field to include a payload length that represents a length of the payload section; and
an operation code field to indicate the list digest request operation, wherein the list digest request operation requests a representation of slice names in each of the corresponding ones of a set of slice name ranges; and
outputting the plurality of list digest request frames to storage units of a dispersed storage network.

### Claim 2 (depends on 1)

The method of claim 1, wherein the protocol header further comprises:
a protocol class field to indicate a protocol class for the list digest request operation; and
a protocol class version field for the list digest request operation.

### Claim 3 (depends on 1)

The method of claim 1 further comprises:
determining each of the set of slice name ranges based on common attributes of slices names, wherein a data segment is encoded into a set of encoded data slices having a corresponding set of slices names, wherein each slices names of the corresponding set of slice names includes common attributes regarding the data segment.

### Claim 4 (depends on 1)

The method of claim 1 further comprises:
for a slice name range of the set of slice name ranges:
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.

### Claim 5 (depends on 1)

The method of claim 1, wherein the response count field comprises:
a maximum response count field to indicate a maximum response count that is determined 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.

### Claim 6 (depends on 1)

The method of claim 1 further comprises:
receiving list digest responses from at least some of the storage units, wherein one of the list digest responses includes:
a response payload that includes:
a digest response length field to include a length of a digest, wherein the digest includes a representation of slice names of one of the sets of slice name ranges that are stored;
a digest field to include the digest;
a response last slice name field to include a last slice name of the digest; and
a slice count field to indicate a number of slice names in the digest; and
a response protocol header that includes:
a response payload length field to include a length of the response payload; and
a response operation field to include a list digest response operation.

### Claim 7

A computing device 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 plurality of list digest request frames, wherein each of the plurality of list digest request frames includes:
a payload section that includes:
a start slice name field to include a corresponding one of a set of start slice names of a corresponding one of a set of slice name ranges;
an end slice name field to include corresponding one of a set of end slice names of the corresponding one of a set of slice name ranges; and
a response count field to include a slice name response count; and
a protocol header that includes:
a payload length field to include a payload length that represents a length of the payload section; and
an operation code field to indicate the list digest request operation, wherein the list digest request operation requests a representation of slice names in each of the corresponding ones of a set of slice name ranges; and
output, via the interface, the plurality of list digest request frames to storage units of a dispersed storage network.

### Claim 8 (depends on 7)

The computing device of claim 7, wherein the protocol header further comprises:
a protocol class field to indicate a protocol class for the list digest request operation; and
a protocol class version field for the list digest request operation.

### Claim 9 (depends on 7)

The computing device of claim 7, wherein the processing module is further operable to:
determine each of the set of slice name ranges based on common attributes of slices names, wherein a data segment is encoded into a set of encoded data slices having a corresponding set of slices names, wherein each slices names of the corresponding set of slice names includes common attributes regarding the data segment.

### Claim 10 (depends on 7)

The computing device of claim 7, wherein the processing module is further operable to:
for a slice name range of the set of slice name ranges:
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.

### Claim 11 (depends on 7)

The computing device of claim 7, wherein the response count field comprises:
a maximum response count field to indicate a maximum response count that is determined 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.

### Claim 12 (depends on 7)

The computing device of claim 7, wherein the processing module is further operable to:
receive, via the interface, list digest responses from at least some of the storage units, wherein one of the list digest responses includes:
a response payload that includes:
a digest response length field to include a length of a digest, wherein the digest includes a representation of slice names of one of the sets of slice name ranges that are stored;
a digest field to include the digest;
a response last slice name field to include a last slice name of the digest; and
a slice count field to indicate a number of slice names in the digest; and
a response protocol header that includes:
a response payload length field to include a length of the response payload; and
a response operation field to include a list digest response operation.

### Claim 13

A computer readable memory device comprises:
a first memory section that stores operational instructions that, when executed by a processing module of a computing device, causes the processing module to:
generate a plurality of list digest request frames, wherein each of the plurality of list digest request frames includes:
a payload section that includes:
a start slice name field to include a corresponding one of a set of start slice names of a corresponding one of a set of slice name ranges;
an end slice name field to include corresponding one of a set of end slice names of the corresponding one of a set of slice name ranges; and
a response count field to include a slice name response count; and
a protocol header that includes:
a payload length field to include a payload length that represents a length of the payload section; and
an operation code field to indicate the list digest request operation, wherein the list digest request operation requests a representation of slice names in each of the corresponding ones of a set of slice name ranges; and
a second memory section that stores operational instructions that, when executed by the processing module, causes the processing module to:
output, via an interface of the computing device, the plurality of list digest request frames to storage units of a dispersed storage network.

### Claim 14 (depends on 13)

The computer readable memory device of claim 13, wherein the protocol header further comprises:
a protocol class field to indicate a protocol class for the list digest request operation; and
a protocol class version field for the list digest request operation.

### Claim 15 (depends on 13)

The computer readable memory device of claim 13, wherein the first memory section further includes operational instructions that, when executed by the processing module, causes the processing module to:
determine each of the set of slice name ranges based on common attributes of slices names, wherein a data segment is encoded into a set of encoded data slices having a corresponding set of slices names, wherein each slices names of the corresponding set of slice names includes common attributes regarding the data segment.

### Claim 16 (depends on 13)

The computer readable memory device of claim 13, wherein the first memory section further includes operational instructions that, when executed by the processing module, causes the processing module to:
for a slice name range of the set of slice name ranges:
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.

### Claim 17 (depends on 13)

The computer readable memory device of claim 13, wherein the response count field comprises:
a maximum response count field to indicate a maximum response count that is determined 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.

### Claim 18 (depends on 13)

The computer readable memory device of claim 13, wherein the first memory section further includes operational instructions that, when executed by the processing module, causes the processing module to:
receive, via the interface, list digest responses from at least some of the storage units, wherein one of the list digest responses includes:
a response payload that includes:
a digest response length field to include a length of a digest, wherein the digest includes a representation of slice names of one of the sets of slice name ranges that are stored;
a digest field to include the digest;
a response last slice name field to include a last slice name of the digest; and
a slice count field to indicate a number of slice names in the digest; and
a response protocol header that includes:
a response payload length field to include a length of the response payload; and
a response operation field to include a list digest response operation.
