You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Emmanuel Lecharny <el...@gmail.com> on 2010/05/08 01:11:51 UTC
Search perfs improvement
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 !
--
Regards,
Cordialement,
Emmanuel Lécharny
www.nextury.com