Return-Path: X-Original-To: apmail-jackrabbit-dev-archive@www.apache.org Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 56BA5922C for ; Wed, 29 Feb 2012 16:46:01 +0000 (UTC) Received: (qmail 96291 invoked by uid 500); 29 Feb 2012 16:46:01 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 96255 invoked by uid 500); 29 Feb 2012 16:46:01 -0000 Mailing-List: contact dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list dev@jackrabbit.apache.org Received: (qmail 96247 invoked by uid 99); 29 Feb 2012 16:46:01 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 29 Feb 2012 16:46:01 +0000 X-ASF-Spam-Status: No, hits=-1.6 required=5.0 tests=RCVD_IN_DNSWL_MED,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [64.18.1.31] (HELO exprod6og113.obsmtp.com) (64.18.1.31) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 29 Feb 2012 16:45:54 +0000 Received: from outbound-smtp-2.corp.adobe.com ([193.104.215.16]) by exprod6ob113.postini.com ([64.18.5.12]) with SMTP ID DSNKT05WLCm1i10vqNJ/xEombxKzMQEb1dt/@postini.com; Wed, 29 Feb 2012 08:45:33 PST Received: from inner-relay-4.eur.adobe.com (inner-relay-4b [10.128.4.237]) by outbound-smtp-2.corp.adobe.com (8.12.10/8.12.10) with ESMTP id q1TGjWN3012667 for ; Wed, 29 Feb 2012 08:45:32 -0800 (PST) Received: from nacas01.corp.adobe.com (nacas01.corp.adobe.com [10.8.189.99]) by inner-relay-4.eur.adobe.com (8.12.10/8.12.9) with ESMTP id q1TGjUPm028501 for ; Wed, 29 Feb 2012 08:45:31 -0800 (PST) Received: from eurcas01.eur.adobe.com (10.128.4.27) by nacas01.corp.adobe.com (10.8.189.99) with Microsoft SMTP Server (TLS) id 8.3.192.1; Wed, 29 Feb 2012 08:45:31 -0800 Received: from susi.local (10.136.129.112) by eurcas01.eur.adobe.com (10.128.4.111) with Microsoft SMTP Server id 8.3.192.1; Wed, 29 Feb 2012 16:45:29 +0000 Message-ID: <4F4E5628.7030707@apache.org> Date: Wed, 29 Feb 2012 16:45:28 +0000 From: =?ISO-8859-1?Q?Michael_D=FCrig?= User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2 MIME-Version: 1.0 To: Subject: Re: [jr3 trade consistency for availability] References: <4F4527A9.6060507@adobe.com> <9C0FC4C8E9C29945B01766FC7F9D389816E3A56CC4@eurmbx01.eur.adobe.com> <4F462659.4080102@apache.org> <4F4CE0D9.6020900@gmail.com> <9C0FC4C8E9C29945B01766FC7F9D389816E3CC8F39@eurmbx01.eur.adobe.com> <2C4F1A4A-13EF-4B2A-8872-5C48872AF5BA@adobe.com> <9C0FC4C8E9C29945B01766FC7F9D389816E3CC90D6@eurmbx01.eur.adobe.com> <1DB6248A-8355-4E42-85D8-8EBF7AB55EC5@adobe.com> In-Reply-To: <1DB6248A-8355-4E42-85D8-8EBF7AB55EC5@adobe.com> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org On 29.2.12 16:30, Dominique Pfister wrote: > Hi, > > On Feb 29, 2012, at 2:52 PM, Marcel Reutegger wrote: > >> Hi, >> >>> On Feb 28, 2012, at 3:54 PM, Marcel Reutegger wrote: >>> >>>> I'd solve this differently. Saves are always performed on one >>>> partition, >>>> even if some of the change set actually goes beyond a given partition. >>>> this is however assuming that our implementation supports dynamic >>>> partitioning and redistribution (e.g. when a new cluster node is added >>>> to the federation). in this case the excessive part of the change set >>>> would eventually be migrated to the correct cluster node. >>> >>> I'd like to better understand your approach: if we have, say, >>> Partitions P and Q, containing subtrees /p and /q, respectively, then >>> a save that spans elements in both /p and /q might be saved in P >>> first, and later migrated to Q? What happens if this later migration >>> leads to a conflict? >> >> I guess this would be the result of a concurrent save when there's >> an additional conflicting save under /q at the same time. good >> question... CouchDB solves this with a deterministic algorithm >> that simply picks one revision as the latest one and flags the conflict. >> maybe we could use something similar? > > So, this could result in a save on P that initially succeeds but > ultimately fails, because the concurrent one on Q wins? I'm wondering > how this could be reflected to an MK client: if a save corresponds to a > MK commit call that immediately returns a new revision ID, would you > suggest that the mentioned algorithm adds a "shadow" commit (leading to > a new head revision ID) on P, that effectively reverts the conflicting > save on P? That's an idea I mentioned earlier already [1]: make cluster sync transparent to JCR sessions. That is, any modification required by the sync, should look like just another session operation to JCR clients (i.e. there should also be observation events for such changes). Michael [1] https://docs.google.com/presentation/pub?id=131sVx5s58jAKE2FSVBfUZVQSl1W820_syyzLYRHGH6E&start=false&loop=false&delayms=3000#slide=id.g4272a65_0_39 > > Dominique > >> >> regards >> marcel >> >> >