Patent ID: 8380659

Claim:
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: identifying a first instance of the distributed database at a first geographic location; identifying a second instance of the distributed database at a second geographic location; tracking changes to the distributed database at the first instance by storing deltas, each delta having a row identifier that identifies a piece of data modified, a sequence identifier that specifies an order in which the delta is applied to the second instance, and an instance identifier that specifies an instance where the delta was created; determining which deltas are to be sent to the second instance using 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; building a second transmission matrix for the second instance that identifies deltas that have not yet been acknowledged as received at the second instance; transmitting deltas identified in the second transmission matrix to the second instance; receiving acknowledgement that transmitted deltas have been incorporated in the second instance; and updating the second egress map to indicate acknowledged deltas.