On Fri, Apr 27, 2012 at 6:37 PM, Emmanuel Lécharny <elecharny@gmail.com> wrote:
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 !!!


This is awesome. Nice job man! 


--
Best Regards,
-- Alex