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/06/08 01:01:12 UTC
Some more speed improvement for basic operations
Hi guys,
today I finished to clean the rename() operation, and I just have the
three last operations remaining to be clean, ie move, moveAndRename and
compare.
In the meantime, I was able to avoid an Entry clone to be done, and this
has a huge impact on some operations. Here are the result I get with or
without the clone :
add : 578/s(with) / 607/s (without) / +5%
lookup : 19 568/s(with) / 26 542/s (without) / +36%
search : 19 727/s(with) / 19 560/s (without) / ---
modify : 1 991/s(with) / 2103/s (without) / +5%
delete : 248/s(with) / 248/s (without) / ---
As we can see, the lookup is really faster with such a modif. The other
operations aren't that much impacted, the cost of writing on disk kills
the gain we could have.
One more thing : this is a test done with one single thread, directly on
top of the core-session.
However, it demonstrates that with enough cache, and a good network
layer, we should be able to get some good performances out of the server.
--
Regards,
Cordialement,
Emmanuel Lécharny
www.nextury.com
Re: Some more speed improvement for basic operations
Posted by Kiran Ayyagari <ka...@apache.org>.
On Wed, Jul 28, 2010 at 8:35 PM, Emmanuel Lecharny <el...@apache.org> wrote:
> An update :
>
> as of today (July 28th), I'm able to run the search perf test and obtain
> those values :
>
> June, 8th :
> search : 19 727 search/s
>
> July 28th : 35 812 search/s
this is great :)
>
> NOTE : this is for a simple search (ie, OBJECT scope) and no entry in the
> base. The test does not go through any network (though no BER
> encoding/decoding). It just check the speed of the internal server.
>
> Also it's interesting as it prove there is a wide margin of improvement in
> the server itself.
>
> From the last test I did, I think we can gain 30 to 40% more by using a DN
> cache (DN parsing and normalization count for 26% of the whole CPU), and we
> have a spurious call to the hasEntry() method which costs 13,5% of the CPU.
> The log system costs 2.75%, something we can also improve.
>
> --
> Regards,
> Cordialement,
> Emmanuel Lécharny
> www.iktek.com
>
Kiran Ayyagari
Re: Some more speed improvement for basic operations
Posted by Emmanuel Lecharny <el...@apache.org>.
An update :
as of today (July 28th), I'm able to run the search perf test and obtain
those values :
June, 8th :
search : 19 727 search/s
July 28th : 35 812 search/s
NOTE : this is for a simple search (ie, OBJECT scope) and no entry in the
base. The test does not go through any network (though no BER
encoding/decoding). It just check the speed of the internal server.
Also it's interesting as it prove there is a wide margin of improvement in
the server itself.
>From the last test I did, I think we can gain 30 to 40% more by using a DN
cache (DN parsing and normalization count for 26% of the whole CPU), and we
have a spurious call to the hasEntry() method which costs 13,5% of the CPU.
The log system costs 2.75%, something we can also improve.
--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com
Re: Some more speed improvement for basic operations
Posted by Emmanuel Lecharny <el...@gmail.com>.
On 6/8/10 1:18 AM, Quanah Gibson-Mount wrote:
> --On Tuesday, June 08, 2010 1:01 AM +0200 Emmanuel Lecharny
> <el...@gmail.com> wrote:
>
>> Hi guys,
>>
>> today I finished to clean the rename() operation, and I just have the
>> three last operations remaining to be clean, ie move, moveAndRename and
>> compare.
>>
>> In the meantime, I was able to avoid an Entry clone to be done, and this
>> has a huge impact on some operations. Here are the result I get with or
>> without the clone :
>>
>> add : 578/s(with) / 607/s (without) / +5%
>> lookup : 19 568/s(with) / 26 542/s (without) / +36%
>> search : 19 727/s(with) / 19 560/s (without) / ---
>> modify : 1 991/s(with) / 2103/s (without) / +5%
>> delete : 248/s(with) / 248/s (without) / ---
>>
>> As we can see, the lookup is really faster with such a modif. The other
>> operations aren't that much impacted, the cost of writing on disk kills
>> the gain we could have.
>>
>> One more thing : this is a test done with one single thread, directly on
>> top of the core-session.
>>
>> However, it demonstrates that with enough cache, and a good network
>> layer, we should be able to get some good performances out of the
>> server.
>
> Exciting. :) One of these days soon, I'll have a slamd perf lab again
> (HW exists, waiting on installation), so I can draw up some numbers
> between OpenLDAP, ApacheDS, and maybe some others.
We still have a long way to go to get numbers that compares to what we
can get with OpenLDAP :)
However, we know where to squeeze performance out of the parts that need
it :
- the network ayer that may be sub-optimal at this point,
- definitively the backend, as we have some serious contention when
working with more than one client.
Considering using the server embedded, ie without dealing with the
network layer, I must say I like the performance we now get :)
However, we are still cleaning the house at the moment, considering that
having a stable, robust and compliant server is more important than
having good performances. Right now, the fnny part of the on going work
is that while working on making some operation atomic (we had some issue
on ModDN operations), we get a side benefit of having better performance
by removing useless processing.
Thanks Quanah !
--
Regards,
Cordialement,
Emmanuel Lécharny
www.nextury.com
Re: Some more speed improvement for basic operations
Posted by Quanah Gibson-Mount <qu...@zimbra.com>.
--On Tuesday, June 08, 2010 1:01 AM +0200 Emmanuel Lecharny
<el...@gmail.com> wrote:
> Hi guys,
>
> today I finished to clean the rename() operation, and I just have the
> three last operations remaining to be clean, ie move, moveAndRename and
> compare.
>
> In the meantime, I was able to avoid an Entry clone to be done, and this
> has a huge impact on some operations. Here are the result I get with or
> without the clone :
>
> add : 578/s(with) / 607/s (without) / +5%
> lookup : 19 568/s(with) / 26 542/s (without) / +36%
> search : 19 727/s(with) / 19 560/s (without) / ---
> modify : 1 991/s(with) / 2103/s (without) / +5%
> delete : 248/s(with) / 248/s (without) / ---
>
> As we can see, the lookup is really faster with such a modif. The other
> operations aren't that much impacted, the cost of writing on disk kills
> the gain we could have.
>
> One more thing : this is a test done with one single thread, directly on
> top of the core-session.
>
> However, it demonstrates that with enough cache, and a good network
> layer, we should be able to get some good performances out of the server.
Exciting. :) One of these days soon, I'll have a slamd perf lab again (HW
exists, waiting on installation), so I can draw up some numbers between
OpenLDAP, ApacheDS, and maybe some others.
--Quanah
--
Quanah Gibson-Mount
Principal Software Engineer
Zimbra, Inc
--------------------
Zimbra :: the leader in open source messaging and collaboration