On 05/08/2011 18:10, Holger Protzek wrote:
Hi,

I would like to use couchdb on a android and a ios application, to store alle 
data locally in the database. So long no problem, but I would also like to sync 
these couchdb databases.

As far as I know, this can be acomplished with a central couchdb server 
instance, but I would like  to use for the syncronisation/replication a dropbox 
account.

Is this possible? or only a bad idea :-)


I think using dropbox is a bad idea.

Both Dropbox and Couchdb need exclusive access to the database files in order to make changes - which is a fundamental incompatibility.

When the local couch has made changes, dropbox cannot upload them until after couch has released the file, and that is unlikely to be before the app is closed., and may not be until much later.

When a change has to be received, couch will hold the database open, stopping dropbox from delivering the change. Once couch releases the file there is a database level conflict, and the changes to one or other databases will be lost.

Every time couch updates the database, however small the change is, dropbox will have to copy the whole of the filet. Couch may well update the database, just to record the time it last checked the indexing was current. This is at least wasteful, and if you are paying for bandwidth on your Android, expensive.

Compare that to couch replication - any conflict will be at the document level, and easy to fix. Changed data is moved as soon as it is available, and the replication process is activated - in short is under control. Only changes are moved. You can have replication working while the app is working, and it will pick up the latest changes as soon as received.

Regards

Ian



Reply via email to