Return-Path: Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: (qmail 10627 invoked from network); 13 Mar 2009 17:54:03 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 13 Mar 2009 17:54:03 -0000 Received: (qmail 7001 invoked by uid 500); 13 Mar 2009 17:54:02 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 6961 invoked by uid 500); 13 Mar 2009 17:54:02 -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 6950 invoked by uid 99); 13 Mar 2009 17:54:02 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 13 Mar 2009 10:54:02 -0700 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 jchris@gmail.com designates 209.85.132.243 as permitted sender) Received: from [209.85.132.243] (HELO an-out-0708.google.com) (209.85.132.243) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 13 Mar 2009 17:53:53 +0000 Received: by an-out-0708.google.com with SMTP id c37so1025126anc.5 for ; Fri, 13 Mar 2009 10:53:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:date:x-google-sender-auth:message-id:subject:from:to :content-type:content-transfer-encoding; bh=1AQG43buoaNrqRy7NC5edlMyvr2U+p/Z22wKLBhFCfQ=; b=SOFCLGjmBeRJ1zpce8+bTZtnVbTk9h2AZhsyX4DG1GIQgmfyUzjSv1fBpJo0Lm+uzN +iZliw7BYXtyeXBpfcbsF86QDhMt0hNliSdN6gy+13agnmNqj68jbpO4SXPpAszLhpYi sF8gX81wCNyRLytOYMV4yYPomHicz6RbZ4UoQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type :content-transfer-encoding; b=AgdMCPTuw7vL0gYzdd6ywecQP/Dnj4jQHmpi/rfhKCol7sO5jg0xOQCtzW2YLvG6PD GvUG3o7L5ptdfPdWdHHMYSrODc4gALdcOGpVRZ1Y1UweSKJTCFKpKWd6cjpyjUQ+1ssY GGntqgfm9XaSnmbuMt69o8TxFY0T+h1xoqfKk= MIME-Version: 1.0 Sender: jchris@gmail.com Received: by 10.142.50.6 with SMTP id x6mr707082wfx.270.1236966811707; Fri, 13 Mar 2009 10:53:31 -0700 (PDT) In-Reply-To: <0E7BBB9C-CEEC-4DEC-9BF4-8B3D420A9974@gmail.com> References: <49B8FD3F.4050706@timparkin.co.uk> <49B9882F.6050307@timparkin.co.uk> <49BA299D.6090606@timparkin.co.uk> <49BA2D42.7000004@timparkin.co.uk> <49BA77DF.6000405@timparkin.co.uk> <342590F1-BCEA-4FF0-A430-D8FF25E30C97@gmail.com> <0E7BBB9C-CEEC-4DEC-9BF4-8B3D420A9974@gmail.com> Date: Fri, 13 Mar 2009 10:53:31 -0700 X-Google-Sender-Auth: f2bde5bb326ed132 Message-ID: Subject: Re: Bulk Docs - 'remove changes so far' Functionality? From: Chris Anderson To: dev@couchdb.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org On Fri, Mar 13, 2009 at 10:42 AM, Wout Mertens wrote: > On Mar 13, 2009, at 5:47 PM, Chris Anderson wrote: > >> On Fri, Mar 13, 2009 at 9:41 AM, Wout Mertens >> wrote: >>> >>> On Mar 13, 2009, at 4:12 PM, Tim Parkin wrote: >>> >>>> I think all bulk doc changes were written somewhere and then only >>>> switched in once the last was successful.. so no locking. >>> >>> But then if a normal write comes in while the bulk doc is being >>> processed, >>> how did it know to fail that write/fail the bulk? >>> >> >> CouchDB updates are serialized, so if a normal write comes in during a >> bulk update, the normal write waits. Of course, all this is different >> if the bulk update is spread across multiple nodes. Crossing that >> bridge is part of the motivation for limiting the feature to skip >> conflict checking. > > Again out of curiosity, how would the spreading work? The bulk write would > go to ibrowse, which would then contact multiple couches and give each of > them some work? > Something like that. Maybe leave out ibrowse / http all together and communicate using erlang messages. Alternatively, save the update to a local temporary database, ack the client, and then replicate the updates to the proper home. Chris -- Chris Anderson http://jchris.mfdz.com