Method and system for data recovery using a distributed and scalable data structure
First Claim
1. A method for recovering data objects stored in a data bucket in a computer system comprised of servers interconnected by a network, wherein each server includes a storage area, wherein data buckets are included in a plurality of the storage areas throughout the network, comprising the steps of:
- determining a failure of a data bucket;
determining an nth bucket group number associated with the failed data bucket, wherein n is an integer value greater than zero;
locating parity data in a parity bucket associated with the nth bucket group number;
recovering the data objects in the failed data bucket from the parity data in the located parity bucket associated with the nth bucket group number;
determining whether the recovery of data objects was successful; and
after determining that the recovery of data objects using the parity data in the parity bucket associated with the nth bucket group number was unsuccessful, whereby n'"'"' is created by splitting a bucket from the nth bucket group to create a new bucket grouping, for each n'"'"', not equal to n and while the data objects have not been recovered and all n'"'"' have not been considered, performing the steps of;
(i) determining an n'"'"'th bucket group number associated with the failed data bucket that has not been considered;
(ii) locating parity data in a parity bucket associated with the n'"'"'th bucket group number; and
(iii) recovering the data objects in the failed data bucket from the parity data in the located parity bucket associated with the n'"'"'th bucket group number.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed is a system for recovering data objects stored in a data bucket in a computer system comprised of servers interconnected by a network. Each server includes a storage area. Data buckets are included in a plurality of the storage areas throughout the network. A failure of a data bucket and nth bucket group number associated with the failed data bucket are determined, wherein n is an integer value greater than zero. Parity data in a parity bucket associated with the nth bucket group number is then located. The data objects in the failed data bucket are then recovered from the parity data in the located parity bucket. After determining that the recovery of data objects using the parity data in the parity bucket associated with the nth bucket group number was unsuccessful, for each n'"'"' not equal to n and while the data objects have not been recovered and all n'"'"' have not been considered, performing the steps of: determining an n'"'"'th bucket group number associated with the failed data bucket; locating parity data in a parity bucket associated with the n'"'"'th bucket group number; and recovering the data objects in the failed data bucket from the parity data in the located parity bucket associated with the n'"'"'th bucket group number. Recovery can also be made of the parity data using the data objects.
121 Citations
30 Claims
-
1. A method for recovering data objects stored in a data bucket in a computer system comprised of servers interconnected by a network, wherein each server includes a storage area, wherein data buckets are included in a plurality of the storage areas throughout the network, comprising the steps of:
-
determining a failure of a data bucket; determining an nth bucket group number associated with the failed data bucket, wherein n is an integer value greater than zero; locating parity data in a parity bucket associated with the nth bucket group number; recovering the data objects in the failed data bucket from the parity data in the located parity bucket associated with the nth bucket group number; determining whether the recovery of data objects was successful; and after determining that the recovery of data objects using the parity data in the parity bucket associated with the nth bucket group number was unsuccessful, whereby n'"'"' is created by splitting a bucket from the nth bucket group to create a new bucket grouping, for each n'"'"', not equal to n and while the data objects have not been recovered and all n'"'"' have not been considered, performing the steps of; (i) determining an n'"'"'th bucket group number associated with the failed data bucket that has not been considered; (ii) locating parity data in a parity bucket associated with the n'"'"'th bucket group number; and (iii) recovering the data objects in the failed data bucket from the parity data in the located parity bucket associated with the n'"'"'th bucket group number. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer system for recovering data objects, comprising:
-
a plurality of computer devices including storage areas; a network providing communication among the computer systems; a plurality of data buckets included within storage areas of the computer devices, wherein the data objects are stored in data buckets throughout the network; and program logic implemented in at least one of the computer devices for; (i) determining a failure of a data bucket; (ii) determining an nth bucket group number associated with the failed data bucket, wherein n is an integer greater than zero; (iii) locating parity data in a parity bucket associated with the nth bucket group number; (iv) recovering the data objects in the failed data bucket from the parity data in the located parity bucket associated with the nth bucket group number; (v) determining whether the recovery of data objects was successful; and (vi) after determining that the recovery of data objects using the parity data in the parity bucket associated with the nth bucket group number was unsuccessful, recovering the data objects in the failed data bucket from parity data in a located parity bucket associated with an n'"'"' bucket group number, whereby n'"'"' is created by splitting a bucket from the nth bucket group to create a new bucket grouping, wherein n'"'"' is an integer value not equal to n. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. An article of manufacture for use in programming a computer system comprised of a plurality of computer devices interconnected by a network system, the article of manufacture comprising at least one computer readable storage device including at least one computer program embedded therein that causes computer devices within the computer system to perform the steps of:
-
determining a failure of a data bucket; determining an nth bucket group number associated with the failed data bucket, wherein n is an integer value greater than zero; locating parity data in a parity bucket associated with the nth bucket group number; recovering the data objects in the failed data bucket from the parity data in the located parity bucket associated with the nth bucket group number; determining whether the recovery of data objects was successful; and after determining that the recovery of data objects using the parity data in the nth parity bucket was unsuccessful, whereby n'"'"' is created by splitting a bucket from the nth bucket group to create a new bucket grouping, for each n'"'"' not equal to n and while the data objects have not been recovered and all n'"'"' have not been considered, performing the steps of; (i) determining an n'"'"'th bucket group number associated with the failed data bucket that has not been considered; (ii) locating parity data in the parity bucket associated with the n'"'"'th bucket group number; and (iii) recovering the data objects in the failed data bucket from the parity data in the located parity bucket associated with the n'"'"'th bucket group number. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification