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 Tables)

   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



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