Hi guys,
as I'm goig to be offline often this week-end, just a short mail to give
you some info about what I'm doing and how far I currently am.
The idea is to get rid of the OneLevel index, as I already said in one
of my previous mails. I had hard time to understand how to use Cursors,
especially on top of the RdnIndex, but as of today, I finally get
something working fine to replace the OneLevel index.
I'm removing all the calls to this index in the code one by one,
checking that teh server still works as expected. I still have to deal
with some calls in the LdifPartition, but I'm close.
We can now use the RdnIdx to get a list of children for a given entry,
and I have designed a dedicated cursor (ChildrenCursor) for that. Right
now, it's more a hack than anything else (I'm counting the nulber of
children while returning them, stopping when I reach the expected number
of children), but I will use a better solution later (basically, I'll
check the parent ID of each element I pull from the index). It works fine.
At the same time, I'm trying to cleanup a bit the Cursor hierarchy. I
was able to remove a couple of classes and interfaces that were useless,
and I'm pretty sure we can go farther. The generics are a bit messy, and
we often have to mask the to get things working.
I'm also quite sure that we should abstract more on top of the Table
implementation : we don't have a generic Browser, and that leads to a
duplication of cursors (Avl cursors and Jdbm cursors). We most certainly
can do better.
I will continue up to the point I can completely remove the OneLevel
index (which is still created and manager), then I'll do the same thing
for the SubLevelIndex.
Btw, that could help the txn layer, as there will be two less index to
manage...
That's pretty much it for this week. Have fun !
--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com