directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lécharny <>
Subject Re: Search performance potential improvements
Date Wed, 04 Sep 2013 11:29:23 GMT
Le 9/4/13 1:27 PM, Kiran Ayyagari a écrit :
> On Wed, Sep 4, 2013 at 3:42 PM, Emmanuel Lécharny <>wrote:
>> Hi guys,
>> I just came back from a short week of excellent vacations, and I spent
>> the last two days looking at the search operation.
>> Just before I left, I thought that the entry was cloned for no reason.
>> The fact is that we do modify the entry before returning it, so we must
>> modify a copy of the cached entry, otherwise we can have some really
>> nasty bugs in other parts (the entry is cached, so we can't simply
>> modify it).
>> OTOH, I discovered that we do a costly check in the
>> DefaultSearchEngine.computeResults() method : we check if the search
>> BaseDN is an alias by looking into the Alias index. Not doing this check
>> imrpove the performance for around 15%. I'm pretty sure we can avoid
>> looking into the index, as soon as we already have a cache of the
>> existing aliases. The pb is that it's just a cache, and if the alias is
>> not in the cache, we have to fetch the alias index. This become a pb
>> when we have a lot of aliases, something unlikely to happen.
>> how about setting a limit on the number of aliases that will be held in
> the cache
> and we store all the aliases in this cache, if the alias cache has less
> than this limit we
> don't need to look into the index (i.e we will always have all the aliases
> in memory)
> (here the assumption is that most server installations will have less
> aliases than
> the given threshold)

Yes, this is probably the best solution. We just have to keep a counter
of aliases beside the alias cache.

Emmanuel Lécharny 

View raw message