主权项 |
1. A method for synchronizing data comprising:
connecting, with a computer, to a peer computer via a network connection; receiving, with the computer, a remote table from the peer computer, wherein the remote table comprises an object comprising a vector, said object further comprising a conflict flag; determining, with the computer, whether the object is present in a local table; determining, with the computer, whether the vector in the remote table and the vector in the local table match when the object is present in the local table; determining, with the computer, whether a record of a change to the object is present in a local transaction log when the vectors do not match; receiving, with the computer, data from the peer computer indicating whether a record of a change to the object is present in a remote transaction log when the vectors do not match; replacing, with the computer, the vector in the local table with the vector in the remote table and recording, with the computer, a change to the object in the local transaction log when the record of the change to the object in the local transaction log is less recent than the record of the change to the object in the remote transaction log; flagging, with the computer, the conflict flag in the local table to indicate a conflict when the vectors do not match; generating, with the computer, an alarm when the vectors do not match; changing, with the computer, the vector in the local table; and recording, with the computer, the change to the vector in the local transaction log; recording, with the computer, the record of the change to the object in the remote transaction log into the local transaction log when the vectors do not match, wherein the record of the change to the object in the remote transaction log comprises peer conflict data indicating a conflict when a change to the vector in the remote table has been made and a different change to the vector in a table associated with a third computer has been made; recording, with the computer, object data from the local table in the local transaction log when the vectors do not match; determining, with the computer, a plurality of peer computers with which to synchronize; and selecting, with the computer, one of the plurality of peer computers to which to connect; setting, with the computer, a mutex flag when the connection to the peer computer is made; and receiving, with the computer, a ready message from the peer computer. |