Return-Path: Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: (qmail 29002 invoked from network); 6 Feb 2009 06:11:24 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 6 Feb 2009 06:11:24 -0000 Received: (qmail 87123 invoked by uid 500); 6 Feb 2009 06:11:18 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 87085 invoked by uid 500); 6 Feb 2009 06:11:18 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Received: (qmail 87074 invoked by uid 99); 6 Feb 2009 06:11:18 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 05 Feb 2009 22:11:18 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of antony.blakey@gmail.com designates 209.85.198.234 as permitted sender) Received: from [209.85.198.234] (HELO rv-out-0506.google.com) (209.85.198.234) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 06 Feb 2009 06:11:09 +0000 Received: by rv-out-0506.google.com with SMTP id g37so614244rvb.35 for ; Thu, 05 Feb 2009 22:10:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:from:to :in-reply-to:content-type:content-transfer-encoding:mime-version :subject:date:references:x-mailer; bh=ynKa133hx0AEpcLiKJj2ekWZglgAbDKO3lpT1EVPlFk=; b=Z/cJk0KKkfqjgdLoWh1B+TkRcUl6cnOKyW77/D44nwGIEezv7Y+SPdu2qPHzjlj/Ye Z1+D6nqWIyB8X7UpPyYpizkZcQJfeRrJ8czXWkjmTTSbQWOSgH8bMzhK52NXTWPnxipy Niy4ZVoJYH+sSUOTIvbbk2BvZjiJ19Vml01mA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:from:to:in-reply-to:content-type :content-transfer-encoding:mime-version:subject:date:references :x-mailer; b=OMPzwyD/hUWtKEcOCPRMoG6IslaKTm8fn6JwgPmRzwXcKStclFda1VwgX5jgyOCH2d MbQ03CPsezYxs9wHyTco5MCF5ivJ4BStDc5b4hvgjRdQAbkGLYMZt/MDuRBo/mV64/R+ jID2l7+wbFud2Y0mzSW5eMViI3HBm7FE0UBGs= Received: by 10.141.137.6 with SMTP id p6mr1018547rvn.133.1233900647407; Thu, 05 Feb 2009 22:10:47 -0800 (PST) Received: from ?192.168.0.16? (ppp121-45-202-232.lns10.adl2.internode.on.net [121.45.202.232]) by mx.google.com with ESMTPS id c20sm2172078rvf.8.2009.02.05.22.10.45 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 05 Feb 2009 22:10:46 -0800 (PST) Message-Id: From: Antony Blakey To: dev@couchdb.apache.org In-Reply-To: Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v930.3) Subject: Re: Transactional _bulk_docs Date: Fri, 6 Feb 2009 16:40:42 +1030 References: <11E11144-004D-45B8-A503-88FD471953D7@apache.org> <9C8B5F07-856F-495D-AD91-FCA5AB5E31FF@pobox.com> <4E507D2E-88F9-4591-B721-F4343ACA9A9E@apache.org> <393666B7-8444-4D23-A2BA-AD59652A96AE@sauria.com> <0D17D25F-7E88-4F19-96A9-62FC81E2DFC5@pobox.com> X-Mailer: Apple Mail (2.930.3) X-Virus-Checked: Checked by ClamAV on apache.org 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 deal. 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.