incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jens Alfke <j...@couchbase.com>
Subject Re: CouchDB vs RethinkDB
Date Tue, 05 Nov 2013 22:49:51 GMT

On Nov 5, 2013, at 1:13 PM, Jim Klo <jim.klo@sri.com> wrote:

> It seems to me that one could build an add-on to any database to support this I think?
 

Yes, but you need to add a significant amount of metadata to each document/record/row since
you need to track its revision tree[1].
(I am currently building exactly such an add-on so I know whereof I speak :)

> I was actually wondering how difficult it would be to build a 'generic replication api'
that leverages the same CouchDB replication protocol…  Has anyone endeavored to try anything
like this?  It seems like it should be straight forward.

There are a couple of re-implementations of the CouchDB replication protocol: PouchDB and
Couchbase Lite (in both Objective-C and Java implementations).

I have my own documentation of the replication algorithm[2] and there’s another description
that’s recently been added to the CouchDB docs.

I don’t know about “straightforward” … it’s not rocket science, especially now that
there is actual documentation of the protocol, but it’s a fairly complex engineering task,
especially the failure handling.

—Jens

[1] Gory details in the 2003 paper "The Hash History Approach for Reconciling Mutual Inconsistency”:
<http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.12.5482&rep=rep1&type=pdf>.
I don’t know for sure, but I suspect this paper was an influence on the design of CouchDB
since what it describes is very similar to the way CouchDB replication works.
[2] https://github.com/couchbase/couchbase-lite-ios/wiki/Replication-Algorithm


Mime
View raw message