couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Antony Blakey <>
Subject Re: Replication and forms of weak consistency
Date Tue, 17 Feb 2009 14:07:53 GMT

On 18/02/2009, at 12:11 AM, Paul Davis wrote:

> I'm a bit confused on which you're referring to here. I've started
> reading through the Bayou articles more thoroughly to see what type of
> magic they're using and its surprisingly similar to CouchDB's model.
> So surprisingly that I accused Damien of working for PARC when he was
> 12 and not telling anyone.

We all know that CouchDB is modeled on Notes. I don't think Damien  
needs to have worked at PARC :)

And Notes was around before Bayou - Bayou and PRACTI are successors,  
so similarities are understandable. Still, I think the differences are  

> That said, there are some key differences that CouchDB doesn't (and
> IMO, shouldn't) succumb to. First off is that the Bayou model requires
> a 'primary' master. This master is used to generate the list of stable
> writes. (A write must become stable before getting tossed from the
> write log). There's also  quite a bit of info in that creating
> replicas requires contacting another replica so that the replica
> creation time can be logged.

That can be deferred to the first replication.

> And each machine gets an ID based on who
> it replicated from, and worse, the sequence of replica creations can
> have adverse run time effects.

I presume you're referring to the recursive replica ids. It's  
certainly true that the Bayou model has run time implications.  
Interesting problems to work on to optimize performance. Excellent!

> The Bayou model (depending on usage characteristics) would also
> generally use more bandwidth even in its best case operation.

I disagree on this, but no point arguing about it now.

> And it has a failure mode that requires making a copy of the *entire*
> database (when trying to replicate from a node who has removed too
> much of it's log).

As does the first replication in CouchDB. One benefit of the Bayou  
model is that deltas can be used when recreating the initial state  
because the copy operation is distinguished from normal replication.  
OTOH, a copy impacts availability on the target.

Remember that Couch has a total failure mode wrt weak consistency  
guarantees provided by Bayou/PRACTI, so it's not a fair comparison.

> It also needs code to be part of CouchDB.

It's obvious to me that this isn't going into CouchDB, so I think it's  
appropriate I start a new project. Luckily all the storage/map/reduce/ 
indexing etc has been done, and I can keep the API :) I'm setting  
sail, good luck to us all, explorers in this Brave New World!

Antony Blakey
CTO, Linkuistics Pty Ltd
Ph: 0438 840 787

Every task involves constraint,
Solve the thing without complaint;
There are magic links and chains
Forged to loose our rigid brains.
Structures, structures, though they bind,
Strangely liberate the mind.
   -- James Fallen

View raw message