Return-Path: Delivered-To: apmail-jackrabbit-users-archive@locus.apache.org Received: (qmail 28526 invoked from network); 9 Nov 2006 21:41:51 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 9 Nov 2006 21:41:51 -0000 Received: (qmail 26980 invoked by uid 500); 9 Nov 2006 21:42:01 -0000 Delivered-To: apmail-jackrabbit-users-archive@jackrabbit.apache.org Received: (qmail 26971 invoked by uid 500); 9 Nov 2006 21:42:01 -0000 Mailing-List: contact users-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@jackrabbit.apache.org Delivered-To: mailing list users@jackrabbit.apache.org Received: (qmail 26962 invoked by uid 99); 9 Nov 2006 21:42:01 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 Nov 2006 13:42:01 -0800 X-ASF-Spam-Status: No, hits=4.8 required=10.0 tests=DNS_FROM_RFC_ABUSE,DNS_FROM_RFC_POST,DNS_FROM_RFC_WHOIS,HTML_MESSAGE X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: local policy) Received: from [68.142.201.184] (HELO web31704.mail.mud.yahoo.com) (68.142.201.184) by apache.org (qpsmtpd/0.29) with SMTP; Thu, 09 Nov 2006 13:41:46 -0800 Received: (qmail 51952 invoked by uid 60001); 9 Nov 2006 21:41:22 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:Received:Date:From:Subject:To:MIME-Version:Content-Type; b=6QwuQJzJ2FgSmKk88CqhI9Olcpz3yQCI6NoE8DVYY/byvaiA7+VFejT/EhoXuEThFkhiuly5o6Y8ZTejO1P6t7NpfR5jf823L2k1mqW831f4TkLKiB4cJ0zu2BwPS/vTlPXC+zKPnSwKvKcwSB57ZH72cY/pSlt0WhZhf82ezuA= ; Message-ID: <20061109214122.51950.qmail@web31704.mail.mud.yahoo.com> Received: from [15.235.153.104] by web31704.mail.mud.yahoo.com via HTTP; Thu, 09 Nov 2006 13:41:22 PST Date: Thu, 9 Nov 2006 13:41:22 -0800 (PST) From: Aloke Agarwal Subject: Re: Any Suggestions for Implementing Global Revision/Change Set To: users@jackrabbit.apache.org MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="0-10474336-1163108482=:51155" X-Virus-Checked: Checked by ClamAV on apache.org --0-10474336-1163108482=:51155 Content-Type: text/plain; charset=ascii Content-Transfer-Encoding: quoted-printable Thanks for the suggestion that solved our issue. Our time went down by 2 or= der of magnitude.=0A=0AThanks=0AAloke=0A =0A=0A----- Original Message ----= =0AFrom: Paul J DeCoursey =0ATo: users@jackrabbit.apach= e.org=0ASent: Thursday, November 2, 2006 5:50:32 PM=0ASubject: Re: Any Sugg= estions for Implementing Global Revision/Change Set=0A=0AAloke Agarwal wrot= e:=0A> Hi,=0A>=0A> We are evaluation jackrabbit for one of our project. The= project is to provide an XML repository with the following functional requ= irements:=0A>=0A> 1. Ability to have different document types to be stored= in repository. (For example: /toys/action/x.xml, book/x etc).=0A> 2. All t= he documents stored are all xml documents which needs to be querieable thro= ugh xquery (for example get all book where book.author etc).=0A> 3. Ability= to store all documents as versionable.=0A> 4. Ability to retrieve document= s based on global revision. The concept of global revision is similar to "s= ubversion" concept where a user can submit x number of documents and the sy= stem returns a unique id back to the user. The user can then use this id to= get "any" document in the repository at that point in time not just what h= e/she checked in.=0A>=0A> Based on the above requirement we were evaluating= jackrabbit and have an initial implementation of "globalrevision" and xpat= h like capability. Our solution is as follows:=0A>=0A> We have root node ca= lled:=0A>=0A> =0AWhy does each node need the globalrevisionid? why not ju= st keep that ID =0Aon the root node?=0A=0A> root (mix:versionable)=0A> = - child1=0A> -property called (globalrevisionid)=0A> - child 2= =0A> -property called (globalrevisionid)=0A>=0A> - child 3=0A> = -property called (globalrevisionid)=0A>=0A>=0A> globalrevisionroot = (mix: versionable)=0A> - globalrevision1=0A> - globalrevision2=0A>= =0A> So every time there is a commit we save the nodes that are checked in = and then walk the whole tree to set the property called "globalrevisionid" = on all the nodes under root at that point in time. =0A>=0A> Our problem is = as follows:=0A> 1. The performance is really bad with a repository with 500= nodes it takes 10 minutes after every save to put this globalrevision prop= erty on all the nodes.=0A> =0AIf you move the revisionid to a single node= then this shouldn't be an issue.=0A> 2. It does a checkout/set property/ch= eckin in all the root nodes and hence creates an unneccesary revision in th= e repository.=0A> 3. The lucene search indexing takes a long time everytime= =0A>=0A>=0A> Has anyway tried implementing something similar to what we are= trying to do?. Is there any better way to do what we are trying to do in J= CR.=0A>=0A>=0A> Thanks=0A> Aloke=0A>=0A>=0A>=0A> =0A=0AI think that have= 1 instance of the revisionid will solve all your issues.=0A=0A=0A=0A=0A=0A= =0A=0A=0A =0A______________________________________________________________= ______________________=0AYahoo! Music Unlimited=0AAccess over 1 million son= gs.=0Ahttp://music.yahoo.com/unlimited --0-10474336-1163108482=:51155--