Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 93293 invoked from network); 24 May 2006 17:54:42 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 24 May 2006 17:54:42 -0000 Received: (qmail 17328 invoked by uid 500); 24 May 2006 17:54:40 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 17296 invoked by uid 500); 24 May 2006 17:54:40 -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 17287 invoked by uid 99); 24 May 2006 17:54:40 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 24 May 2006 10:54:40 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: domain of davek@us.ibm.com designates 32.97.110.151 as permitted sender) Received: from [32.97.110.151] (HELO e33.co.us.ibm.com) (32.97.110.151) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 24 May 2006 10:54:38 -0700 Received: from d03relay04.boulder.ibm.com (d03relay04.boulder.ibm.com [9.17.195.106]) by e33.co.us.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id k4OHsHcM019851 for ; Wed, 24 May 2006 13:54:17 -0400 Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by d03relay04.boulder.ibm.com (8.12.10/NCO/VER6.8) with ESMTP id k4OHsFGa139036 for ; Wed, 24 May 2006 11:54:16 -0600 Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1]) by d03av01.boulder.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id k4OHsFJH015309 for ; Wed, 24 May 2006 11:54:15 -0600 Received: from d03nm119.boulder.ibm.com (d03nm119.boulder.ibm.com [9.17.195.145]) by d03av01.boulder.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id k4OHsFU4015290 for ; Wed, 24 May 2006 11:54:15 -0600 In-Reply-To: To: dev@jackrabbit.apache.org Subject: Re: Google Summer of Code project for Jackrabbit MIME-Version: 1.0 X-Mailer: Lotus Notes Release 7.0 HF144 February 01, 2006 From: David Kennedy Message-ID: Date: Wed, 24 May 2006 13:58:05 -0400 X-MIMETrack: Serialize by Router on D03NM119/03/M/IBM(Release 6.5.5HF268 | April 6, 2006) at 05/24/2006 11:58:09, Serialize complete at 05/24/2006 11:58:09 Content-Type: multipart/alternative; boundary="=_alternative 0062563F85257178_=" X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N --=_alternative 0062563F85257178_= Content-Type: text/plain; charset="US-ASCII" "Nicolas Toper" wrote on 05/24/2006 12:03:02 PM: > You are right: there are two different issues there so possibly two > different locking strategies: one for backup and one for restoring. > > We want to cover for now only one use case: the regular backup of data. You > would call the tool through a cron everyday at midnight for instance. > > There is another use case, we need to work on later (after the first project > for Google is completed): exceptional backup. For instance, before a > migration between different version. From my point of view, I would like > Missed the complete thought here... A regular backup is fine, but I don't expect people to stop using the repository while the backup is occurring. Anything we can do to minimize the locked set is advantageous to consumers. I'm not sure how an exceptional backup differs from a regular backup other then when it is performed. > Are those use cases covering your needs? > > Backup > We need to have a coherent image of the system. For a given workspace, is > the read access always coherent and consistant? I would prefer to avoid > locking the workspace since we are backuping a lot of data and it is going > to take some times. > The read access should be coherent and consistent assuming a transactional system. A locked workspace is the easiest to deal with, but the most inconvenient for consumers. Minimizing the lock set adds complexity because there are cases where transactions occurring during the backup can affect the data consistency (e.g. References: Node A has a property that references Node B....need to ensure when A gets backed up that B and all parents do or B may not exist by the time you get to it) > A workspace lock might not even solve all issues. Have anyone of you already > solved this? If yes how? > > Restore > I propose to actually lock the workspace while restoring: a restore > operation is rare and would delete the previous content. There shouldn't be > any other operations taking place. > Seems like a reasonable starting point. Will the restore take a Visitor to give requestors the ability to REPLACE or IGNORE existing nodes or properties. > Is this approach correct? > > Nicolas > > > On 5/24/06, David Kennedy wrote: > > > > Is the intent to lock out the entire workspace while backup or restore is > > occurring......no writes?! Can the transactions that occur during backup > > be recorded and played back to the backup system to avoid having to lock > > the entire workspace? > > > > Restore is a different issue though....which takes precedence: non-restore > > operations that occur during restore or the nodes from the backup? Is it > > feasible to restore clusters (transitive closure containing references) of > > > > nodes? Ideally we wouldn't have to lock the entire workspace. > > > > David > > > > > > > > "Nicolas Toper" < ntoper@gmail.com> > > 05/24/2006 10:12 AM > > Please respond to > > dev@jackrabbit.apache.org > > > > > > To > > dev@jackrabbit.apache.org, tobias.bocanegra@day.com > > cc > > > > Subject > > Re: Google Summer of Code project for Jackrabbit > > > > > > > > > > > > > > Hi Tobias, > > > > Thanks for your feedback. > > > > I assume I would need to lock the workspace using the getLockManager of > > WorkspaceImpl. > > > > Are those lock "time outted"? I mean for instance the backup application > > crashes, I had a lock on a Workspace, I would need to clean it as soon as > > possible. If they are not, maybe we should add it in JackRabbit through > > for > > instance a lease. > > > > What do you think? > > > > nico > > My blog! http://www.deviant-abstraction.net !! > > > > > > On 5/24/06, Tobias Bocanegra < tobias.bocanegra@day.com > wrote: > > > > > > hi nicolas, > > > sounds very promising. just one important comment so far: > > > > > > > - All updates and read are isolated through transactions. Do we need > > to > > > > define a locking strategy? If I am correct, I can read a node even > > > though it > > > > is locked and it is threadsafe. You don't commit an incoherent > > > modification. > > > > > > thats not quite true, they are only "READ COMMITTED" isolated. i.e. > > > you need to lock the entire workspace before you can perform a backup. > > > > > > regards, tobi > > > -- > > > -----------------------------------------< tobias.bocanegra@day.com >--- > > > Tobias Bocanegra, Day Management AG, Barfuesserplatz 6, CH - 4001 Basel > > > T +41 61 226 98 98, F +41 61 226 98 97 > > > -----------------------------------------------< http://www.day.com >--- > > > > > > > > > > > > -- > a+ > nico > My blog! http://www.deviant-abstraction.net !! --=_alternative 0062563F85257178_=--