Alex Karasulu wrote:
On Feb 19, 2008 6:14 AM, Emmanuel Lecharny <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    I don't think that upDn is usefull.


You mean in the context of [de]serializing?
In the server as a whole.

    Note : why is upDn index useless ? Because if we store a serialized
    LdapDN, then we have access to the UP form, and more than that, w will
always work with normalized forms of DN,

Not always true. Sometimes we have use the user-provided (UP) form of a DN but very rarely.
You always have access to this form, if needed, as this is the DN basic form (remember that DN are passed by incoming requests). So no need to have an index on it.
Also the LdapDN is an atrocity when it comes to manageability.
Can you elaborate ?
We may break it up in the future and break it apart so it does not contain both UP and normalized forms.
You may want to have a stripped form of the current LdapDN ( a 'client' form), but in fact, you already have it : simply use LdapDN as is, and you are done (you won't see any kind of normalized form unless you explicitely ask for a normalization to be done). Maybe having a better separation, like in ServerEntry and ClientEntry could be a good idea. Also keep in mind that in the server, the DN is the most important structure with the ServerEntry. It is also the most costly object to manipulate, and it can kill the performances if not handled correctly.
This is causing issues for us as an API when users don't know what kind of DN they're dealing with.
This is simply not true. What you call 'user' here is simply always managing the UP form, nothing else. To get a normalized form, you must be into the server, or at least, have access to the OID registry, and explicitely call the normalize( OIDs ) method.

You are right though that some things about UP DN in the server definitely need to change. I just don't want anyone (including me) to touch anything associated with it until we have a clear idea of the end state of DN normalization.

I don't want to be in constant flux refactoring this server.
We have to be consistent. The current situation is not good. We have open issues because we don't know which form we have to use (normalized or UP). For instance, the Principal.

So far, 99% of the DN are used normalized - as it should - inside the server, and I'm not even sure we use the UP form in any case (so the 1% may be patholological cases).

    returning the UP form only when
    building the respons, which is easy, as we store the UP form into the
    seralized DN. This will also benefit to the Add request, as we won't
    have to uodate 2 index instead of one...

    wdyt ?


I worry that now we're going to store both the UP and normalized DN. Perhaps this is better since disk is cheap and the normalization computation is costing us. However we talked about making this configurable at some point: can we still do that?
The cost should be compensated by the normalizing gain. Here, there are some key factors : size on disk and memory. If we have enough cache, size is irrelevant. If we don't have enough cache, reading DN from disk might be costly. Hopefully, we can decide to store the UP form and compute back the normalized form when restoring the DN. This operation (normalization) is less costly than the parsing. This is something we can trigger if needed, but I don't think this is urgent, unless we really want to manage millions of DNs right now :)

I have also tried to improve the serialization so that we don't save a UP and normalized value if they are equals. That come at a cost, and it's not perfect.

I still have to go deeper, regarding the UP index.

--
--
cordialement, regards,
Emmanuel Lécharny
www.iktek.com
directory.apache.org


Reply via email to