Hi guys,
so this is the end of the week, and I have done some experiments with my
Index branch (this branch has been created to remove the oneLevel and
subLevel index, and to use the RdnIndex instead).
First of all, the server is working just fine without those two indexes.
I still have on-going improvements to get the full advantage of those
removal (currently, we have some issues with JDBM when we want to update
the keys to stoe the number of children/descendant each entry has, but
this is something we are discussing atm), but baseline, the perfs are
pretty much on par with trunks.
That includes searches, not only modifications.
Today, I did some profiling with the latest version of Yourkit, and I
was able to tweak the server here and there to get some speed
improvement. Here are the results I get :
on Trunk :
OBJECT level search, 19 680 entries returned per second (we only get one
entry)
ONE level search, 27 900 entries returned per second (we get five entries)
SUBTREE level search, 17870 entries returned per second (we get 10 entries)
Keep in mind that those tests are done with an embedded server, it does
not go through any network layer. So to speak, it gives the raw caacity
of the server to deliver entries, no more.
On the branch now :
OBJECT level search, 33 373 entries returned per second (we only get one
entry) : this is a 70% improvement !
ONE level search, 45 695 entries returned per second (we get five
entries): this is a 63% improvement !
SUBTREE level search, 35 300 entries returned per second (we get 10
entries): this is a 97% improvement !!!
I'm quite confident that we can still improve the performances of the
server, I have just scratched the surface here :)
More to come soon !
--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com