Syncing data is a lot more complicated than it might seem when the database is stored remotely as a complete file.
Here is how it works.
When sync is started, a copy of your database is made in a temporary location.
Each sync provider is then queried and if data has changed, the complete database is downloaded from each one.
Once we have all of the databases on your device, each one is opened and record by record they are compared. Last change wins. If a record from the remote database was modified later than your local data, that record is copied to your temporary database.
This process happens for every database downloaded until the temp database contains all of the changes.
The temp database is then uploaded back to each provider.
As a final step, your current database is renamed (to enable a one time undo*), the demo database is renamed and replaces your original database and all changes are then available within the app.
Syncing happens automatically approximately every hour. Additionally, a Sync is performed shortly after closing the app and can also be initiated manually.
Note that the more Sync providers you enable, the longer each sync will take but as your data is synced to multiple locations, you are less likely to have out of data data due to failed sync operations.
You can see what operations a Sync Provider performed by pressing the icon on the Sync screen.
You should periodically check this log to ensure your data is being synced sucessfully as certain actions could cause sync to stop working.
For example, if you delete the database on your cloud provider.
* Undo Sync
After a successful Sync, your active database is renamed before the synced database takes its place. This enables a "one-shot" undo function.
You can restore the database to the point in time before the last Sync by choosing "Restore Lockr" from the menu which is accessed by the menu button on the login screen.