You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Emmanuel Lécharny <el...@gmail.com> on 2012/05/11 21:55:25 UTC

JDBM and JDBM3 discussion

Hi guys,

I'm moving this thread to dev.

I have sent to Jan the mail where Selcuk was exposing the modifications 
done in JDBM so that JDBM3 can be made compatible with what we need. 
Here is Jan's response.

>  So looking at this consistency of the tree is guaranteed by a
>  reader/writer lock which is nice but browser keeps a read lock as long
>  as it is open. So if we ever have a cursor which holds an underlying
>  browser open and we try to modify the tree(which happens), then we
>  will deadlock."
>

Cursor (Iterator) does not hold lock. It only locks tree for short
moment while fetching previous/next item.

JDBM3 have fail fast iterators as normal java collections. So there is
structural modification counter increased on each write/delete.

In previous scenario (open iterator and add an item while iterating) you
will not get deadlock, but 'ConcurrentModificationException' thrown from
iterator methods.

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/ConcurrentModificationException.html

I guess this can be solved with MVCC.

Regards,
Jan Kotek