Hi guys,
those last 2 days I did some cleanup in the Rdn and Ava classes, in th
espirit of Dn cleanup. Here is a summary of what has been done, roughly :
- injection of the SchemaManager in both classes' constructors
- removing of the compareTo method
- made some methods private
- made the classes final
- removed the Comparable interface from the equation
One important modification is the last one : it makes no sense to have a
Rdn be comparable. First, how do we compare a cn and a jpegPhoto ?
Second, how do we compare two RDN which attributeType does not have an
equality matching rule ?
Of course, this has an impact in the way the backend works, as the Rdn
index needs to be able to do ordered comparison between Rdn, as this
index is a BTree. What I did is that I replaced the Rdn.compareTo(Rdn)
method by a direct String comparison in Jdbm between the Rdn's
normalized name. That does work.
It made me think that maybe using a hashed index for Rdn is probably a
better idea, because then we won't need this comparison to be done (the
equals method would be enough) and also because it would be faster
(finding an element in a Hash table is an O(1) operation - at least,
theorically - when looking in a BTree is an O(log2(N)))
thoughts on this last point?
--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com