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 79A689574 for ; Thu, 23 Feb 2012 10:26:50 +0000 (UTC) Received: (qmail 60661 invoked by uid 500); 23 Feb 2012 10:26:50 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 60624 invoked by uid 500); 23 Feb 2012 10:26: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 60617 invoked by uid 99); 23 Feb 2012 10:26:50 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 23 Feb 2012 10:26:50 +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 (nike.apache.org: domain of a.schrijvers@1hippo.com designates 64.18.2.155 as permitted sender) Received: from [64.18.2.155] (HELO exprod7og101.obsmtp.com) (64.18.2.155) by apache.org (qpsmtpd/0.29) with SMTP; Thu, 23 Feb 2012 10:26:40 +0000 Received: from mail-tul01m020-f174.google.com ([209.85.214.174]) (using TLSv1) by exprod7ob101.postini.com ([64.18.6.12]) with SMTP ID DSNKT0YUS7vqK3Jou+oDaBPRhKmz4SPQ8yrv@postini.com; Thu, 23 Feb 2012 02:26:20 PST Received: by mail-tul01m020-f174.google.com with SMTP id va7so1206108obc.19 for ; Thu, 23 Feb 2012 02:26:19 -0800 (PST) Received-SPF: pass (google.com: domain of a.schrijvers@1hippo.com designates 10.182.118.34 as permitted sender) client-ip=10.182.118.34; Authentication-Results: mr.google.com; spf=pass (google.com: domain of a.schrijvers@1hippo.com designates 10.182.118.34 as permitted sender) smtp.mail=a.schrijvers@1hippo.com Received: from mr.google.com ([10.182.118.34]) by 10.182.118.34 with SMTP id kj2mr251392obb.37.1329992779145 (num_hops = 1); Thu, 23 Feb 2012 02:26:19 -0800 (PST) MIME-Version: 1.0 Received: by 10.182.118.34 with SMTP id kj2mr221909obb.37.1329992779073; Thu, 23 Feb 2012 02:26:19 -0800 (PST) Received: by 10.60.45.38 with HTTP; Thu, 23 Feb 2012 02:26:19 -0800 (PST) In-Reply-To: <9C0FC4C8E9C29945B01766FC7F9D389816E3A56CC4@eurmbx01.eur.adobe.com> References: <4F4527A9.6060507@adobe.com> <9C0FC4C8E9C29945B01766FC7F9D389816E3A56CC4@eurmbx01.eur.adobe.com> Date: Thu, 23 Feb 2012 11:26:19 +0100 Message-ID: Subject: Re: [jr3 trade consistency for availability] From: Ard Schrijvers To: dev@jackrabbit.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Gm-Message-State: ALoCoQnkDvfHn1IBztTgC/IMMZthebNZTwtJfSra5rPq6NG+wxz3YDk84FD4abaxYaDAutM5I8/F X-Virus-Checked: Checked by ClamAV on apache.org On Thu, Feb 23, 2012 at 9:09 AM, Marcel Reutegger wrot= e: > >> - Lock enforcement? > > that's definitively a tough one because it depends on repository > wide state. > >> - Query index consistency? > > I think consistency is a prerequisite here, otherwise it's quite > difficult to implement the query functionality. I'd rather Personally I am a strong advocate of eventual index consistency, perhaps because I just cannot see how it can ever be implemented without putting hard constraints on performance. But before discussing the details, what is to be understand by 'query index consistency'? Does this mean that the indexes should be consistent with the latest persisted data. Thus within a single cluster node, after a persist, the index must be updated directly? Would this mean that it blocks new search requests until the indexing queue is emptied? Or that an index should be consistent in a cluster? The latter isn't the case for jackrabbit 2 any way, right? Which one of constraints above is considered to be taken into account doesn't really matter afaics, as I don't see either one of them could be implemented efficiently...at least, with Lucene in the back of my head. And even if then all the effort is done and all the burden is accepted of creating index consistency, then we still don't have transactional searches, so the search results again still could contain nodes that are removed after the search was executed I do understand that relaxing the query index consistency most likely makes it really hard to implement the (specification) query functionality. But this might also be a result of the specification itself. I've come to believe over the years, that a generic hierarchical jcr full text index and queries is a bad idea : In the end, it just doesn't scale, is extremely complex to build (Lucene is flat), and even worse, it doesn't seem to satisfy customers/developers in the end: They want to index and search *their* specific model they store in jackrabbit. You can tweak a bit with indexing_configuration kind of things, but in the end, I think a (Lucene) index is just to domain specific If you need a consistent query, because you want to store and query something like banking accounts, you shouldn't use Jackrabbit (or some NoSQL db) in the first place imo Regards Ard > make compromises for availability. eg. terminate a long query > > regards > =A0marcel >