SELECTING STORAGE UNITS OF A DISPERSED STORAGE NETWORK
A method begins by a processing module of a computing device in a dispersed storage network (DSN) receiving a read request for a data segment, where the data segment is dispersed error encoded to produce a set of encoded data slices (EDSs) that are stored in a plurality of storage units (SUs) in a storage unit (SU) set. The method continues with the computing device determining loading information for each SU of the SU set and identifying a read threshold number of SUs of the SU set based the loading information and a pattern selection scheme. The method continues with the processing module transmitting a read slice request to each SU of the read threshold number of SUs that are identified.
1 . A computing device comprising:
an interface configured to interface and communicate with a communication system;
memory that stores operational instructions; and
processing circuitry operably coupled to the interface and to the memory, wherein the processing circuitry is configured to execute the operational instructions to:
receive a read request for a data segment of a plurality of data segments that is associated with a data object, wherein the data segment is dispersed error encoded in accordance with dispersed error encoding parameters to produce a set of encoded data slices (EDSs) that are stored in a plurality of storage units (SUs) in a storage unit (SU) set, wherein a read threshold number of EDSs provides for reconstruction of the data segment;
determine loading information for each SU of the SU set;
identify a read threshold number of SUs of the SU set based the loading information and a pattern selection scheme; and
transmit a read slice request to each SU of the read threshold number of SUs that are identified.
2 . The computing device of claim 1 , wherein the processing circuitry is configured to execute the operational instructions to:
determine loading information for each SU of the SU set based on at least one of a previous read request, a previous read response, a query, receipt of an error message, receipt of first loading information from each SU of the SU set, or receipt of second loading information from at least one SU of the SU set.
3 . The computing device of claim 1 , wherein the processing circuitry is configured to execute the operational instructions to:
identify the read threshold number of SUs of the SU set based the loading information that includes at least one of an operations per second indicator, an input/output bandwidth utilization level, a memory utilization level, and a partial task queue level.
4 . The computing device of claim 1 , wherein the processing circuitry is configured to execute the operational instructions to:
determine the pattern selection scheme based on at least one of performing a lookup, receiving a pattern selection scheme indicator, analyzing performance of a previous retrieval segments, or analyzing previous loading information.
5 . The computing device of claim 1 , wherein the pattern selection scheme is a round robin pattern selection scheme and the read threshold number of SU's includes SUs of the set of SUs that have loading threshold levels that compare favorably to a predetermined load threshold level.
6 . The computing device of claim 1 , wherein the pattern selection scheme is a round robin pattern selection scheme and the read threshold number of SU's includes SUs of the set of SUs that have a most favorable loading information of the set of SUs.
7 . The computing device of claim 1 , wherein the dispersed error encoding parameters include at least one of a width, a write threshold, a read threshold, a decode threshold, an encoding matrix identifier, and an information dispersal algorithm identifier.
8 . The computing device of claim 1 , wherein the processing circuitry is configured to execute the operational instructions to:
obtain loading information by at least one of initiating a query, receiving an error message, performing a lookup, and receiving the loading information from one or more SU of the set of SUs.
9 . The computing device of claim 1 , wherein the processing circuitry is configured to execute the operational instructions to:
identify the read threshold number of SUs based on at least one of selecting SUs associated with loading information that compares favorably to a loading threshold level and selecting SUs associated with a most favorable loading information.
10 . A method for execution by one or more processing modules of a computing device of a dispersed storage network (DSN), the method comprises:
receiving, at the computing device, a read request for a data segment of a plurality of data segments that is associated with a data object, wherein the data segment is dispersed error encoded in accordance with dispersed error encoding parameters to produce a set of encoded data slices (EDSs) that are stored in a plurality of storage units (SUs) in a storage unit (SU) set, wherein a read threshold number of EDSs provides for reconstruction of the data segment;
determining, by the computing device, loading information for each SU of the SU set;
identifying, by the computing device, a read threshold number of SUs of the SU set based the loading information and a pattern selection scheme; and
transmitting a read slice request to each SU of the read threshold number of SUs that are identified.
11 . The method of claim 10 , further comprising:
determining the loading information for each SU of the SU set based on at least one of a previous read request, a previous read response, a query, receipt of an error message, receipt of first loading information from each SU of the SU set, or receipt of second loading information from at least one SU of the SU set.
12 . The method of claim 10 , further comprising:
identifying the read threshold number of SUs of the SU set based on the loading information including at least one of an operations per second indicator, an input/output bandwidth utilization level, a memory utilization level, and a partial task queue level.
13 . The method of claim 10 , wherein the pattern selection scheme is based on at least one of performing a lookup, receiving a pattern selection scheme indicator, analyzing performance of a previous retrieval segments, or analyzing previous loading information.
14 . The method of claim 10 , wherein the pattern selection scheme is a round robin pattern selection scheme and the read threshold number of SU's includes SUs of the set of SUs that have loading threshold levels that compare favorably to a predetermined load threshold level.
15 . The method of claim 10 , wherein the pattern selection scheme is a round robin pattern selection scheme and the read threshold number of SU's includes SUs of the set of SUs that have a most favorable loading information of the set of SUs.
16 . The method of claim 10 , wherein the dispersed error encoding parameters include at least one of a width, a write threshold, a read threshold, a decode threshold, an encoding matrix identifier, and an information dispersal algorithm identifier.
17 . The method of claim 10 , further comprising:
obtaining loading information by at least one of initiating a query, receiving an error message, performing a lookup, and receiving the loading information from one or more SU of the set of SUs.
18 . The method of claim 10 , further comprising:
identifying the read threshold number of SUs based on at least one of selecting SUs associated with loading information that compares favorably to a loading threshold level and selecting SUs associated with a most favorable loading information.
19 . A computer readable memory comprises:
a first memory element that stores operational instructions that, when executed by a computing device of a dispersed storage network (DSN), causes the computing device to:
receive a read request for a data segment of a plurality of data segments that is associated with a data object, wherein the data segment is dispersed error encoded in accordance with dispersed error encoding parameters to produce a set of encoded data slices (EDSs) that are stored in a plurality of storage units (SUs) in a storage unit (SU) set, wherein a read threshold number of EDSs provides for reconstruction of the data segment;
a second memory element that stores operational instructions that, when executed by a computing device of a dispersed storage network (DSN), causes the computing device to:
determine loading information for each SU of the SU set;
identify a read threshold number of SUs of the SU set based the loading information and a pattern selection scheme; and
a third memory element that stores operational instructions that, when executed by a computing device of a dispersed storage network (DSN), causes the computing device to:
transmit a read slice request to each SU of the read threshold number of SUs that are identified.
20 . The computer readable memory of claim 19 , further comprising:
determining the loading information for each SU of the SU set based on at least one of a previous read request, a previous read response, a query, receipt of an error message, receipt of first loading information from each SU of the SU set, or receipt of second loading information from at least one SU of the SU set; and
identifying the read threshold number of SUs of the SU set based on the loading information including at least one of an operations per second indicator, an input/output bandwidth utilization level, a memory utilization level, and a partial task queue level.