directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kiran Ayyagari <>
Subject Re: Using derby BTree new implementation
Date Wed, 16 Jul 2008 15:40:55 GMT
hi Francois,

    Let me first apologize for the late reply. more inline

Francois Orsini wrote:
> Hi Kiran,
> We're currently working on this and I hope we can provide you guys son 
> enough with an implemented API for some early test drive.
> I have not posted in the directory dev mailing list as the API is not 
> available yet.
> There is a thread in the Apache Derby dev forum as as far as the 
> motivation for this and see how we can deliver it:
> I'd be interested in knowing more about that new API you have on top 
> of JDBM. Do you have any description and Javadoc for it? That would be 
> great for us to see how it'd would work against the Derby B-Tree store 
> one.
   There are three top level interfaces namely Table, Index and Cursor.

   A Table basically contains two columns <key, value> where keys are 
sorted and both keys and values if
   duplicate keys are allowed.

   Index is a bidirectional lookup table ( internally maintains two 

   A Cursor abstracts the JDBM specific browsing mechanism while also 
adding support for traversal over
   duplicate keys if they have been enabled in the Table.

   FYI There is an excellent doc written by Alex explaining these 
interfaces in detail which is present at
  The SVN urls for




The corresponding implementation classes are



There are numerous implementations for the Cursor interface. The two 
main cursor implementations are


DupsCursor ( when duplicates are allowed in the Table )

> Also may I ask what were/are the issues you are encountering with 
> JDBM? I would assume that concurrency is likely one of them and also 
> not being able to get new updates, etc.
 one issue ( that I know of ) with JDBM is its browser's getPrevious() 
and getNext() when called in succession will
 return the same key ( I was told that this not a bug but JDBM actually 
works in this way )

 e.x in a sequence of keys 1,2,3

      assuming that browser is positioned at the beginning if we call
                     browser.getNext() (returns 1)
                     browser.getNext() (returns 2)
  and finally browser.getPrevious() (returns *2* but logically speaking 
should be 1)

 ADS dev,  please add any JDBM issues that you encountered or know about

> Thanks
> --francois
> Kiran Ayyagari wrote:
>> hi Francois,
>>    I have searched directory dev mail archive but haven't found any 
>> discussion threads in which you participated
>>    ( infact there were some mails about BTree impl used in JDBM )
>>    Could you let me know about the derby revision in which this new 
>> API is present ( will be glad if you can
>>    provide some filenames related to BTree impl instead :) )
>>    Thanks for your time
>> Kiran Ayyagari
>> Emmanuel Lecharny wrote:
>>> Hi Kiran,
>>> last spring we had an interesting convo with Fran├žois Orsini about 
>>> Derby BTree implementation. As we have a new API on top of JDBM, and 
>>> as they have started to redisign their API to get it easier to use, 
>>> it would be interesting to look at what they are doing and see how 
>>> we can leverage this API. They are also interested to know what we 
>>> think about the new API, so any feedback would be good.
>>> The best would for you two guys to get in touch, and see how you can 
>>> collaborate.
>>> wdyt ?

Kiran Ayyagari

View raw message