Ok, I think I got the issue. When doing a "normal" search with a filter like (uid=user.9999) the referral interceptor expands that filter to (|((uid=user.9999))(objectClass=referral)).

The objectClass index however is a system index and not used by the optimizer, see [1] and [2].

It should be easy to fix that, I'll try to fix it, stand by...

Kind Regards,
Stefan

[1] http://www.mail-archive.com/[email protected]/msg27163.html
[2] https://issues.apache.org/jira/browse/DIRSERVER-1465

One guess: it may have something to do with referrals. If I add a "-M" to the ldapsearch command (which sends the ManageDsaIT control) the search is faster. I'll try to debug into the server.


Alex Karasulu wrote:
Wow this is horrendous - what's the cause of this any idea? We were at
5000K searches per second before.

On Sun, Mar 7, 2010 at 1:54 PM, Stefan Seelmann <[email protected]> wrote:
Hi dev,

for the ApacheDS 1.5.6 release I created the installers and tested the zip
archive.

I injected an ou and 10000 inetOrgPerson entries [1]. When I run the
following ldapsearch command it takes approx. one second to get a result:

ldapsearch -h localhost -p 10389 -D "uid=admin,ou=system" -w secret -b
"dc=example,dc=com" -s sub "(uid=user.9999)"

I also used the searchrate tool from slamd and I only get 1 search per
second:

./searchrate.sh -h localhost -p 10389 -D "uid=admin,ou=system" -w secret -b
"dc=example,dc=com" -s sub -f "(uid=user.9999)" -t 1


Then I tried to tune the server: I set -Xmx1024m to give it more Ram. And I increased the cache size in server.xml [2]. However with searchrate I still
don't get more then 3 searches per second.


I hope that I just forgot some additional tuning parameter.


Kind Regards,
Stefan


[1] http://people.apache.org/~seelmann/com-example-10000.ldif.gz (1MB!)
[2] http://pastebin.com/xMjR9zrK






Reply via email to