On Jan 27, 2014, at 8:30 AM, Aaron Huslage <[email protected]> wrote:

> In this scenario, there is no interactive communication between nodes.
> Everything is batch file copies. I need a way to do a CouchDB replication
> using only file transfers and cron/inotify jobs.

There isn't one. CouchDB replication is an interactive process where the 
servers exchange requests and responses. For example, in a push replication the 
source server first sends the target a list of new revisions, and the target 
responds with a list of those that it doesn't already have, as well as the 
latest revisions that it has of those documents. Then the source knows which 
revisions and attachments it should send.

It's possible a bulk/non-interactive mode could be added to the replicator. The 
source server would just package up all the new revisions into a file, and the 
target server could read that file and ignore the revisions it already has. But 
that's not something that's been designed or implemented, to my knowledge.

You could consider using a distributed revision-control system such as Git or 
Mercurial instead of CouchDB; those have commands to package up changes into 
files exactly as described above. (They're also much more bandwidth-efficient 
than CouchDB since they use delta-compression on file changes.) Your app would 
work with a file tree instead of a database, though, so you'd probably have to 
rewrite a lot of code.

—Jens

Reply via email to