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 B3555990C for ; Mon, 6 Feb 2012 13:02:51 +0000 (UTC) Received: (qmail 79418 invoked by uid 500); 6 Feb 2012 13:02:51 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 79391 invoked by uid 500); 6 Feb 2012 13:02:50 -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 79384 invoked by uid 99); 6 Feb 2012 13:02:50 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 06 Feb 2012 13:02:50 +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; Mon, 06 Feb 2012 13:02:41 +0000 Received: from outbound-smtp-2.corp.adobe.com ([193.104.215.16]) by exprod6ob113.postini.com ([64.18.5.12]) with SMTP ID DSNKTy/PXJ0eA9TNW1G3SoCVgRsLyze1p08s@postini.com; Mon, 06 Feb 2012 05:02:21 PST Received: from inner-relay-1.corp.adobe.com (inner-relay-1.sea.adobe.com [153.32.1.51]) by outbound-smtp-2.corp.adobe.com (8.12.10/8.12.10) with ESMTP id q16D2JR8007726 for ; Mon, 6 Feb 2012 05:02:19 -0800 (PST) Received: from nacas02.corp.adobe.com (nacas02.corp.adobe.com [10.8.189.100]) by inner-relay-1.corp.adobe.com (8.12.10/8.12.10) with ESMTP id q16D2IMM002762 for ; Mon, 6 Feb 2012 05:02:18 -0800 (PST) Received: from eurhub01.eur.adobe.com (10.128.4.30) by nacas02.corp.adobe.com (10.8.189.100) with Microsoft SMTP Server (TLS) id 8.3.192.1; Mon, 6 Feb 2012 05:02:18 -0800 Received: from susi.local (10.136.141.226) by eurhub01.eur.adobe.com (10.128.4.111) with Microsoft SMTP Server id 8.3.192.1; Mon, 6 Feb 2012 13:02:17 +0000 Message-ID: <4F2FCF5A.3000109@apache.org> Date: Mon, 6 Feb 2012 13:02:18 +0000 From: =?ISO-8859-1?Q?Michael_D=FCrig?= User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:10.0) Gecko/20120129 Thunderbird/10.0 MIME-Version: 1.0 To: Subject: Re: [jr3 microkernel] Change log consolidation References: In-Reply-To: Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit On 6.2.12 11:30, Thomas Mueller wrote: > Hi, > >> An alternative that AFAICT achieves the same effect in perhaps an >> easier to understand manner would be to use the state of the content >> tree instead of changes to that state as the key concept. Instead of a >> commit(changeLog, baseState) method we could have a commit(newState, >> baseState) method for persisting changes. > > That's what I implemented for my first prototype (sandbox/jackrabbit-j3). > >> PS. You might already have discussed and dismissed this idea off-list. >> If yes, what was the deal-breaker? > > I think the deal breaker is the API, which currently uses the 'diff' style > instead of the 'absolute target state' style. Yes that's certainly another issue. > For me, it doesn't matter. Either way is fine (diff style or sending the > full state). The diff style requires a bit less data to be transferred I > guess. > > However, I personally wouldn't consolidate the change log currently. I > don't think it's necessary, and for the normal case (which is _not_ a > randomly generated change log, but a manually generated one) I don't think > it will help a lot. Also, I don't currently see that would help a lot > resolving conflicts. The conflicts it can resolve seem to be weird cases > (my opinion, from what I know so far), which are not that important to be > resolved. Why would somebody move a node twice? If he does, it's his > problem (the applications problem). And why would we want to avoid a > conflict if somebody deletes the intermediate node in the meantime? What I > mean is, failure to merge such a case would be just fine. Maybe there are > other, more important cases that I currently don't know about. The problem here is that everyone on the list has his one favourite set of normal and weird cases... > I would probably not consolidate the change log, because it simpler not > to. Unless it turns out to be a problem in practice (not just in theory). > Still, it is an interesting idea. That means designing a potentially broken system ("Unless it turns out to be a problem in practice") right from the start... > > Regards, > Thomas >