Patent ID: 7738503

Claim:
A method of synchronizing data elements between devices, the method comprising: receiving at a first device, from only one of multiple peer devices with which the first device is configured to synchronize, a request to synchronize data between the first device and the only one peer device; identifying data elements stored in the first device that have changed since a previous synchronization operation between the first device and the only one peer device; and transmitting, directly and solely to the only one peer device, for each of the identified data elements, a local data identifier and a corresponding change to be applied to a data element in the only one peer device that corresponds to the local data identifier; wherein identifying the data elements comprises determining whether a device table that tracks synchronization operations between the first device and other peer devices includes an entry corresponding to the only one peer device; wherein identifying the data elements further comprises analyzing a change list that, for each change that has occurred since the previous synchronization operation, stores a data identifier that identifies the corresponding data element that has changed, a change operation that identifies the manner in which the corresponding data element has changed, and a counter value that provides a temporal reference for the change; wherein analyzing the change list comprises comparing the counter value of each entry in the change list to a counter value associated with an entry in the device table that corresponds to the only one peer device; further comprising updating the counter value associated with the entry in the device table upon completion of a synchronization event between the first device and the only one peer device; and further comprising processing the change list to determine whether any entries in the change list can be deleted, wherein processing the change list comprises comparing the counter value of each entry in the change list to a counter value associated with the entry in the device table that corresponds to the only one peer device.