RANGE BASED REBUILDER FOR USE WITH A DISPERSED DATA STORAGE NETWORK
First Claim
1. A method of rebuilding data stored on a dispersed data storage network comprising a plurality of networked computers including a plurality of slice servers, each of said slice servers storing a plurality of data slices, each of said data slices being identified by a data slice identifier, whereby n of said data slices are associated with a corresponding data segment, and whereby m of said associated data slices are required to reconstruct said corresponding data segment, and further whereby m is less than n, said method comprising the steps of:
- receiving a message from one of said networked computers, said message indicative of the inaccessibility of a plurality of data slices;
adding data slice identifiers identifying said plurality of data slices to a list of data slices to be rebuilt;
for each data slice identified by said list of data slices to be rebuilt;
determining a corresponding data segment;
reading at least m data slices associated with said corresponding data segment, said at least m data slices not identified on said list of data slices to be rebuilt;
reconstructing said corresponding data segment from said at least m data slices;
slicing said reconstructed corresponding data segment into n data slices, including said data slice identified by said list of data slices to be rebuilt; and
writing said data slice identified by said list of data slices to be rebuilt to one of said plurality of slice servers.
4 Assignments
0 Petitions
Accused Products
Abstract
A message is generated by a computer operating on a dispersed data storage network indicating the inaccessibility of a plurality of data slices. A rebuilder application operates on the dispersed data storage grid and rebuilds inaccessible data slices, including those identified by the message.
159 Citations
17 Claims
-
1. A method of rebuilding data stored on a dispersed data storage network comprising a plurality of networked computers including a plurality of slice servers, each of said slice servers storing a plurality of data slices, each of said data slices being identified by a data slice identifier, whereby n of said data slices are associated with a corresponding data segment, and whereby m of said associated data slices are required to reconstruct said corresponding data segment, and further whereby m is less than n, said method comprising the steps of:
-
receiving a message from one of said networked computers, said message indicative of the inaccessibility of a plurality of data slices; adding data slice identifiers identifying said plurality of data slices to a list of data slices to be rebuilt; for each data slice identified by said list of data slices to be rebuilt; determining a corresponding data segment; reading at least m data slices associated with said corresponding data segment, said at least m data slices not identified on said list of data slices to be rebuilt; reconstructing said corresponding data segment from said at least m data slices; slicing said reconstructed corresponding data segment into n data slices, including said data slice identified by said list of data slices to be rebuilt; and writing said data slice identified by said list of data slices to be rebuilt to one of said plurality of slice servers. - View Dependent Claims (2, 3, 4)
-
-
5. A method of rebuilding data stored on a dispersed data storage network comprising a plurality of networked computers including a plurality of slice servers, each of said slice servers storing a plurality of data slices, each of said data slices being identified by a data slice identifier and including a data portion and a first checksum, whereby n of said data slices are associated with a corresponding data segment, and whereby m of said associated data slices are required to reconstruct said corresponding data segment, and further whereby m is less than n, said method comprising the steps of:
-
reading a data slice stored on one of said slice servers; computing a second checksum based on the data portion of said data slice; comparing said second checksum with said first checksum; adding a data slice identifier identifying said data slice to a list of data slices to be rebuilt when said first checksum does not match said second checksum; receiving a message from one of said networked computers, said message indicative of the inaccessibility of a plurality of data slices; adding data slice identifiers identifying said plurality of data slices to said list of data slices to be rebuilt; for each data slice identifier on said list of data slices to be rebuilt; determining a corresponding data segment; reading at least m data slices associated with said corresponding data segment, said at least m data slices not identified on said list of data slices to be rebuilt; reconstructing said corresponding data segment from said at least m data slices; slicing said reconstructed data segment into n data slices, including said data slice identified by said list of data slices to be rebuilt; and writing said data slice identified by said list of data slices to be rebuilt to one of said plurality of slice servers. - View Dependent Claims (6, 7, 8)
-
-
9. A dispersed data storage network comprising a plurality of networked computers including a plurality of slice servers, each of said slice servers storing a plurality of data slices, each of said data slices being identified by a data slice identifier, whereby n of said data slices are associated with a corresponding data segment, and whereby m of said associated data slices are required to reconstruct said corresponding data segment, and further whereby m is less than n, said dispersed data storage network further comprising:
a computer coupled to said plurality of networked computers, said computer running a rebuilder application, said computer adapted to receive a message from one of said networked computers, said message indicative of the inaccessibility of a plurality of data slices, and in response, said rebuilder application; adding data slice identifiers identifying said plurality of data slices to a list of data slices to be rebuilt; for each data slice identified by said list of data slices to be rebuilt; determining a corresponding data segment; reading at least m data slices associated with said corresponding data segment, said at least m data slices not identified on said list of data slices to be rebuilt; reconstructing said corresponding data segment from said at least m data slices; slicing said reconstructed corresponding data segment into n data slices, including said data slice identified by said list of data slices to be rebuilt; and writing said data slice identified by said list of data slices to be rebuilt to one of said plurality of slice servers. - View Dependent Claims (10, 11, 12, 13, 15, 16, 17)
-
14. A dispersed data storage network comprising a plurality of networked computers including a plurality of slice servers, each of said slice servers storing a plurality of data slices, each of said data slices being identified by a data slice identifier and including a data portion and a first checksum, whereby n of said data slices are associated with a corresponding data segment, and whereby m of said associated data slices are required to reconstruct said corresponding data segment, and further whereby m is less than n, said dispersed data storage network further comprising:
-
a computer coupled to said plurality of networked computers, said computer running a rebuilder application, said rebuilder application; reading a data slice stored on one of said plurality of slice servers; computing a second checksum based on the data portion of said data slice; comparing said second checksum with said first checksum; adding a data slice identifier identifying said data slice to a list of data slices to be rebuilt when said first checksum does not match said second checksum; said computer further adapted to receive a message from one of said networked computers, said message indicative of the inaccessibility of a plurality of data slices, and in response, said rebuilder application; adding data slice identifiers identifying said plurality of data slices to a list of data slices to be rebuilt; for each data slice identified by said list of data slices to be rebuilt; determining a corresponding data segment; reading at least m data slices associated with said corresponding data segment, said at least m data slices not identified on said list of data slices to be rebuilt; reconstructing said corresponding data segment from said at least m data slices; slicing said reconstructed corresponding data segment into n data slices, including said data slice identified by said list of data slices to be rebuilt; and writing said data slice identified by said list of data slices to be rebuilt to one of said plurality of slice servers.
-
Specification