Patent ID: 8868500

Claim:
A method of synchronizing data between a pair of devices comprising: receiving a knowledge vector from a first device of the pair of devices, the knowledge vector identifying data items and latest changes to the data items known to the first device; comparing, at a second device of the pair of devices, the received knowledge vector with a local knowledge vector for changes that are known or unknown to the first device; generating a list of changes unknown to the first device based on result of the comparing, the list of changes unknown to the first device including records of changes that appear in the local knowledge vector and do not appear in the received knowledge vector; delaying sending to the first device the list of changes that are unknown to the first device as change metadata, the change metadata including one or more identifiers respectively corresponding to one or more data items that changed, and one or more identifiers respectively corresponding to one or more changes each occurred to a respective data item, the metadata usable by the first device to determine, at a later time, which of the one or more changes to request from the second device; and delaying sending the one or more data items, including the one or more changes to the one or more data items that were unknown by the first device, to the first device until after receiving a request from the first device for the one or more data items identified in the change metadata, wherein the first device delays sending the request until a user provides input with respect to the one or more data items.