Rebuilding data stored in a dispersed storage network
First Claim
1. A method for execution by a processing module, the method comprises:
- queuing, in a rebuild queue, identifiers of encoded data slices for rebuilding, wherein an encoded data slice of the encoded data slices is of a set of encoded data slices, wherein a data segment is dispersed storage error encoded to produce the set of encoded data slices, wherein a decode threshold number of encoded data slices of the set of encoded data slices are required to recover the data segment, wherein the identifier of the encoded data slice includes a revision value corresponding to a revision level of the data segment, and wherein a set of storage units stores the set of encoded data slices;
accessing the rebuild queue based on the identifier of the encoded data slice to retrieve a valid rebuild request;
for the valid rebuild request, querying a storage unit of the set of storage units regarding a most current revision value of another encoded data slice of a most current dispersed storage error encoded revision level of the data segment, wherein an identifier for the other encoded data slice is not included in the rebuild queue; and
when the revision value of the encoded data slice compares favorably with the most current revision level of the other encoded data slice;
retrieving the decode threshold number of encoded data slices from at least some of the storage units of the set of storage units, wherein the decode threshold number of encoded data slices does not include the encoded data slice identified in the rebuild queue;
reconstructing the data segment from the decode threshold number of encoded data slices; and
generating a rebuilt encoded data slice from the reconstructed data segment.
5 Assignments
0 Petitions
Accused Products
Abstract
A method begins where a processing module queues, in a rebuild queue, identifiers of encoded data slices for rebuilding, where an encoded data slice is of a set of encoded data slices. The method continues with the processing module accessing the rebuild queue to retrieve a valid rebuild request and querying a storage unit of the set of storage units regarding a most current revision value of another encoded data slice of a most current dispersed storage error encoded revision level of a data segment. When a revision value of the encoded data slice compares favorably with the most current revision level of the other encoded data slice, the method continues with the processing module retrieving a decode threshold number of encoded data slices, reconstructing the data segment from the decode threshold number of encoded data slices, and generating a rebuilt encoded data slice from the reconstructed data segment.
-
Citations
27 Claims
-
1. A method for execution by a processing module, the method comprises:
-
queuing, in a rebuild queue, identifiers of encoded data slices for rebuilding, wherein an encoded data slice of the encoded data slices is of a set of encoded data slices, wherein a data segment is dispersed storage error encoded to produce the set of encoded data slices, wherein a decode threshold number of encoded data slices of the set of encoded data slices are required to recover the data segment, wherein the identifier of the encoded data slice includes a revision value corresponding to a revision level of the data segment, and wherein a set of storage units stores the set of encoded data slices; accessing the rebuild queue based on the identifier of the encoded data slice to retrieve a valid rebuild request; for the valid rebuild request, querying a storage unit of the set of storage units regarding a most current revision value of another encoded data slice of a most current dispersed storage error encoded revision level of the data segment, wherein an identifier for the other encoded data slice is not included in the rebuild queue; and when the revision value of the encoded data slice compares favorably with the most current revision level of the other encoded data slice; retrieving the decode threshold number of encoded data slices from at least some of the storage units of the set of storage units, wherein the decode threshold number of encoded data slices does not include the encoded data slice identified in the rebuild queue; reconstructing the data segment from the decode threshold number of encoded data slices; and generating a rebuilt encoded data slice from the reconstructed data segment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer readable storage medium having accessible therefrom a set of instructions interpretable by a processing module, the set of instructions being configured to cause the processing module to carry out operations for:
-
queuing, in a rebuild queue, identifiers of encoded data slices for rebuilding, wherein an encoded data slice of the encoded data slices is of a set of encoded data slices, wherein a data segment is dispersed storage error encoded to produce the set of encoded data slices, wherein a decode threshold number of encoded data slices of the set of encoded data slices are required to recover the data segment, wherein the identifier of the encoded data slice includes a revision value corresponding to a revision level of the data segment, and wherein a set of storage units stores the set of encoded data slices; accessing the rebuild queue based on the identifier of the encoded data slice to retrieve a valid rebuild request; for the valid rebuild request, querying a storage unit of the set of storage units regarding a most current revision value of another encoded data slice of a most current dispersed storage error encoded revision level of the data segment, wherein an identifier for the other encoded data slice is not included in the rebuild queue; and when the revision value of the encoded data slice compares favorably with the most current revision level of the other encoded data slice; retrieving the decode threshold number of encoded data slices from at least some of the storage units of the set of storage units, wherein the decode threshold number of encoded data slices does not include the encoded data slice identified in the rebuild queue; reconstructing the data segment from the decode threshold number of encoded data slices; and generating a rebuilt encoded data slice from the reconstructed data segment. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computing device comprises:
-
an interface; memory; and a processing module operably coupled to the interface and the memory, wherein the processing module is operable to; queue, in a rebuild queue, identifiers of encoded data slices for rebuilding, wherein an encoded data slice of the encoded data slices is of a set of encoded data slices, wherein a data segment is dispersed storage error encoded to produce the set of encoded data slices, wherein a decode threshold number of encoded data slices of the set of encoded data slices are required to recover the data segment, wherein the identifier of the encoded data slice includes a revision value corresponding to a revision level of the data segment, and wherein a set of storage units stores the set of encoded data slices; access the rebuild queue based on the identifier of the encoded data slice to retrieve a valid rebuild request; for the valid rebuild request, query a storage unit of the set of storage units regarding a most current revision value of another encoded data slice of a most current dispersed storage error encoded revision level of the data segment, wherein an identifier for the other encoded data slice is not included in the rebuild queue; and when the revision value of the encoded data slice compares favorably with the most current revision level of the other encoded data slice; retrieve the decode threshold number of encoded data slices from at least some of the storage units of the set of storage units, wherein the decode threshold number of encoded data slices does not include the encoded data slice identified in the rebuild queue; reconstruct the data segment from the decode threshold number of encoded data slices; and generate a rebuilt encoded data slice from the reconstructed data segment. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
Specification