couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Newson <>
Subject Re: Replication and forms of weak consistency
Date Mon, 16 Feb 2009 22:56:56 GMT
On Mon, Feb 16, 2009 at 10:37 PM, Antony Blakey <> wrote:
> On 16/02/2009, at 9:45 PM, Robert Newson wrote:
>> I agree it may not be generally practical to carry a version vector in
>> the client (specifically in a 2k cookie) but it may be practical in my
>> specific case.
> The problem is that the replica group you use from your client may not be
> able to achieve the Monotonic Writes guarantee even at the steady state
> within that group e.g. you would have to cover every replica that had ever
> been replicated from.

I follow you now, I think. I'm guilty of projecting my expected
deployment configuration (namely, many external clients accessing a
managed cluster of couchdb servers). Where replicas are unmanaged (or
simply much more numerous), I can see that the session guarantee layer
becomes problematic, perhaps impossible. For me, it suffices that each
client sees some reasonable view while they interact (they can
'always' read documents that they've just written, etc) and that
replicas frequently synchronize with each other (in some pair-wise
fashion) to increase durability.

> The point of doing it in the server is that every node guarantees Monotonic
> Writes, and you never have to worry about failing because you can't achieve
> it. Given the current server implementation, IMO it's more likely than not
> that you would fail.

This comment leaves me puzzled which is entirely the fault of my poor,
tired brain. I've yet to see a simple enough description of couchdb's
planned multi-node semantics or your proposed alternative to make any
lucid comment, though I would very much like to. My application uses
paxos to achieve consistent replicas with all its attendant pain
(complexity and consistency over availability).

> Furthermore, this isn't a simple problem, and pushing it to the client just
> leads to multiple complicated client implementations, IMHO.
>> I don't (yet) see why partial replication is a
>> particular problem, though.
> Because achieving the Monotonic Writes guarantee is more difficult with
> Partial Replication, and requires special support in the server. There's no
> indication that PRACTI can be implemented as a client wrapper.

I read the Bayou paper and the session guarantees paper, I guess I'll
read the PRACTI one also... :)

> Antony Blakey
> -------------
> CTO, Linkuistics Pty Ltd
> Ph: 0438 840 787
> If you pick up a starving dog and make him prosperous, he will not bite you.
> This is the principal difference between a man and a dog.
>  -- Mark Twain

View raw message