Method and system for efficiently replicating data in non-relational databases
First Claim
1. A method of replicating data for a distributed database between a plurality of instances, each instance comprising one or more server computers with memory and one or more processors, the method comprising:
- tracking changes to the distributed database at a first instance by storing deltas, wherein each delta includes;
a row identifier that identifies a row having a base content value; and
a sequence identifier that specifies an order in which the delta is applied to the base content value to compute a current value for the row;
identifying a set of deltas to send to a second instance based, at least in part, on a second egress map at the first instance, wherein the second egress map specifies which combinations of row identifier and sequence identifier have been acknowledged as received at the second instance;
transmitting the identified set of deltas to the second instance;
receiving acknowledgement that the deltas in the identified set of deltas have been incorporated into the second instance; and
updating the second egress map to indicate the acknowledged deltas.
1 Assignment
0 Petitions
Accused Products
Abstract
A method replicates data between instances of a distributed database. The method tracks changes to the distributed database at a first instance by storing deltas. Each delta includes a row identifier that identifies a row having a base value, and a sequence identifier that specifies an order in which the delta is applied to the base value to compute a current value for the row. The method identifies a set of deltas to send to a second instance based in part on an egress map at the first instance, wherein the egress map specifies which combinations of row identifier and sequence identifier have been acknowledged as received at the second instance. The method then transmits the identified set of deltas to the second instance. After receiving acknowledgement that the deltas in the identified set of deltas have been incorporated into the second instance, the egress map is updated accordingly.
-
Citations
20 Claims
-
1. A method of replicating data for a distributed database between a plurality of instances, each instance comprising one or more server computers with memory and one or more processors, the method comprising:
-
tracking changes to the distributed database at a first instance by storing deltas, wherein each delta includes; a row identifier that identifies a row having a base content value; and a sequence identifier that specifies an order in which the delta is applied to the base content value to compute a current value for the row; identifying a set of deltas to send to a second instance based, at least in part, on a second egress map at the first instance, wherein the second egress map specifies which combinations of row identifier and sequence identifier have been acknowledged as received at the second instance; transmitting the identified set of deltas to the second instance; receiving acknowledgement that the deltas in the identified set of deltas have been incorporated into the second instance; and updating the second egress map to indicate the acknowledged deltas. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer system for replicating data for a distributed database between a plurality of instances, wherein each instance comprises one or more servers and each server has:
-
one or more processors; memory; and one or more programs stored in the memory, the one or more programs comprising instructions for; tracking changes to the distributed database at a first instance by storing deltas, wherein each delta includes; a row identifier that identifies a row having a base content value; and a sequence identifier that specifies an order in which the delta is applied to the base content value to compute a current value for the row; identifying a set of deltas to send to a second instance based, at least in part, on a second egress map at the first instance, wherein the second egress map specifies which combinations of row identifier and sequence identifier have been acknowledged as received at the second instance; transmitting the identified set of deltas to the second instance; receiving acknowledgement that the deltas in the identified set of deltas have been incorporated into the second instance; and updating the second egress map to indicate the acknowledged deltas. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A non-transitory computer readable storage medium storing one or more programs configured for execution by one or more processors of a computer system for replicating data for a distributed database between a plurality of instances, the one or more programs comprising instructions for:
-
tracking changes to the distributed database at a first instance by storing deltas, wherein each delta includes; a row identifier that identifies a row having a base content value; and a sequence identifier that specifies an order in which the delta is applied to the base content value to compute a current value for the row; identifying a set of deltas to send to a second instance based, at least in part, on a second egress map at the first instance, wherein the second egress map specifies which combinations of row identifier and sequence identifier have been acknowledged as received at the second instance; transmitting the identified set of deltas to the second instance; receiving acknowledgement that the deltas in the identified set of deltas have been incorporated into the second instance; and updating the second egress map to indicate the acknowledged deltas. - View Dependent Claims (18, 19, 20)
-
Specification