System and method for providing high availability data
First Claim
Patent Images
1. A computer-implemented data storage system comprising:
- mapping logic configured to map responsibility for storing a plurality of data sets to a plurality of data centers and to a plurality of hosts within the plurality of data centers;
data set replication logic configured to write a first plurality of copies of a data set at a first subset of the plurality of hosts within a first subset of the plurality of data centers, the data set being one of the plurality of data sets;
data set retrieval logic configured to read a second plurality of copies of the data set at a second subset of the plurality of hosts within a second subset of the plurality of data centers; and
data set comparison logic configured to evaluate causal relationships between the second copies of the data set.
1 Assignment
0 Petitions
Accused Products
Abstract
An embodiment relates to a computer-implemented data processing system and method for storing a data set at a plurality of data centers. The data centers and hosts within the data centers may, for example, be organized according to a multi-tiered ring arrangement. A hashing arrangement may be used to implement the ring arrangement to select the data centers and hosts where the writing and reading of the data sets occurs. Version histories may also be written and read at the hosts and may be used to evaluate causal relationships between the data sets after the reading occurs.
109 Citations
55 Claims
-
1. A computer-implemented data storage system comprising:
-
mapping logic configured to map responsibility for storing a plurality of data sets to a plurality of data centers and to a plurality of hosts within the plurality of data centers; data set replication logic configured to write a first plurality of copies of a data set at a first subset of the plurality of hosts within a first subset of the plurality of data centers, the data set being one of the plurality of data sets; data set retrieval logic configured to read a second plurality of copies of the data set at a second subset of the plurality of hosts within a second subset of the plurality of data centers; and data set comparison logic configured to evaluate causal relationships between the second copies of the data set. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer-implemented data processing method comprising:
-
generating a hash value based on a hash key and a hash function, the hash key being associated with a data set and being applied as input to the hash function; writing a first plurality of copies of the data set at a first subset of a plurality of data centers, including writing a version history for each of the first copies of the data set, the first subset of the plurality of data centers being selected to write the data set based on the hash value; reading a second plurality of copies of the data set at a second subset of the plurality of data centers, including reading a version history for each of the second copies of the data set; comparing the version histories of each of the second copies of the data set; and evaluating causal relationships between the second copies of the data set based on the version histories of each of the second copies of the data set. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A computer-implemented data processing method comprising:
-
mapping responsibility for storing a plurality of data sets at a plurality of a data centers; storing copies of a data set at a subset of the plurality of data centers, including writing a version history for each of the copies of the data set; and evaluating causal relationships between copies of the data set based on the version histories for the second copies of the data set. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
-
-
48. A computer accessible medium whose contents direct a computing system to:
-
generate a hash value based on a hash key and a hash function, the hash key being associated with a data set and being applied as input to the hash function; store copies of a data set at a plurality of data centers, the plurality of data centers being selected based on the hash value; and evaluate causal relationships between copies of the data set retrieved from different ones of the plurality of data centers.
-
-
49. A computer accessible medium whose contents direct a computing system to:
-
generate a hash value based on a hash key and a hash function, the hash key being associated with a data set and being applied as input to the hash function, the hash function having a hash range comprising a range of output values for the hash function, the hash value being within the hash range, the data set being one of a plurality of data sets, the hash function mapping responsibility for storing the plurality of data sets to a plurality of data centers; generate a version history for the data set including causality information describing which data centers are associated with particular previous versions of the data set; store first copies of the data set and the version history at a first subset of the plurality of data centers responsive to a write request, the first subset of the plurality of data centers being selected to store the data set based on the hash value; read second copies of the data set at a second subset of the plurality of data centers responsive to a read request, including reading a version history for each of the second copies of the data set, the second subset of the plurality of data centers having at least one data center not in common with the first subset of the plurality of data centers; compare the version histories of each of the second copies of the data set; and evaluate causal relationships between the second copies of the data set based on the version histories of each of the second copies of the data set. - View Dependent Claims (50, 51, 52, 53, 54)
-
-
55. A computer-implemented data processing method comprising:
-
mapping responsibility for storing a plurality of data sets at a plurality of a data centers using first and second hash functions, the first hash function mapping responsibility for storing the plurality of data sets at selected ones of the plurality of data centers, and the second hash function mapping responsibility for storing the plurality of data sets at selected ones of a plurality of hosts within the selected data centers; storing copies of a data set at a subset of the plurality of data centers, including writing a version history for each of the copies of the data set; and evaluating causal relationships between copies of the data set based on the version histories for the second copies of the data set.
-
Specification