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 <em...@busit.com.INVALID> on 2020/06/05 22:19:29 UTC

Mavibot status

Hi !


it has been a while since I committed something in this repo. I finally 
completed a big rewrite I started 2 years ago.


Basically, it was about supporting cross-B-tree transaction, something 
that was badly missing in the previous release. There are many other 
important changes :

- we don't support multi-values in a B-tree. If one want to stroe such 
things, then the way to go is to create a B-tree aside if the number of 
values is too big.

- The Btree of Btrees (aka BoB) that was used to store all the B-trees 
versions for all the pending transactions has been replaced by a List of 
B-trees. This is simpler to serialize on disk and simpler to manage

- The free pages management is currently disabled, but will soon be 
reestablished. That mean the database file will continuously growth atm.

- We use Caffeine as a internal page cache

- One of the biggest advantage of having a cross-Btree transaction is 
that we can now inject many elements before flushing the data on disk. 
This speeds up insert if we can gather many of those updates into a 
single commit (it can be one or two order of magnitude faster). For 
LDAP, this is interesting because a LDAP update operation generally 
involve the update of 10 or more B-trees, with some of them being 
updated more than one - typically, the RDN index -. But it can also be 
leveraged by the server itself as it now support the LDAP transaction 
extended operation (https://tools.ietf.org/html/rfc5805). It can also be 
used with great benefit for a bulk load, where we commit after 10 of 
thousands entries addition.


There is more to do, and the first step is to add the free page 
management. This is what I'm going to work on.


Thanks !


-- 
-----------------
Emmanuel Lécharny
CTO, Busit


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
For additional commands, e-mail: dev-help@directory.apache.org


Re: Mavibot status

Posted by Shawn McKinney <sm...@apache.org>.

> On Jun 5, 2020, at 5:19 PM, Emmanuel Lécharny <em...@busit.com.INVALID> wrote:
> 
> it has been a while since I committed something in this repo. I finally completed a big rewrite I started 2 years ago.
> 
> Basically, it was about supporting cross-B-tree transaction, something that was badly missing in the previous release. There are many other important changes :
> 
> - we don't support multi-values in a B-tree. If one want to stroe such things, then the way to go is to create a B-tree aside if the number of values is too big.
> 
> - The Btree of Btrees (aka BoB) that was used to store all the B-trees versions for all the pending transactions has been replaced by a List of B-trees. This is simpler to serialize on disk and simpler to manage
> 
> - The free pages management is currently disabled, but will soon be reestablished. That mean the database file will continuously growth atm.
> 
> - We use Caffeine as a internal page cache
> 
> - One of the biggest advantage of having a cross-Btree transaction is that we can now inject many elements before flushing the data on disk. This speeds up insert if we can gather many of those updates into a single commit (it can be one or two order of magnitude faster). For LDAP, this is interesting because a LDAP update operation generally involve the update of 10 or more B-trees, with some of them being updated more than one - typically, the RDN index -. But it can also be leveraged by the server itself as it now support the LDAP transaction extended operation (https://tools.ietf.org/html/rfc5805). It can also be used with great benefit for a bulk load, where we commit after 10 of thousands entries addition.
> 
> 
> There is more to do, and the first step is to add the free page management. This is what I'm going to work on.
> 

This will lead to 

a. A stable database implementation for apacheDS, i.e. no more data corruptions requiring restores.

b. Better performance on updates.

Long needed in this project.  Thanks for the udpate.  Looking forward to testing this out when ready.

—
Shawn


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
For additional commands, e-mail: dev-help@directory.apache.org