couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jens Alfke <j...@couchbase.com>
Subject Re: Replication without IP connection
Date Mon, 27 Jan 2014 18:00:56 GMT

On Jan 27, 2014, at 8:30 AM, Aaron Huslage <huslage@gmail.com> 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
Mime
View raw message