directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lecharny <>
Subject Search perfs improvement
Date Fri, 07 May 2010 23:11:51 GMT
Hi guys,

I just committed some more improvements. By removing the extra clone 
creation, combined with the removal of the eagerlyPopulateFields() 
method for the search request, I was able to speedup the server a lot.

When running a search operation on a single entry, with a scope=OBJECT 
and filter = (ObjectClass=*), the performances I got was (on perftest 
server) :
- baseline : 128 seconds to do 1M searches, for 7799 requests per second
- without the eagerlyPopulate method : 75 seconds to do 1M searches, for 
13327 requests per second
- without the double clone : 98,2 seconds to do 1M searches, for 10178 
requests per seconds
- both combined : 60 seconds to do 1M seraches, for 166670 requests per 
seconds. This is a 2.1 x improvements.

Note that those numbers are just for a direct call to core-session, they 
don't include the network layer, nor the encoding/decoding of requests 
and responses.

I have some more area to explore, like we are normalizing 3 times a DN, 
when one should be enough. And as normalization is a costly process ...

More to come.

PS : it's fun, and incredible how you can squeeze performances out of 
some code when you have time and when the code is not totally crippled !

Emmanuel L├ęcharny

View raw message