Whhooooooooaaaaahhhhh!!!! That's great man!
this morning, I was able to get an extra 3500 search/s on the coreSession.search() operation : up to 21798 search request per second from 18316 req/s yesterday.
This is a 2.8 times improvement since I started playing with Yourkit !
The same test done including the network layer (client + server) gives 3763 search per second. Considering that I'm just searching for a single entry from its DN, with one single thread, I would be curious to know what kind of numbers we can get with external injectors pounding the server...
There are more to come, but it will be a bit more difficult. The three things we can improve are :
- Avoid normalizing twice the same DN
- try to use a DN cache to avoid costly parsings
- try to avoid cloning the entry before returning it (this is probably the major improvement, as cloning represents almost 40% of the consumed time)
I will try to work on the first and third aspects, as they are easier to implement.
More to come ...