directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lecharny <>
Subject Re: [ApacheDS][Partition] Using surrogate keys for attributeType aliases and objectClass aliases (was Re: [SCHEMA] Can two different LDAP AttributeType's have the same name?)
Date Fri, 06 Apr 2007 23:33:51 GMT
Ole Ersoy a écrit :

> What I mean by that is what is the minimum
> size of an entry considering only the fixed parts
> or the keys of the entry effectively + anything
> else that is needed to manage the entry that has
> to be stored in memory.

Then it's around 1kb. Of course, this is a rough estimation.

> So what can be done to minimize the size?
>> Nothing. 
> So what that then means is that the structural component of
> an entry is always minimized within ApacheDS?

well, the short answer is 'no'. As stated by alex, we should keep two 
forms : the user provided form, and the normalized form. For performance 
reasons, we should not compute the normalized form each time we do a 
search operation, this will kill the server. keep in mind that a ldap 
server is 99,99% read, and less tha 0,01write. So it definitively worth 
the price to spend a *lot* of time writing twice the data in to 
different forms than do a computation for each search. Adding entries in 
ADS is 10 to 20 times slower than reading them.

> So when I'm using JNDI to update an attribute, and the
> key of my Attribute is 
> "com.example.blah.blah.blah.blah.blah.blahblah.blahhhhhhh.something"
> ApacheDS takes that key and turns it into the shortest possible number
> it can before storing it?

yes. We have the exact equivalence to "sequecnes" in oracle, and we use 
them to give a Long for each entry, and for each indexed attribute.

> But is this really important ? Just think about the 80/20 rule
>> (and it's much closer to a 95/5) : 20 percent of all entries will be 
>> accessed 80% of time. A good cache will usually gives you the same 
>> result (or close to) as if you put everything in memory. This is very 
>> basic IT theory...
> Yes - Totally - For search operations that type of tweaking is awesome
> and effective.  It applies to Supply Chain Applications some times, 
> and other times all the data is fair game.  For instance
> the application might be calculating Optimal Inventory Figures for all
> SKUs and and wants to do the run "Superfast", so it wants all the data
> in memory.

Maybe in Supply Chain Apps. But a Ldap Server is totally different. 
Don't think like if you only have a hammer... In your case, Ldap being 
very fast, even compared to a RDBMS, it might be interesting to use i. 
But you should also consider other elements, like the cost of writing in 
it, and the cost of a traversal (doing a full scan).

> Yes - I usually go for 1 first, then pump it up :-)
> I like the band too.

I prefer dead kennedys (, but I'm a psycho %-]


View raw message