Return-Path: Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: (qmail 69086 invoked from network); 7 Feb 2009 23:31:59 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 7 Feb 2009 23:31:59 -0000 Received: (qmail 87072 invoked by uid 500); 7 Feb 2009 23:31:59 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 87028 invoked by uid 500); 7 Feb 2009 23:31:58 -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 87017 invoked by uid 99); 7 Feb 2009 23:31:58 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 07 Feb 2009 15:31:58 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of antony.blakey@gmail.com designates 209.85.200.173 as permitted sender) Received: from [209.85.200.173] (HELO wf-out-1314.google.com) (209.85.200.173) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 07 Feb 2009 23:31:51 +0000 Received: by wf-out-1314.google.com with SMTP id 28so1457449wff.29 for ; Sat, 07 Feb 2009 15:31:30 -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=i21tqO1gq7qu8HGn8yPHrrTRxf5wGpmGetvzoPlWLzM=; b=nqMWNisiw+eZoNs48ZVvI+mZeAK2/ZEFYqxU8O+khLM9VY3sAjzRDxrwS5rU4wfuO1 k2YABhnxoJoWDRAiFWQQdnUTVpHhWiZjsUK6Trc/HaL4vNhJ2XlOgYQ46Rvu24Vsyvud anzQvy1QJPuKKOqFJvjwpmVl7YU1oouVr3Ur8= 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=YXBk0yfrfDtPjYwnn75ofmdHo8NoReroWBDH55t3+/HSALqIJi2F/7A9nBSduqEkEE UfrbmWOfciwdrLl3U4MB5PCf2AHq6lNesNDAcpOZzfuOxtxLIhH+/70tG2/28RJI9zmj IQ1zf5JDj1M9HbyYsLyRVy8pK6tvurFqckWjU= Received: by 10.142.89.13 with SMTP id m13mr1917869wfb.185.1234049490813; Sat, 07 Feb 2009 15:31:30 -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 9sm6923613wfc.23.2009.02.07.15.31.29 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sat, 07 Feb 2009 15:31:30 -0800 (PST) Message-Id: <78405882-D014-474A-9DB9-3900BA769051@gmail.com> From: Antony Blakey To: dev@couchdb.apache.org In-Reply-To: <84F66023-030A-4669-B75C-3DCC92D71A78@yahoo.com> 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: couchdb transactions changes Date: Sun, 8 Feb 2009 10:01:26 +1030 References: <84F66023-030A-4669-B75C-3DCC92D71A78@yahoo.com> X-Mailer: Apple Mail (2.930.3) X-Virus-Checked: Checked by ClamAV on apache.org On 08/02/2009, at 2:17 AM, Damien Katz wrote: > 1. Transactions don't work with replication. Replication doesn't > repeat the bulk single transaction, it just copies the documents > individually to the target replica. This means any downstream > replica can and will sees inconsistent states until replication > fully completes, not "all or nothing" states. With bidirectional > replication is even worse, as you can get edit conflicts that must > be resolved by an external process, . This presumes that the UI model doesn't distinguish between conflicts due to replication and constraint failures due to local ACID operations. In my Notes Client-like model for example: 1. Web actions such as form submits don't result in conflict - they either succeed or fail, to be retried. Users don't want to be thrown into a conflict resolution UI when they hit save on a document that they've been editing for some time. 2. Replication and normal operation are exclusive states. The replication process checks for conflicts, and won't re-enter the normal operational state until conflicts are resolved by the user, using a specialized replication-conflict UI. In my model, conflicts only ever occur due to replication, and this fact allows applications to be considerable simpler, and the user experience to be IMO vastly superior. > 2. Transactions don't work in a partitioned database without a huge > performance hit (locking + 2 phase commits). Can you share your thinking about your model for a partitioned database? For example: are there any consistency guarantees or ACID constraints (e.g. storage) within the cluster? Is there actual or effective serialization of updates on a cluster-wide basis? Are views cluster-wide? I really need to know more about your model before I can reason about this point. Antony Blakey -------------------------- CTO, Linkuistics Pty Ltd Ph: 0438 840 787 Success is not the key to happiness. Happiness is the key to success. -- Albert Schweitzer