From user-return-4270-apmail-couchdb-user-archive=couchdb.apache.org@couchdb.apache.org Fri Apr 03 14:58:45 2009 Return-Path: Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: (qmail 40706 invoked from network); 3 Apr 2009 14:58:44 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 3 Apr 2009 14:58:44 -0000 Received: (qmail 16280 invoked by uid 500); 3 Apr 2009 14:58:43 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 16178 invoked by uid 500); 3 Apr 2009 14:58:43 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 16168 invoked by uid 99); 3 Apr 2009 14:58:43 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Apr 2009 14:58:43 +0000 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: local policy) Received: from [66.220.1.235] (HELO mail.proven-corporation.com) (66.220.1.235) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Apr 2009 14:58:35 +0000 Received: from [192.168.3.12] (ppp-58-8-66-55.revip2.asianet.co.th [58.8.66.55]) by mail.proven-corporation.com (Postfix) with ESMTP id 2D0F7C5B2D for ; Fri, 3 Apr 2009 21:58:13 +0700 (ICT) Message-ID: <49D62402.2010904@proven-corporation.com> Date: Fri, 03 Apr 2009 21:58:10 +0700 From: Jason Smith User-Agent: Thunderbird 2.0.0.21 (X11/20090318) MIME-Version: 1.0 To: user@couchdb.apache.org Subject: Re: how to ensure transactions over multiple documents? References: <49D60586.7090108@timparkin.co.uk> <49D61871.1090608@proven-corporation.com> <49D61D2B.7090600@proven-corporation.com> <49D62252.1050007@timparkin.co.uk> In-Reply-To: <49D62252.1050007@timparkin.co.uk> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org Tim Parkin wrote: > Jason Smith wrote: >> Hi, Andrius. I'm not familiar enough with Spring but yes, perhaps a >> synchronization mechanism would work there. >> >> Andrius Juozapaitis wrote: >>> Hey Jason, >>> >>> I can't seem to get my head around this. I use gwt + spring + jcouchdb >>> + couchdb. I'd guess that you're suggesting serializing writes to >>> couchdb in spring layer, using some kind of synchronization mechanism? >>> >>> regards, >>> Andrius > > Hi Jason.. > > I'm not familiar with your use of synchronisation here. Could you > outline how you would ensure multi update integrity using > syncronisation? I'll add it to my documentation for the bulk update > integrity stuff.. I'm not sure, as I have always relied on ACID-compliant relational DBs. If I absolutely had to have transactions implemented on CouchDB then I would probably begin by learning about well-known locking, transaction, and logging designs from a good book or other source. If I absolutely couldn't re-engineer to have all transactions occur at the document level of CouchDB--in other words, if I absolutely had to have a locking, transactional, replicating key/value store, then I would probably implement my project on top of Berkeley DB directly and just use its API for all of those features. -- Jason Smith Proven Corporation Bangkok, Thailand http://www.proven-corporation.com