Return-Path: X-Original-To: apmail-directory-dev-archive@www.apache.org Delivered-To: apmail-directory-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 63B217AEB for ; Mon, 29 Aug 2011 14:53:14 +0000 (UTC) Received: (qmail 26736 invoked by uid 500); 29 Aug 2011 14:53:14 -0000 Delivered-To: apmail-directory-dev-archive@directory.apache.org Received: (qmail 26604 invoked by uid 500); 29 Aug 2011 14:53:13 -0000 Mailing-List: contact dev-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Apache Directory Developers List" Delivered-To: mailing list dev@directory.apache.org Received: (qmail 26597 invoked by uid 99); 29 Aug 2011 14:53:13 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 29 Aug 2011 14:53:13 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of ayaselcuk@gmail.com designates 209.85.212.50 as permitted sender) Received: from [209.85.212.50] (HELO mail-vw0-f50.google.com) (209.85.212.50) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 29 Aug 2011 14:53:06 +0000 Received: by vws14 with SMTP id 14so5517450vws.37 for ; Mon, 29 Aug 2011 07:52:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=eiNGKmgxx9hub0bfDsQ60no+DmJb7J06P4QUgoUh8II=; b=w9wOWv+CPYz2/C75b8VND1cWO31QeZr5+WX23+Y5a/k+T8Ecqd2A6aAkl5iUUINaaA JPko/Pr2N8LOcoV761MMd7JqkRj1pvSAzpfGxyI0kA/cu221OW9/Zv9JDFTx4whgfCdK dWVLl/KP3/26LhnH3Wibr4kKquowVx7B+FI7s= MIME-Version: 1.0 Received: by 10.52.172.226 with SMTP id bf2mr356009vdc.147.1314629565777; Mon, 29 Aug 2011 07:52:45 -0700 (PDT) Received: by 10.52.167.162 with HTTP; Mon, 29 Aug 2011 07:52:45 -0700 (PDT) Date: Mon, 29 Aug 2011 17:52:45 +0300 Message-ID: Subject: Handling consistency issues with HBASE partition (was Re: HBase partition integration in trunks ?) From: Selcuk AYA To: Apache Directory Developers List Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org Hi Stefan, Working on JDBM, I was wondering what kind of cosistency gurantees does HBASE partition implemenation expose? In particular, do put and fetch operations on the underlying master table and indices have ACID properties? How about cursors? Do cursors see future changes as they move back and forth? regards, Selcuk On Tue, Aug 16, 2011 at 4:49 PM, Kiran Ayyagari wrot= e: > On Tue, Aug 16, 2011 at 7:06 PM, Emmanuel Lecharny = wrote: >> On 8/16/11 3:22 PM, Kiran Ayyagari wrote: >>> >>> On Tue, Aug 16, 2011 at 6:45 PM, Stefan Seelmann >>> =A0wrote: >>>> >>>> On Tue, Aug 16, 2011 at 2:22 PM, Kiran Ayyagari >>>> =A0wrote: >>>>>> >>>>>> One solution would be to store two more elements in the ParentIdAndR= dn >>>>>> data >>>>>> structure : the number of children directly below the RDN, and the >>>>>> number of >>>>>> children and descendant. That would probably solve the issue I'm >>>>>> mentioning. >>>>>> Of course, that also means we wil have to update all the RDN hierarc= hy >>>>>> from >>>>>> top to bottom (but affecting only the RDN part of the entry DN) each >>>>>> time we >>>>>> add/move/delete an entry. Note that we already do that for the oneLe= vel >>>>>> and >>>>>> Sublevel index. >>>>>> >>>>> Just to make a point: >>>>> I think, in the case of achieving SubLevel index evaluation with RDN >>>>> index it becomes a costly and complex operation >>>>> (recursive scanning and updating) where as with the current sublevel >>>>> index it takes O(1) to fetch all the sublevel children of >>>>> an entry. >>>> >>>> Hm, evalutation can easly be done by using the reverse RDN index table= . >>>> >>> for one level it is straight forward, but for sublevel we still need >>> to use recursion, no? >> >> No, if we update all the parents when we add/move/delete an entry. That >> means we have to update more than one RdnAndparent element (in fact, as = many >> as we have RDns but the namingContext in the DN). Nothing more though th= at >> what we already do in the sub-level context. >> >> Then we have a O(1) operation to get the number of children in the case = of a >> SUB search. >> > if we are only talking about 'number of children' then this holds > good, but not when it comes to getting the > sublevel child entry ids, in case of existing sublevel index we get > *all* the child ids in one lookup >> Now, Stefan is right, fetching entries means we use more than one cursor= for >> that. >> > yeap, the above step is where this many cursors will be opened to > collect the entry ids >> >> -- >> Regards, >> Cordialement, >> Emmanuel L=E9charny >> www.iktek.com >> >> > > > > -- > Kiran Ayyagari >