Data replication framework
First Claim
Patent Images
1. A method of dynamically routing requests of data across a plurality of hosts, the method comprising:
- analyzing queries for data at a plurality of hosts, wherein individual hosts have a replicated copy of a data store;
determining frequency of queries for data among the plurality of hosts;
determining distribution of queries for data based on the determined frequency of queries for data among the plurality of hosts;
generating an insertion index for data requests based on the determined distribution of queries for data;
generating a list of dividers based on a count of the plurality of hosts, wherein the list of dividers is associated with a comparison key, and wherein the list is regenerated when the count of the plurality of hosts is changed; and
routing data requests based on the insertion index and the list of dividers wherein routing data requests includes;
determining a size of the insertion index and a size of the list of dividers;
comparing the size of the insertion index to the size of the list of dividers;
routing the request to a last host added to the plurality of hosts in response to determining that the size of the insertion index is the same as the size of the list of dividers;
comparing a request key associated with the data request to the comparison key in response to determining that the size of the insertion index is different than the size of the list of dividers;
wherein the method is performed on a computing device comprising a processor and memory.
1 Assignment
0 Petitions
Accused Products
Abstract
Generally described, the present disclosure is directed to an eventually consistent replicated data store that uses, for its underlying storage, a computer software library that provides a high-performance embedded database for data. The replicated data store employs a plurality of hosts interconnected to one another, allowing for writes to any host and full awareness of membership across all hosts. With the data replication framework disclosed herein, various modes are allowed to be built up on top of the core system.
-
Citations
19 Claims
-
1. A method of dynamically routing requests of data across a plurality of hosts, the method comprising:
-
analyzing queries for data at a plurality of hosts, wherein individual hosts have a replicated copy of a data store; determining frequency of queries for data among the plurality of hosts; determining distribution of queries for data based on the determined frequency of queries for data among the plurality of hosts; generating an insertion index for data requests based on the determined distribution of queries for data; generating a list of dividers based on a count of the plurality of hosts, wherein the list of dividers is associated with a comparison key, and wherein the list is regenerated when the count of the plurality of hosts is changed; and routing data requests based on the insertion index and the list of dividers wherein routing data requests includes; determining a size of the insertion index and a size of the list of dividers; comparing the size of the insertion index to the size of the list of dividers; routing the request to a last host added to the plurality of hosts in response to determining that the size of the insertion index is the same as the size of the list of dividers; comparing a request key associated with the data request to the comparison key in response to determining that the size of the insertion index is different than the size of the list of dividers; wherein the method is performed on a computing device comprising a processor and memory. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computing system for dynamically routing requests of data across a plurality of hosts, the system comprising:
-
a plurality of hosts configured to receive queries for data, wherein individual hosts have a replicated copy of a data store; a query analysis component configured to determine a distribution of the queries for data received based on a frequency of queries for data among the plurality of hosts; and a router configured to route a data request to at least one of the plurality of hosts based on an insertion index of a request key and a list of dividers, wherein the list of dividers is associated with a comparison key and wherein the router routes a data request by; determining a size of the insertion index and a size of the list of dividers; comparing the size of the insertion index to the size of the list of dividers; routing the request to a last host added to the plurality of hosts in response to determining that the size of the insertion index is the same as the size of the list of dividers; comparing a request key associated with the request for data to the comparison key in response to determining that the size of the insertion index is different than the size of the list of dividers. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A method of dynamically routing requests of data across a plurality of hosts, the method comprising:
-
analyzing queries for data at a plurality of hosts, wherein individual hosts have a replicated copy of a data store; determining distribution of queries for data based on a frequency of queries of data among the plurality of hosts; and routing requests for data based on an insertion index of a request key and a list of dividers, wherein the list of dividers is associated with a comparison key and wherein routing requests includes; determining a size of the insertion index and a size of the list of dividers; comparing the size of the insertion index to the size of the list of dividers; routing the request to a last host added to the plurality of hosts in response to determining that the size of the insertion index is the same as the size of the list of dividers; comparing a request key associated with the request for data to the comparison key in response to determining that the size of the insertion index is different than the size of the list of dividers; wherein the method is performed on a computing device comprising a processor and memory. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
Specification