You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Trustin Lee <tr...@gmail.com> on 2005/03/16 12:14:05 UTC
[apacheds] A few questions.
I started to reading ApacheDS code, and I've got a few questions from
it. Is there anyoine who can teach me? :)
Some Qs might be silly, but be patient with me!
1. What is the difference between user-provided DN and normalized DN?
1.1. Can I generate user-provided DN from normalized DN and vice versa?
2. What is a collective attribute?
3. Could you explain me what the constructor of AbstractContextPartition does?
4. If there are many context partitions with different backing stores,
what happens when we move entries between different partitions? Do we
reassign entryIds (BigInteger) ?
Thanks,
Trustin
--
what we call human nature is actually human habit
--
http://gleamynode.net/
Re: [apacheds] A few questions.
Posted by Enrique Rodriguez <er...@apache.org>.
Alex Karasulu wrote:
> Trustin Lee wrote:
<snip/>
>> 3. Could you explain me what the constructor of
>> AbstractContextPartition does?
>>
> May be nothing at the moment. Why you asking? I think I have this
> class as a common abstract class or root for both SystemPartition and
> the default ApplicationParition.
I believe he means, literally, what is happening inside the constructor
at the procedural level. Something like, "find the union of OID indices
desired by configuration and OID indices supported by the ApacheDS
backing store, and enable indexing on those OIDs."
-enrique
>
>> 4. If there are many context partitions with different backing stores,
>> what happens when we move entries between different partitions? Do we
>> reassign entryIds (BigInteger) ?
...
Re: [apacheds] A few questions.
Posted by Alex Karasulu <ao...@bellsouth.net>.
Trustin Lee wrote:
>I started to reading ApacheDS code, and I've got a few questions from
>it. Is there anyoine who can teach me? :)
>
>Some Qs might be silly, but be patient with me!
>
>1. What is the difference between user-provided DN and normalized DN?
>
>
The user provided DN is the DN given as input from the user without any
alterations. The normalized DN is the DN which is textually modified
into a cannonical form. For example ou= HuMAN ResoURces might be
supplied by the user and so this is the user provided DN. The server
must generate a cannonical representation to store this in the DN
index. So what happens to normalized is the space variance is removed
without effecting tokenization order: many spaces becone a single
space. Next the server case normalizes the string if the ou attribute
is case insensitive. The server lower cases the value. So the
normalized form of the follwoing UPDNs are ...
ou= HuMAN ResoURces,dc = EXAMPLE, dc=com
ou= human ResoURces,dc = exampLE, dc=com
ou= HuMAN resOURCES,dc = EXample, dc=COM
Normalized form is always ...
ou=human resources,dc=example,dc=com
>1.1. Can I generate user-provided DN from normalized DN and vice versa?
>
>
You can't produce a UPDN from a NDN unless you do lookups against a
partition index but careful to make sure you are not swimming in details
of a specfic backend implementation. There are two indices dealing
with DNs in the default backend implementation.
One bidirectionally maps UPDN values to the id of the entry. Another
maps NDN values to the id of the entry. This prevents us from
normalizing all the time and allows use to lookup a UPDN if we know the
id or NDN.
>2. What is a collective attribute?
>
>
All we don't have this implemented yet. Basically it is an attribute
that is shared between a set of entries. Let me give you an example.
Say I have a DIT where I store a bunch of people from a specific region
under an organizationalUnit node. This is natural. The people entries
under this ou will have the same locale attribute values as well as
possibly other attribute values they share in common. So with
collective attributes I can assign the value once to a set of entries in
something called a subentry node in the ou up above. Then using a
subtree specification I say the collective attribute's value applies to
everything below this node.
>3. Could you explain me what the constructor of AbstractContextPartition does?
>
>
May be nothing at the moment. Why you asking? I think I have this
class as a common abstract class or root for both SystemPartition and
the default ApplicationParition.
>4. If there are many context partitions with different backing stores,
>what happens when we move entries between different partitions? Do we
>reassign entryIds (BigInteger) ?
>
>
No entryId is not a know entity outside of the specific backend
implementation we have. In LDAP there is no primary key other than the
DN. Well now we might have one with the UUID.
To answer your question fast the default partition implementation uses a
sequence to generate auto incrementing entryIds. Each backend has its
own sequence. So if I take entry with entryId 2000 from partition A and
move it to partition B, entry with entryId 2000 will be assigned the
next value of the id index which could be anything.
Does this answer the question?
>Thanks,
>Trustin
>
>