On 22/05/2021 22:44, Stefan Seelmann wrote:
Hi Alexander,

On 5/22/21 6:32 PM, Alexander Zaretsky wrote:
Hello : I am experiencing corruption using Apache Directory Server 2.0.0
M26 on windows server 2016.

Unfortunately that's a known issue, please read our statement about the
production readiness [1].

I am trying to repair the JDBM backend :

I modified the file

c:\Program Files
(x86)\ApacheDS\instances\default\conf\wrapper-instance.conf adding the
following line at the end of the file wrapper.app.parameter.1=repair

and restarting.

I realize this is not a definite solution, so I want to use mavibot as a
backend for my Apache DS instead of JDBM

I want to know how to make my apache DS work with mavibot instead of jdbm.

The easiest way is to use Studio to create a Mavibot partition, see [2].
Once stored you can find the configuration in the config partition below
ou=partitions,ads-directoryServiceId=default,ou=config

However I can't tell you if the current version of Mavibot is stable
enough or might cause similar or differnt problems.

It's stable, but it has some issues: The 0.9 version, which is used atm, does not support cross-btree transactions. The consequence being that it may happen that if a crash occurs in the middle of an update, some btree might not be updated. Although the master table will always be clean.

The coming version - 1.0 - will support cross-btree transaction, which brings two major advantages: - first a guaranteed correct database even if a crash occurdd in the middle of a modification: in this case, no btree will be updated at all, otherwise all the btrees willm be updated. - second you will benefit from the fact that the transaction is 'public'. Ie, you can drive it through LDAP transaction. This is very interesting when it comes to inject many modifications in one shot, as we will not write down on disk the intermediate results, but only the last version when the transaction is closed; that leads to a real speedup on modify operations. Typically, one can expect to inject entries at least one order of magnitude faster than when committing a transaction after each modification

1.0 does not have a dead revision cleanup though. That means the database will only grow with the time. The algorithm is well known, buut it's not yet implemented. Actually, there are 2 pôssible algorithms: - one which remove every 'dead' revisions as soon as the oldest revision is not anymore in use, up to the next used revision (this is what is implemented in LMDB FTR) - one which can claim dead revisions (or at least dead pages) when a revision is released (but this is a much more complex algorithm).

The fact that we don't have a way to cleanup the database from dead page is not necessary a big issue for two reasons: - first we don't have necessarily a lot of modifications in LDAP, so the database would eventually grow slowly - second we could 'compact' the database when stopping and restarting the server: we would only keep the latest revision, and that would be a very fast operation.

In any case, yes, 1.0 is not out yet.

The good news is that now I'm done with the junit 5 migration I can switch to mavibot. The less good news is that I have still quite little time (but it's getting better).

--
*Emmanuel Lécharny - CTO* 205 Promenade des Anglais – 06200 NICE
T. +33 (0)4 89 97 36 50
P. +33 (0)6 08 33 32 61
emmanuel.lecha...@busit.com https://www.busit.com/

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@directory.apache.org
For additional commands, e-mail: users-h...@directory.apache.org

Reply via email to