Multiplying width and threshold for improved performance and efficiency
A method for execution by a dispersed storage network (DSN), the method begins by receiving data for storage in the DSN. The method continues by selecting a set of storage units, identifying a baseline pillar width and a baseline decode threshold, determining an estimated performance of the set of storage units, determining a parameter multiple based on the estimated performance and the baseline pillar width and the baseline decode threshold, multiplying the parameter multiple by each of the baseline pillar width and the baseline decode threshold to produce a pillar width and a decode threshold, encoding the data using a dispersed storage error coding function in accordance with the pillar width and the decode threshold to produce a plurality of sets of encoded data slices, facilitating storage of the plurality of sets of encoded data slices in the set of storage units and storing the parameter multiple.
1 . A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:
receiving data for storage in the dispersed storage network (DSN);
selecting a set of storage units;
identifying a baseline pillar width and a baseline decode threshold;
determining an estimated performance of the set of storage units;
determining a parameter multiple based on the estimated performance and the baseline pillar width and the baseline decode threshold;
multiplying the parameter multiple by each of the baseline pillar width and the baseline decode threshold to produce a pillar width and a decode threshold respectively;
encoding the data using a dispersed storage error coding function in accordance with the pillar width and the decode threshold to produce a plurality of sets of encoded data slices;
facilitating storage of the plurality of sets of encoded data slices in the set of storage units; and
storing the parameter multiple.
2 . The method of claim 1 , wherein the receiving further includes receiving one or more of a data identifier, a data owner identifier, a requesting entity identifier, a DSN address, baseline parameters, or a data type indicator.
3 . The method of claim 1 , wherein the selecting may be based on one or more of a lookup, a data owner identifier, a vault identifier, a requesting entity identifier, or a data type indicator.
4 . The method of claim 1 , wherein the identifying is based on one or more of a lookup, a data owner identifier, a vault ID, a requesting entity ID, or a data type indicator.
5 . The method of claim 1 , wherein the determining an estimated performance includes one or more of: receiving the estimated performance, performing a lookup, initiating a query, initiating a test, accessing a historical record, or retrieving a predetermination.
6 . The method of claim 1 , wherein the determining a parameter multiple is based on optimizing expected access performance such that a decode threshold number of encoded data slices can be retrieved from selected storage units of the DSN with favorable performance.
7 . The method of claim 1 , wherein the determining a parameter multiple is based on optimizing expected access performance such that at least a write threshold number of encoded data slices can be stored to the set of storage units of the DSN with favorable performance.
8 . The method of claim 1 , wherein the facilitating includes issuing write slice requests to each storage unit of the set of storage units, where each storage unit receives a parameter multiple number of encoded data slices.
9 . The method of claim 1 , wherein the storing includes one or more of storing the parameter multiple in a local memory, a vault, and a directory, or in a hierarchical dispersed index.
10 . The method of claim 1 further comprising, for a retrieval request for the data:
reproduce the pillar width and the decode threshold based on the parameter multiple;
identify the set of storage units;
determine an estimated performance of the set of storage units;
select one or more storage units of the set of storage units based on the estimated performance, the parameter multiple, and the decode threshold;
recover a decode threshold number of encoded data slices from the selected one or more storage units; and
decode the decode threshold number of encoded data slices using the dispersed storage error coding function to reproduce the data.
11 . A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:
receiving a retrieval request for data;
reproducing a pillar width and a decode threshold based on a parameter multiple;
identifying a set of storage units;
determining an estimated performance of the set of storage units;
selecting one or more storage units of the set of storage units based on the estimated performance, the parameter multiple, and the decode threshold;
recovering a decode threshold number of encoded data slices from the selected one or more storage units; and
decoding the decode threshold number of encoded data slices using a dispersed storage error coding function to reproduce the data.
12 . The method of claim 11 , wherein the reproducing includes retrieving a baseline decode threshold and a baseline pillar width, recovering the parameter multiple, and multiplying the parameter multiple by the baseline decode threshold and the baseline pillar width to reproduce the decode threshold and the pillar width.
13 . The method of claim 11 , wherein the identifying the set of storage units includes any of: receive identifiers or performing a lookup based on a data identifier.
14 . The method of claim 11 , wherein the selecting one or more storage units of the set of storage units begins with best-performing storage units to retrieve a parameter multiple number of encoded data slices from each storage unit until the decode threshold number of encoded data slices can be retrieved.
15 . The method of claim 11 , wherein the recovering includes issuing read slice requests, receiving read slice responses, where read slice responses from the selected one or more storage units includes a parameter multiple number of encoded data slices.
16 . The method of claim 11 , wherein the data includes a data segment of a plurality of data segments of the data.
17 . A computing device of a group of computing devices of a dispersed storage network (DSN), the computing device comprises:
an interface;
a local memory; and
a processing module operably coupled to the interface and the local memory, wherein the processing module functions to:
receive data for storage in the dispersed storage network (DSN);
select a set of storage units;
identify a baseline pillar width and a baseline decode threshold;
determine an estimated performance of the set of storage units;
determine a parameter multiple based on the estimated performance and the baseline pillar width and the baseline decode threshold;
multiply the parameter multiple by each of the baseline pillar width and the baseline decode threshold to produce a pillar width and a decode threshold respectively;
encode the data using a dispersed storage error coding function in accordance with the pillar width and the decode threshold to produce a plurality of sets of encoded data slices;
facilitate storage of the plurality of sets of encoded data slices in the set of storage units; and
store the parameter multiple.
18 . The computing device of claim 17 , wherein the determining an estimated performance includes one or more of: receiving the estimated performance, performing a lookup, initiating a query, initiating a test, accessing a historical record, or retrieving a predetermination.
19 . The computing device of claim 17 , wherein the determining a parameter multiple is based on optimizing expected access performance such that a decode threshold number of encoded data slices can be retrieved from selected storage units of the DSN with favorable performance.
20 . The computing device of claim 17 , wherein the processing module is further configured to, for a retrieval request for the data:
reproduce the pillar width and the decode threshold based on the parameter multiple;
identify the set of storage units;
determine an estimated performance of the set of storage units;
select one or more storage units of the set of storage units based on the estimated performance, the parameter multiple, and the decode threshold;
recover a decode threshold number of encoded data slices from the selected one or more storage units; and
decode the decode threshold number of encoded data slices using the dispersed storage error coding function to reproduce the data.