Patent ID: 8078577

Claim:
A computer-implemented method for bi-directional synchronization of user data files between a client and at least one server, wherein a user data file includes a session file, an index file and a data file, comprising: determining if a match exists between a local session file and a reflection session file, wherein the local session file is maintained by the client and the reflection session is maintained by the at least one server; when the local session file and the reflection session file match, performing: synchronizing contents of a user data file maintained by the client with contents of a user data file maintained by the at least one server, when the user data file in the client includes more records than the user data file in the at least one server; and synchronizing contents of a user data file maintained by the at least one server with contents of a user data file maintained by the client by creating a new session record including a session identifier (ID) and an offset value; creating a new local index file to include the contents of a reflection session file respective to a last session; creating a new local session file to include contents of the new session record; and offline copying data blocks in from a data file maintained by the server to a data file maintained by the client, said synchronization with the contents of the user data file maintained by the client is performed, when the user data file in the client includes less records than the user data file in the at least one server.