Return-Path: X-Original-To: apmail-jackrabbit-oak-dev-archive@minotaur.apache.org Delivered-To: apmail-jackrabbit-oak-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id BE896EE32 for ; Thu, 7 Mar 2013 11:57:37 +0000 (UTC) Received: (qmail 79692 invoked by uid 500); 7 Mar 2013 11:57:37 -0000 Delivered-To: apmail-jackrabbit-oak-dev-archive@jackrabbit.apache.org Received: (qmail 79636 invoked by uid 500); 7 Mar 2013 11:57:36 -0000 Mailing-List: contact oak-dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: oak-dev@jackrabbit.apache.org Delivered-To: mailing list oak-dev@jackrabbit.apache.org Received: (qmail 79616 invoked by uid 99); 7 Mar 2013 11:57:36 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Mar 2013 11:57:36 +0000 X-ASF-Spam-Status: No, hits=-1.3 required=5.0 tests=FRT_ADOBE2,RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of mreutegg@adobe.com designates 64.18.1.187 as permitted sender) Received: from [64.18.1.187] (HELO exprod6og104.obsmtp.com) (64.18.1.187) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Mar 2013 11:57:30 +0000 Received: from outbound-smtp-2.corp.adobe.com ([193.104.215.16]) by exprod6ob104.postini.com ([64.18.5.12]) with SMTP ID DSNKUTiAlMs2GME3oSs86YMUUV2UJejDktF9@postini.com; Thu, 07 Mar 2013 03:57:09 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 r27Bv82h029402 for ; Thu, 7 Mar 2013 03:57:08 -0800 (PST) Received: from nahub01.corp.adobe.com (nahub01.corp.adobe.com [10.8.189.97]) by inner-relay-4.eur.adobe.com (8.12.10/8.12.9) with ESMTP id r27Bv7XL022877 for ; Thu, 7 Mar 2013 03:57:07 -0800 (PST) Received: from eurhub01.eur.adobe.com (10.128.4.30) by nahub01.corp.adobe.com (10.8.189.97) with Microsoft SMTP Server (TLS) id 8.3.298.1; Thu, 7 Mar 2013 03:57:07 -0800 Received: from eurmbx01.eur.adobe.com ([10.128.4.32]) by eurhub01.eur.adobe.com ([10.128.4.30]) with mapi; Thu, 7 Mar 2013 11:57:05 +0000 From: Marcel Reutegger To: "oak-dev@jackrabbit.apache.org" Date: Thu, 7 Mar 2013 11:57:03 +0000 Subject: RE: SegmentNodeStore merge operations Thread-Topic: SegmentNodeStore merge operations Thread-Index: Ac4bJrLEAGOgf+CmS0ypySnmDYqLDgAAxsAQ Message-ID: <9C0FC4C8E9C29945B01766FC7F9D3898178B1A624F@eurmbx01.eur.adobe.com> References: <9C0FC4C8E9C29945B01766FC7F9D3898178B1A6247@eurmbx01.eur.adobe.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Virus-Checked: Checked by ClamAV on apache.org > On Thu, Mar 7, 2013 at 1:08 PM, Marcel Reutegger > wrote: > > as mentioned before, I think snapshot isolation is just fined because > > in most cases it is sufficient and allows for increased concurrency. fo= r > > the cases where more consistency guarantees are needed, like > > unique UUIDs and hard references we should implement the > > validators accordingly and e.g. use a technique like materializing the > conflict. >=20 > That technique essentially serializes all commits that could possibly > violate a global invariant. not necessarily. e.g. if we take the unique UUID as an example, two sessions can proceed concurrently when they create nodes with different UUIDs, which is usually the case. the conflict only materializes when you create two nodes with the same UUID. > The SegmentMK can avoid such > synchronization points entirely at the cost of potentially "undoing" > some commits that become invalid later on. doesn't this require knowledge about the internals of the global invariant. how does the SegmentMK know what exactly it can undo? regards marcel