Distributed rebuilding of data in a dispersed storage network
First Claim
1. A method comprises:
- storing a plurality of encoded data slices in a memory device of a first storage unit of a set of storage units of a dispersed storage network (DSN), wherein each encoded data slice of the plurality of encoded data slices is a dispersed storage error encoded portion of a respective segment of a data object;
determining that the stored plurality of encoded data slices require rebuilding;
determining, by the first storage unit, to rebuild the stored plurality of encoded data slices in a distributed manner;
identifying at least two additional storage units of the set of storage units having rebuilding resources;
allocating rebuilding assignments among the at least two additional storage units for generating a rebuilt plurality of encoded data slices corresponding to the stored plurality of encoded data slices, including assigning a rebuilding assignment of the rebuilding assignments to one of the at least two additional storage units based on a pillar number of an encoded data slice of the stored plurality of encoded data slices;
sending the rebuilding assignments to the at least two additional storage units;
receiving, in response to the rebuilding assignments, the rebuilt plurality of encoded data slices; and
storing the rebuilt plurality of encoded data slices in the first storage unit.
5 Assignments
0 Petitions
Accused Products
Abstract
A technique of rebuilding encoded data slices in a dispersed storage network when detecting a plurality of encoded data slices that require rebuilding, as may occur upon failure of a memory device storing the encoded data slices. A plurality of rebuilding resources capable for use to rebuild the plurality of data slices are determined and, based on one or more attributes associated with the determination, a rebuilding task is apportioned. The resulting rebuilding assignments are allocated to the plurality of rebuilding resources to rebuild the encoded data slices. The allocation of the rebuilding assignments permits more than one rebuilding resource and associated distributed storage units to rebuild the encoded data slices.
79 Citations
20 Claims
-
1. A method comprises:
-
storing a plurality of encoded data slices in a memory device of a first storage unit of a set of storage units of a dispersed storage network (DSN), wherein each encoded data slice of the plurality of encoded data slices is a dispersed storage error encoded portion of a respective segment of a data object; determining that the stored plurality of encoded data slices require rebuilding; determining, by the first storage unit, to rebuild the stored plurality of encoded data slices in a distributed manner; identifying at least two additional storage units of the set of storage units having rebuilding resources; allocating rebuilding assignments among the at least two additional storage units for generating a rebuilt plurality of encoded data slices corresponding to the stored plurality of encoded data slices, including assigning a rebuilding assignment of the rebuilding assignments to one of the at least two additional storage units based on a pillar number of an encoded data slice of the stored plurality of encoded data slices; sending the rebuilding assignments to the at least two additional storage units; receiving, in response to the rebuilding assignments, the rebuilt plurality of encoded data slices; and storing the rebuilt plurality of encoded data slices in the first storage unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer readable memory comprises:
-
a first memory section that stores operational instructions that, when executed by a processing unit of a dispersed storage network (DSN), causes the processing unit to detect a failed memory device of a plurality of memory devices of a first storage unit of a set of storage units of the DSN, wherein; each storage unit of the set of storage units includes a plurality of memory devices and a processing module; the processing module includes a rebuilding resource; a data object is divided into a plurality of data segments; a data segment of the plurality of data segments is dispersed storage error encoded into a set of encoded data slices; the first storage unit stores first encoded data slices of a plurality of sets of encoded data slices corresponding to the data object; and the first storage unit stores the first encoded data slices in the failed memory device; a second memory section that stores operational instructions that, when executed by the processing unit, causes the processing unit to determine to rebuild the first encoded data slices distributedly or locally with respect to the first storage unit; a third memory section that stores operational instructions that, when executed by the processing unit, causes the processing unit to; when determined to rebuild the first encoded data slices distributedly; identify two or more rebuilding resources from the rebuilding resources of the set of storage units; and allocate rebuilding assignments among the identified rebuilding resources for generating a rebuilt plurality of encoded data slices corresponding to the first encoded data slices, including assigning a rebuilding assignment of the rebuilding assignments to one of the identified rebuilding resources based on a pillar number of an encoded data slice of the first encoded data slices; and a fourth memory section that stores operational instructions that, when executed by the identified rebuilding resources, causes the identified rebuilding resources to rebuild the first encoded data slices. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification