Return-Path: X-Original-To: apmail-couchdb-user-archive@www.apache.org Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E6F7F10F21 for ; Tue, 5 Nov 2013 22:50:20 +0000 (UTC) Received: (qmail 59442 invoked by uid 500); 5 Nov 2013 22:50:19 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 59364 invoked by uid 500); 5 Nov 2013 22:50:19 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 59356 invoked by uid 99); 5 Nov 2013 22:50:19 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Nov 2013 22:50:19 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=RCVD_IN_DNSWL_NONE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of jens@couchbase.com designates 206.225.164.30 as permitted sender) Received: from [206.225.164.30] (HELO EXHUB020-3.exch020.serverdata.net) (206.225.164.30) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Nov 2013 22:50:15 +0000 Received: from EXVMBX020-1.exch020.serverdata.net ([169.254.4.151]) by EXHUB020-3.exch020.serverdata.net ([206.225.164.30]) with mapi; Tue, 5 Nov 2013 14:49:53 -0800 From: Jens Alfke To: "user@couchdb.apache.org" Date: Tue, 5 Nov 2013 14:49:51 -0800 Subject: Re: CouchDB vs RethinkDB Thread-Topic: CouchDB vs RethinkDB Thread-Index: Ac7aeVdKcweA5MCVTfCnJcuqed2/vQ== Message-ID: References: <1C1EDFED-1208-496D-AFD3-220ED5A8400E@sri.com> In-Reply-To: <1C1EDFED-1208-496D-AFD3-220ED5A8400E@sri.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Virus-Checked: Checked by ClamAV on apache.org On Nov 5, 2013, at 1:13 PM, Jim Klo wrote: > It seems to me that one could build an add-on to any database to support = this I think? =20 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 re= plication api' that leverages the same CouchDB replication protocol=85 Has= anyone endeavored to try anything like this? It seems like it should be s= traight forward. There are a couple of re-implementations of the CouchDB replication protoco= l: PouchDB and Couchbase Lite (in both Objective-C and Java implementations= ). I have my own documentation of the replication algorithm[2] and there=92s a= nother description that=92s recently been added to the CouchDB docs. I don=92t know about =93straightforward=94 =85 it=92s not rocket science, e= specially now that there is actual documentation of the protocol, but it=92= s a fairly complex engineering task, especially the failure handling. =97Jens [1] Gory details in the 2003 paper "The Hash History Approach for Reconcili= ng Mutual Inconsistency=94: . I don=92t 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-Algori= thm