COMPRESSING A SLICE NAME LISTING IN A DISPERSED STORAGE NETWORK
A method begins by receiving a list range request for a plurality of slice names within a slice name range. The method continues with identifying slice names of the plurality of slice names within the slice name range. The method continues with determining a representation structure for a list range response. The method continues with generating, in accordance with the representation structure, a first portion of a list range response for a first slice name, where the first portion includes a first representation of the first slice name. The method continues with generating, in accordance with the representation structure, one or more subsequent portions of the list range response for remaining slice names of the slice names, where the one or more subsequent portions includes one or more representations of the remaining slices names. The method continues with sending the list range response to a requesting device.
1 . A method for execution by a storage unit of a dispersed storage network (DSN) comprises:
receiving, from a requesting device, a list range request for a plurality of slice names within a slice name range, wherein the plurality of slice names are associated with a plurality of encoded data slices stored in the storage unit, wherein data is dispersed storage error encoded into pluralities of sets of encoded data slices and stored in storage units of the DSN, wherein the dispersed storage error encoding is in accordance with dispersed data storage parameters, wherein the pluralities of sets of encoded data slices include the plurality of encoded data slices;
identifying slice names of the plurality of slice names within the slice name range;
determining a representation structure for a list range response;
generating, in accordance with the representation structure, a first portion of a list range response for a first slice name of the slice names, wherein the first portion includes a first representation of the first slice name;
generating, in accordance with the representation structure, one or more subsequent portions of the list range response for remaining slice names of the slice names, wherein the one or more subsequent portions includes one or more representations of the remaining slices names; and
sending the list range response to the requesting device.
2 . The method of claim 1 , wherein the first representation includes one of:
the first slice name;
a result based on performing a deterministic function on the first slice name; and
a truncated version of the first slice name.
3 . The method of claim 1 , wherein a representation of the one or more representations includes one of:
an offset from the first slice name;
a result based on a deterministic function applied to the first slice name and a remaining slice name of the remaining slice names;
a result based on a number of slice names within a contiguous range of slice names of the remaining slice names; and
a last slice name of the slice names.
4 . The method of claim 1 , wherein the first portion further includes a slice revision count field, wherein the slice revision count field includes one or more of:
one or more slice revision fields; and
one or more corresponding slice length fields.
5 . The method of claim 1 , wherein the one or more subsequent portions each further include a slice revision count field, wherein the slice revision count field includes one or more of:
one or more slice revision fields; and
one or more corresponding slice length fields.
6 . The method of claim 1 , wherein the list range response further includes one or more of:
a request number;
a payload length;
a first slice name; and
a last slice name.
7 . The method of claim 1 further comprises:
generating, in accordance with the representation structure, for a last slice name of the slice names, a last portion of the list range response.
8 . The method of claim 1 , wherein the representation structure includes one or more of:
an offset representation;
a first slice name representation;
a last slice name representation;
a deterministic function representation;
a missing encoded data slice representation;
a contiguous grouping of encoded data slices representation; and
a revision representation.
9 . The method of claim 1 , wherein the list range request includes the representation structure.
10 . A storage unit of a dispersed storage network (DSN) comprises:
memory;
an interface; and
a processing module operably coupled to the memory and the interface, wherein the processing module is operable to:
receive, via the interface and from a requesting device, a list range request for a plurality of slice names within a slice name range, wherein the plurality of slice names are associated with a plurality of encoded data slices stored in the storage unit, wherein data is dispersed storage error encoded into pluralities of sets of encoded data slices and stored in storage units of the DSN, wherein the dispersed storage error encoding is in accordance with dispersed data storage parameters, wherein the pluralities of sets of encoded data slices include the plurality of encoded data slices;
identify slice names of the plurality of slice names within the slice name range;
determine a representation structure for a list range response;
generate, in accordance with the representation structure, a first portion of a list range response for a first slice name of the slice names, wherein the first portion includes a first representation of the first slice name;
generate, in accordance with the representation structure, one or more subsequent portions of the list range response for remaining slice names of the slice names, wherein the one or more subsequent portions includes one or more representations of the remaining slices names; and
send, via the interface, the list range response to the requesting device.
11 . The storage unit of claim 10 , wherein the processing module is operable to generate the first representation to include one of:
the first slice name;
a result based on performing a deterministic function on the first slice name; and
a truncated version of the first slice name.
12 . The storage unit of claim 10 , wherein processing module is operable to generate a representation of the one or more representations to include one or more of:
an offset from the first slice name;
a result based on a deterministic function applied to the first slice name and a remaining slice name of the remaining slice names;
a result based on a number of slice names within a contiguous range of slice names of the remaining slice names; and
a last slice name of the slice names.
13 . The storage unit of claim 10 , wherein the processing module is operable to generate the first portion to further include a slice revision count field, wherein the slice revision count field includes one or more of:
one or more slice revision fields; and
one or more corresponding slice length fields.
14 . The storage unit of claim 10 , wherein the processing module is further operable to generate the one or more subsequent portions to each further include a slice revision count field, wherein the slice revision count field includes one or more of:
one or more slice revision fields; and
one or more corresponding slice length fields.
15 . The storage unit of claim 10 , wherein the processing module is operable to generate the list range response to include one or more of:
a request number;
a payload length;
a first slice name; and
a last slice name.
16 . The storage unit of claim 10 , wherein the processing module is further operable to:
generating, in accordance with the representation structure, for a last slice name of the slice names, a last portion of the list range response.
17 . The storage unit of claim 10 , wherein the representation structure includes one or more of:
an offset representation;
a first slice name representation;
a last slice name representation;
a deterministic function representation;
a missing encoded data slice representation;
a contiguous grouping of encoded data slices representation; and
a revision representation.
18 . The storage unit of claim 10 , wherein the list range request includes the representation structure.