Hi,

today, I modified the SubentryCache to offer an opaque class which hide the inner data structure. In other words, this cache now handles both the UUID -> Subentry and DN -> Suentry caches internally, because there is no reason that the user knows about the internals.

That led to a lot of modifications in the Subentry interceptor, but at least, I got almost all the add/delete/lokup tests working back again - except 2 -. I will fix the last two tests tomorrow morning, it should not take too long.

I believe the next data structures and mechanisms to add/delete subentries, entries and AP are now working fine, and that we can successfully implement the remaining operations fast.

In the mean time, it was clear that we had problems in the current trunk :
- the referrals were almost certainly badly managed, as there is no move operation for the DnNode class, which is used to cache referrals. A JIRA has been created - I'm almost sure that the trunk (or even the previous versions) didn't handled correctly subentries in many cases, as the cache was really simplistic. That does not matter too much, assuming that the branch we are working on will fix this. - We also need to make the DnNode structure and SubentryCache threadSafe ( a JIRA has been created for that)

Hopefully, not only we will have a full support for AAP, SAP and IAP in the close future, but I expect to have a more solid implementation, with more tests to check that we cover most of the possible cases (it might take a bit more time). Last, ot least, it should be fast, once the entries are updated. (I still have in mind to add an optional computation of the entries when an AP or a Subentry are modified, to avoid a postponed evaluation).

That's it, just wanted to update you guys.

--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Reply via email to