directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lecharny <>
Subject [ANNOUNCE] Apache Mavibot 1.0.0-M3
Date Wed, 18 Dec 2013 07:32:12 GMT
The Apache Directory team is pleased to announce the release of Apache
Mavibot 1.0.0-M3, the third milestone towards a 1.0 version.

Mavibot is a Multi Version Concurrency Control (MVCC) BTree in Java.
It is expected to be a replacement for JDBM (The current backend for
the Apache Directory Server), but could be a good fit for any other
project in need of a Java MVCC BTree implementation.

Some big refactoring in this milestone, as many of the classes and
interfaces are now comon to both the managed and in-memory btrees.
A replace method has been added, the cache is now shared with the
btree subtrees, and we don't create a subtrees for each values when
the BTree allows duplicate values, which leads to better performance.

Most important, we don't anymore deserialize the whole page when it
is read from disk, we just deserialize the needed keys and values.
This single change boost the performance by an order of magnitude.

The cursors have been refactored, and some tests have been added.

ApacheDS has already been tested with Mavibot 1.0.0-M3-SNAPSHOT.

Many other bugs have been fixed. Here is the list of the fixed issues :


[MAVIBOT-12] - Deleting a value from a ValueHolder with N values
modifies version N-1
[MAVIBOT-13] - Deserialization fails when we read back data from disk
[MAVIBOT-19] - Various issues with the browseFrom() method
[MAVIBOT-21] - Navigation with the
moveToNextNonDuplicateKey/moveToPrevNonDuplicateKey is broken
[MAVIBOT-22] - Sub-btree used by Duplicate values aren't correctly released
[MAVIBOT-23] - The BTree.insert() method does not return a valid Value


[MAVIBOT-10] - Add a Replace method
[MAVIBOT-14] - Don't create a new cache for sub-btrees
[MAVIBOT-16] - Store the raw (ie, byte[]) values for keys and values,
instead of deserializing the full page
[MAVIBOT-18] - Don't create LinkedList in cursors
[MAVIBOT-24] - Move all the common classes and interfaces in a upper package

You can read more about Mavibot on

You can download the package at

Thanks !

Emmanuel L├ęcharny

View raw message