Patent ID: 8688634

Claim:
A computer-implemented method for providing convergence of multiple copies of a table to a same state in a database system, the database system including a plurality of nodes each having a corresponding copy of the table, the method comprising: for each row of each table copy, associating and storing a timestamp in the table copy with the row, the timestamp indicating a time when a change to the row has occurred; associating and storing a copy identification in the table copy with the row, the copy identification being an identifier that uniquely identifies the table copy to which the row belongs; and associating and storing propagation controls in the table copy with the row, the propagation controls indicating whether a change to the row should be communicated to other table copies based at least in part on the timestamp of the change or the copy identification associated with the row, wherein the propagation controls comprise a delete label and a conflict label, wherein the delete label indicates that a row delete in a given table copy is not to be communicated to other table copies in the database system; asynchronously capturing a change to a row of a given table copy from a database recovery log, the database recovery log containing an entry that describes the change to the row of the given table copy; determining that the captured change to the row of the given table copy is to be communicated to other table copies in the database system, the determination being made in accordance with the indication of the propagation controls associated with the changed row of the given table copy; communicating the captured change to the other table copies in the database system; and applying the communicated change to the other table copies in the database system, wherein each table copy in the database system converges to a same state, wherein applying the communicated change includes: detecting a conflict for the communicated change with a row of a target table copy, the target table copy being a table copy among the other table copies in the database system at which changes are to be replicated; determining a priority for the communicated change responsive to the conflict being detected; and changing the row of the target table copy in accordance with the detected conflict and the determined priority for the communicated change by controlling propagation of the change applied to the target table copy, by insuring convergence of each table copy in the database system to the same state, and by installing the communicated change into the target table copy.