Return-Path: Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: (qmail 2581 invoked from network); 8 Feb 2009 16:10:30 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 8 Feb 2009 16:10:30 -0000 Received: (qmail 96727 invoked by uid 500); 8 Feb 2009 16:10:29 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 96693 invoked by uid 500); 8 Feb 2009 16:10:29 -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 96682 invoked by uid 99); 8 Feb 2009 16:10:29 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 08 Feb 2009 08:10:29 -0800 X-ASF-Spam-Status: No, hits=1.2 required=10.0 tests=FS_REPLICA,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of paul.joseph.davis@gmail.com designates 209.85.132.247 as permitted sender) Received: from [209.85.132.247] (HELO an-out-0708.google.com) (209.85.132.247) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 08 Feb 2009 16:10:22 +0000 Received: by an-out-0708.google.com with SMTP id c37so572286anc.5 for ; Sun, 08 Feb 2009 08:10:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=595C8IaAEk+hvg/gvCSHZbAQPCItFLuk2/P8cGeCW0w=; b=UGThxnMs8GzPFXq5K/oOj0d3cYUmYdTxnBSg6mGy96QBNZ79Z+dE8vMlbx636ILULu TF5JorgVgkeNwSaAkcluOQzSDf473fyXtqpyZwhArbl2QLG2gLuA0n8GC5AaMeiXelfB u1y/EjZ9ogFGeqen/26LwzkUansrAECSaD+rs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=Hz2Wy/Dlo6MT96IarNg+r/1xkjqPVkOB9SCH1TrFxiO6x2uLaE/4VaHMYGd6s4h7vL 6c3JQJDP4b/8FD/WOdLZZBgyzZpD3ozxfBK68G4PByzsenvEXyMPn3J8Y/RVQ4h2+Jui SW02hjnK5fhn9ISGqR8cMh8q6dncfOfW1oQZ4= MIME-Version: 1.0 Received: by 10.100.13.2 with SMTP id 2mr639251anm.40.1234109401707; Sun, 08 Feb 2009 08:10:01 -0800 (PST) In-Reply-To: <7060483c0902080307y6169cc11n393df5be133d133f@mail.gmail.com> References: <5B2D5ED2-6B85-41D7-BA78-3DD4BE7AFE13@apache.org> <7060483c0902071559m1421b3bewb4bc6396124cb969@mail.gmail.com> <8286B2B4-4D0F-47CD-8AA6-6CBC872C02CF@apache.org> <7060483c0902080307y6169cc11n393df5be133d133f@mail.gmail.com> Date: Sun, 8 Feb 2009 11:10:01 -0500 Message-ID: Subject: Re: proposed replication rev history changes From: Paul Davis 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 Sun, Feb 8, 2009 at 6:07 AM, Patrick Antivackis wrote: > 2009/2/8 Damien Katz > >> You got everything right except this. It doesn't solve the problem, because >> on another node, I could have a document that looked like ["1-foo" "2-bif"]. >> That is a real edit conflict that wouldn't be caught by what I think you are >> proposing. >> > > That's right, there is a real edit conflict, but at least couchdb can > detect it based on the first revision reference that is always kept. > If you not keep the reference of the first revision you can arrive to : > BaseA : ["1-foo"] > BaseB : empty > Replication : > BaseA : ["1-foo"] > BaseB : ["1-foo"] > Life goes on : > BaseA : ["1-foo" "2-bar" "3-baz" "4-biz"] but as it's trimmed to 3 you only > keep ["2-bar" "3-baz" "4-biz"] > BaseB : ["1-foo" "2-bad" "3-baf" "4-bif"] but as it's trimmed to 3 you only > keep ["2-bad" "3-baf" "4-bif"] > New replication : > ????? same Id but no common revision, what we do ? And couch can not even > help to say if it was same doc or not at the origin. > Patrick, I'm pretty sure i see where you're coming from, but can you explain what would happen if the same document ID were created on two servers? Each server would have a different 'first rev' so who's first rev would be carried on in the future? > This is used during conflict detection to figure out if 2 tree fragments >> overlap. We don't actually store a sequential number for each revision, we >> store a revision tree of numbers, with the root of the tree being the offset >> from 0 where it was trimmed (technically it's stemmed). >> > > You are right, keep trace of the numbrer of the revision is indeed important > especially when a same origin document in updated on different nodes.But > couldn't it be replace bu a timestamp, this is sequential too and give even > more information. > > >> Sometimes people can deal with spurious conflicts. This gives you the >> option. If you don't want spurious conflicts, don't use this feature. >> >> And if you want the same document to be editted over and over, 100s of >> thousands of times, this is really the only option. The revision history >> will get too big and slow down updates tremendously. >> >> Sure but I would say it's different use cases. Record management for > examples needs to keep track of changes during a period of time. And in all > CMS/ECM i have worked on, clean up of version is done on time base more than > on number of revision having occured. > HTH, Paul Davis