couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Antony Blakey <>
Subject Re: Transactional _bulk_docs
Date Fri, 06 Feb 2009 06:10:42 GMT
I'm not keen on prolonging this agony, but I am going to respond to  
these points.

On 06/02/2009, at 3:43 PM, Paul Davis wrote:

> A brief history:
> 1. The mythical IRC conversation on 'removing' the feature: (roughly  
> quoted)

It wasn't mythical - Damien has stated that is what happened. Why do  
you use the word 'mythical'?

> Damien: I don't think we can support transactional commits in the face
> of multiple nodes. We can do ACID writes to disk so that updates
> aren't lost, but checking with an unbounded number of servers that a
> commit doesn't conflict isn't feasible.

Not unbounded. Look at Scalaris. And in any case, what exactly is this  
multi-node mode? Why compromise the API for something that is so  
ephemeral that conflict management isn't feasible? What IS feasible?  
View consistency? MVCC semantics. If I write a document and then read  
it, do I maybe see an earlier document. What about in the view?  
Because if views are going to have a consistency guarantee wrt.  
writes, then that looks to me like distributed MVCC. Is this not 2PC?  
And if views aren't consistent, then why bother? Why not have a client  
layer that does content-directed load balancing.

Regardless, this discussion is also about whether supporting a single- 
node style of operation is useful, because CouchDB had an ACID  
_bulk_docs. IMO it's also about, the danger/cost of abstracting over  
operational models with considerably different operational  
characteristics - c.f. transparent distribution in object models.

> Everyone else: That's pretty reasonable.

Everyone == ? Damien told me explicitly that this change was decided,  
and that decision was made on IRC.

What's with this revisionist history Paul?

> 2. A patch was applied to trunk that made commits to CouchDB
> optionally ACID compliant (which gives users the traditional
> speed/safety choice) as well as removing the atomic 'all or none'
> semantics.

If it's not all or none then it's not ACID with respect to the user  
data model. Conflicts are a metadata feature.

> Near as I can tell Damien has been nose to the grindstone for quite
> some time on this very specific part of the api. Would I like more
> status updates and ideas on where he's heading? Of course. Do I trust
> him? Yes. Is the community as a whole going to blindly accept some
> asinine patch that has no value that removes a crap load of
> functionality? No.

Is the PMC going to accept some massive patch that has significant  
benefit, but as a side effect removes a key feature, for no good  
technical reason? That's what is happening. Damien's patches are  
neither asinine, nor of no value. On IRC Chris Anderson noted in  
response to a question that Damien has a heap of changes coming, but  
that we (the community) have to wait and see what they are.

> I tend to think that the 'discussion' that everyone keeps referring to
> hasn't even occurred yet. I look at the patch that was applied that
> caused this as an unfortunate early release.

And if commits don't represent some sort of decision, what are they? I  
saw the patch, thought WTF?, asked about it, and was eventually told  
that yes, a decision had been made that the ACID API was being removed.

> Admissions first: I have no money riding on this issue. Whether or not
> CouchDB has transactional _bulk_docs worries me not at all. Though, I
> can't say that I have that much sympathy for a business model that
> relies on an open source project's trunk to remain compatible with
> required assumptions.

Having an ACID guarantee explicitly stated, and then removed with no  
replacement, is not a 'required assumption' on my part. ACID is a big  

And in any case, my 'business model' response is to fork CouchDB,  
which is the appropriate response. But still, do you want people to  
use this project or not? Promote it or not? What message does that send?

> Reductio ad absurdum:

That's about right.

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

Don't anthropomorphize computers. They hate that.

View raw message