Patent ID: 8019722

Claim:
A method for synchronizing a first database including first data records with a second database including second data records, the method comprising: starting a synchronization session with an electronic device on which said second database resides; requesting said first data records from said first database; setting a timer upon requesting said first data records; if said timer expires prior to receiving said first data records, temporarily disconnecting said synchronization session while awaiting receipt of said first data records for allowing transfer of data not belonging to said second database, to and from said electronic device; receiving said first data records; generating a request to restart the synchronization session after receiving said first data records; sending said request to restart the synchronization session to said electronic device; and completing said synchronization session with said electronic device after receiving said first data records; otherwise, if said first data records are received prior to expiry of said timer: receiving said first data records; and completing said synchronization session with said electronic device; receiving information representative of said second data records prior to requesting said first data records; comparing information representative of said second data records with information representative of said first data records after receiving said first data records, wherein completing said synchronization session comprises sending a request for additional information associated with said second data records; generating a group hash of said first data records after receiving said first data records and prior to comparing, wherein said sending a request for additional information associated with said second data records comprises sending a request for a record hash for each of said second data records, and wherein completing said synchronization session comprises: generating a record hash for each of said first data records; comparing each record hash from said first data records with a corresponding record hash from said second data records; and updating at least one of said first data records and said second data records.