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
