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 2020/01/03 15:19:41 UTC

Happy 2020 !

Hi !

firs, I'd like to wish you all, users and dev, a very happy 2020 !


2019 was quite slow, for many reasons. I can't talk about others, but on 
my side, I had a big change in my day job just sucked all my free time, 
and made me vary hard to participate since august. Things are cooling 
down now (changing for a new job is always very taxing in term of free 
time).

Since august, I spent time on Mavibot, implementing transaction support. 
It was pretty hard, with some concurrent issues that took me one month 
to get fixed (mainly because I wasn't able to dedicate more than a few 
hours per week on it). It's not yet committed, but it works. The biggest 
plus is that when you activate a transaction, and make more than one 
update on a B-tree, all being done in memory up to the final commit, 
it's way, way faster. It more or less double the number of updates per 
second when you double the number of updates per transaction (well, 
obviously less than double ;-). There are reasons for this speedup :

- the updated B-tree get flushed on disk only once, we then save many 
pages writes (typically, the root page get flushed only once per txn, 
instead of being flushed for every update.

- technical B-trees (CopiedPages and BtreeOfBtrees) and recordManager 
header get flushed only once too

There are some other improvements too: I have replaced the BtreeOfBtrees 
by a ListOfBtrees. It's way more dense, as it only keeps the latest 
offset of each existing B-tree. That also means we don't write an extra 
B-tree when we commit a transaction. The drawback is that we have to 
write the full list after each commit, but we are talking about only a 
few pages (each page containing up to 500 B-tree offset for a 4Kb page). 
The second drawback is that of we have a brutal crash, we may lose some 
old B-tree references if they were used by long lasting transactions. 
Note that we still keep a track of all the used B-tree reference in 
memory until they get removed.

The free pages management is not active at this point, and this is the 
next step to be completed. I want to change the existing algorithm to 
something better. Currently, we only clean unused pages when the oldest 
active read transaction is released, which is an issue if we have very 
long lasting read transactions: we may have a growing database that is 
never cleaned up if the transaction is never released. The alternative 
algorithm uses the CopiedPageBtree structure that keep a track of copied 
pages when a write transaction has been committed. It allows us to get 
rid of pages from in-between read transaction when they get released, 
assuming those pages have been copied. The algorithm is slighly more 
complex to implement, but guarantee that long lasting transactions won't 
clog the database.


Otherwise, a LDAP API release has been done, the first GA. This is quite 
a milestone ! There is still a lot of work to do, and that includes the 
documentation, which is lagging.


On ApacheDS front, this is a bit more complicated. I have triaged all 
the issues, adding each of them inti some categories, and started to 
work on the PasswordPolicies issues (there are many). It takes a lot of 
time though...

Here is what I intend to do then :

- cut a release as is,  in order to have a code base that use teh 2.0 
LDAP API. Some people are waiting for month to have a test envirronement 
that contains some major fixes, so regardless on where I'm on PP fixes, 
I think it's urgent to have this release done.

- fix the packaging. We need to have a Mac OSX package that works, and 
that means something signed (the new Apple policy for installable 
package is a bit strict...). I have this signature available, I just 
need to get it applied to the package. We also need a Windows 64 
package. Currently, we use a 32bits library - NSIS - which is not 
maintained anymore. I'm looking into YAJSW, which seems quite 
compatible. Then we need to get Mavibot upgraded with the version i'm 
working on, and make it the default database, to solve the long lasting 
database corruption that bog is for years...

Plus many other bugs to work on !

That means we will have many releases before reaching a GA :/

At this point, I may need some hands !


Regarding Studio, I think Stefan is waiting for ApacheDS to be released 
to cut a big fix release. Stefan, feel free to comment.


In any case, we need some help in all the aspects of the project 
(ApacheDS, LDAP API, Fortress,Studio, etc), and that include doculmentation.

I haven't mentioned Docker, but we would appreciate any effort to 
containerize ApacheDS, Fortress and Studio. This is not complex, Shawn 
did it for Fortres, but it would be cool to have it documented. I wonder 
if it's not the proper approach compared to creating packages for 
various platforms...


Anyway, lots of work on my plate, but happy to do it !

Feel free to comment, fo course !


Thanks

Emmanuel


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


Re: Happy 2020 !

Posted by Shawn McKinney <sm...@apache.org>.
Happy new year!

> On Jan 3, 2020, at 9:19 AM, Emmanuel Lécharny <el...@gmail.com> wrote:
> 
> In any case, we need some help in all the aspects of the project (ApacheDS, LDAP API, Fortress,Studio, etc), and that include doculmentation.
> 
> I haven't mentioned Docker, but we would appreciate any effort to containerize ApacheDS, Fortress and Studio. This is not complex, Shawn did it for Fortres, but it would be cool to have it documented. I wonder if it's not the proper approach compared to creating packages for various platforms…
> 

It was Stefan who containerized apacheds (and openldap) for Fortress’ Jenkins tests.

I’m not one to jump on bandwagons, like Docker (and I know you’re not either), but this is how infra gets deployed.  (Nobody installs anything anymore)

> Anyway, lots of work on my plate, but happy to do it !
> 
> Feel free to comment, fo course !

Echo sentiments, lots of todos, minimal time available in order to get it done means we have to choose wisely.  I appreciate the efforts of this project’s volunteers. 

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