Applying a Selected Rebuilding Rate to Encoded Data in a Storage Network
A storage unit of a storage network is operable to determine rebuilding performance parameter values, where data is dispersed storage error encoded into a set of encoded data slices in accordance with error encoding parameters for storage via a set of storage units that includes the storage unit. A rate of internal rebuilding of encoded data slices is selected based on the rebuilding performance parameter values. At least one encoded data slice of the set of encoded data slices is internally rebuilt in accordance with the rate of internal rebuilding.
1 . A method for execution by one or more processing modules, the method comprising:
determining rebuilding performance parameter values for a storage unit of a set of storage units of a storage network, wherein data is dispersed storage error encoded into a set of encoded data slices in accordance with error encoding parameters for storage via the set of storage units;
selecting a rate of internal rebuilding of encoded data slices by the storage unit based on the rebuilding performance parameter values; and
internally rebuilding at least one encoded data slice of the set of encoded data slices in accordance with the rate of internal rebuilding.
2 . The method of claim 1 , further comprising:
determining second rebuilding performance parameter values for a second storage unit of the set of storage units of a storage network;
selecting a second rate of internal rebuilding of second encoded data slices by the second storage unit based on the second rebuilding performance parameter values, wherein the second rate of internal rebuilding is different than the rate of internal rebuilding; and
during internally rebuilding the second encoded data slices in accordance with the second rate of internal rebuilding, correcting detected storage errors for one or more second encoded data slices within the second storage unit.
3 . The method of claim 1 , wherein the selecting the rate of internal rebuilding comprises:
setting the rate to less than a result obtained by dividing a difference of a link speed minus the rate of receiving rebuilt encoded data slices by a decode threshold number of the error encoding parameters.
4 . The method of claim 3 , wherein the setting the rate further comprises:
including routine input/output traffic for reads and writes of other encoded data slices in the rate of receiving rebuilt encoded data slices value.
5 . The method of claim 3 , wherein the setting the rate further comprises:
determining an expected number of errors per unit of time associated with the link speed and the rate of the receiving the rebuilt encoded data slices.
6 . The method of claim 1 , wherein internally rebuilding the at least one encoded data slice of the set of encoded data slices in accordance with the rate of internal rebuilding is based on:
obtaining a decode threshold number of associated encoded data slices associated with a same set of encoded data slices as a first encoded data slice from other storage units of the set of storage units; and
rebuilding the first encoded data slice based on the decode threshold number of associated encoded data slices; and storing the first encoded data slice in memory of the storage unit.
7 . The method of claim 1 , further comprising:
correcting detected storage errors for one or more first encoded data slices within the storage unit;
receiving a rebuilt encoded data slice from another computing device of the storage network; and
when the received rebuilt encoded data slice is not included in the one or more first encoded data slices, storing the received rebuilt encoded data slice.
8 . The method of claim 1 , wherein a rebuilding performance parameter value of the rebuilding performance parameter values comprises a link speed.
9 . The method of claim 1 , wherein a rebuilding performance parameter value of the rebuilding performance parameter values comprises a decode threshold number of the error encoding parameters.
10 . The method of claim 1 , wherein a rebuilding performance parameter value of the rebuilding performance parameter values comprises a rate of receiving rebuilt encoded data slices.
11 . A storage unit of a set of storage units of a storage network, the storage unit comprises:
memory;
an interface; and
a processing module operably coupled to the memory and the interface, wherein the processing module is operable to:
determine rebuilding performance parameter values for a storage unit of a set of storage units of a storage network, wherein data is dispersed storage error encoded into a set of encoded data slices in accordance with error encoding parameters for storage via the set of storage units;
select a rate of internal rebuilding of encoded data slices by the storage unit based on the rebuilding performance parameter values; and
internally rebuild at least one encoded data slice of the set of encoded data slices in accordance with the rate of internal rebuilding.
12 . The storage unit of claim 11 , wherein the processing module is operable to select the rate of internal rebuilding by:
setting the rate to less than a result obtained by dividing a difference of a link speed minus the rate of receiving rebuilt encoded data slices by a decode threshold number of the error encoding parameters.
13 . The storage unit of claim 12 , wherein the processing module is further operable to set the rate by:
including routine input/output traffic for reads and writes of other encoded data slices in the rate of receiving rebuilt encoded data slices value.
14 . The storage unit of claim 12 , wherein the processing module is further operable to set the rate further by:
determining an expected number of errors per unit of time associated with the link speed and the rate of the receiving the rebuilt encoded data slices.
15 . The storage unit of claim 11 , wherein internally rebuilding the at least one encoded data slice of the set of encoded data slices in accordance with the rate of internal rebuilding is based on:
obtaining a decode threshold number of associated encoded data slices associated with a same set of encoded data slices as a first encoded data slice from other storage units of the set of storage units; and
rebuilding the first encoded data slice based on the decode threshold number of associated encoded data slices; and storing the first encoded data slice in memory of the storage unit.
16 . The storage unit of claim 11 , wherein the processing module is further operable to:
correct detected storage errors for one or more first encoded data slices within the storage unit;
receive a rebuilt encoded data slice from another computing device of the storage network; and
when the received rebuilt encoded data slice is not included in the one or more first encoded data slices, store the received rebuilt encoded data slice.
17 . The storage unit of claim 11 , wherein the processing module is operable to determine a rebuilding performance parameter value of the rebuilding performance parameter values comprises a link speed.
18 . The storage unit of claim 11 , wherein the processing module is operable to determine a rebuilding performance parameter value of the rebuilding performance parameter values comprises a decode threshold number of the error encoding parameters.
19 . The storage unit of claim 11 , wherein the processing module is operable to determine a rebuilding performance parameter value of the rebuilding performance parameter values comprises a rate of receiving rebuilt encoded data slices.
20 . The storage unit of claim 11 , wherein the processing module is operable to determine a rebuilding performance parameter value of the rebuilding performance parameter values comprises a current rate of internal rebuilding the encoded data slices.