Apache Directory Project - [jira] Created: (DIR-182) Improvment in the way DN are treated

This is Interesting: Free IT Magazines  
Home > Archive > Apache Directory Project > March 2006 > [jira] Created: (DIR-182) Improvment in the way DN are treated





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author [jira] Created: (DIR-182) Improvment in the way DN are treated
Emmanuel Lecharny (JIRA)

2006-03-15, 8:45 pm

Improvment in the way DN are treated
------------------------------------

Key: DIR-182
URL: http://issues.apache.org/jira/browse/DIR-182
Project: Directory
Type: Improvement
Reporter: Emmanuel Lecharny


We have mesured that DN parsing is the hot spot in the server : we spend around 80 % of server time to parse DNs.

After having studied the way BindRequest does handle DN, we can say that for a single bind for the user "uid=admin,ou=system", we have more than 40 parsing done. Here is a list of all the parsing in the DnComparator.compare() method :
(The '*' in front of each line shows where a parsing of both DN is done)
* Compare 'ou=groups,ou=system' and 'uid=admin,ou=system'
* Compare 'prefnodename=sysPrefRoot,ou=system' and 'uid=admin,ou=system'
Compare 'uid=admin,ou=system' and 'uid=admin,ou=system'
Compare 'uid=admin,ou=system' and 'uid=admin,ou=system'
* Compare 'ou=groups,ou=system' and 'uid=admin,ou=system'
* Compare 'prefnodename=sysPrefRoot,ou=system' and 'uid=admin,ou=system'
Compare 'uid=admin,ou=system' and 'uid=admin,ou=system'
Compare 'uid=admin,ou=system' and 'uid=admin,ou=system'
* Compare 'ou=groups,ou=system' and 'ou=system'
* Compare 'ou=interceptors,ou=configuration,ou=sys
tem' and 'ou=system'
* Compare 'ou=configuration,ou=system' and 'ou=system'
Compare 'ou=system' and 'ou=system'
Compare 'ou=system' and 'ou=system'
* Compare 'ou=groups,ou=system' and 'ou=system'
* Compare 'ou=interceptors,ou=configuration,ou=sys
tem' and 'ou=system'
* Compare 'ou=configuration,ou=system' and 'ou=system'
Compare 'ou=system' and 'ou=system'
Compare 'ou=system' and 'ou=system'
* Compare 'ou=groups,ou=system' and 'ou=system'
* Compare 'ou=interceptors,ou=configuration,ou=sys
tem' and 'ou=system'
* Compare 'ou=configuration,ou=system' and 'ou=system'
Compare 'ou=system' and 'ou=system'
Compare 'ou=system' and 'ou=system'
* Compare 'ou=groups,ou=system' and 'ou=system'
* Compare 'ou=interceptors,ou=configuration,ou=sys
tem' and 'ou=system'
* Compare 'ou=configuration,ou=system' and 'ou=system'
Compare 'ou=system' and 'ou=system'
Compare 'ou=system' and 'ou=system'
* Compare 'ou=groups,ou=system' and 'ou=system'
* Compare 'ou=interceptors,ou=configuration,ou=sys
tem' and 'ou=system'
* Compare 'ou=configuration,ou=system' and 'ou=system'
Compare 'ou=system' and 'ou=system'

If we can change this compare function to work with Name instead of String we could have a huge improvment : more that 35x faster
(I wrote a micro-bench to mesure the difference : around 36 times faster).

As this is not the single place where we can gain time (we have a lot or String -> DN and DN -> String conversions during the Bind process), we would be able to handle Bind Request much much faster, too (being aware that we have a lot of other costly oper
aions that will nor allow a x40 improvment).

My personnal guess is that we should be able to handle around 5000 binds per second against the current 300, but this is just a guess


--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secur...nistrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira


Alex Karasulu

2006-03-16, 5:45 pm

Emmanuel,

Not a big deal but can you move this issue to DIRAPACHEDS? Were we not
going to use DIR for general issues for the TLP rather than for product
related issues?

Alex

Emmanuel Lecharny (JIRA) wrote:
> Improvment in the way DN are treated
> ------------------------------------
>
> Key: DIR-182
> URL: http://issues.apache.org/jira/browse/DIR-182
> Project: Directory
> Type: Improvement
> Reporter: Emmanuel Lecharny
>
>
> We have mesured that DN parsing is the hot spot in the server : we spend around 80 % of server time to parse DNs.
>
> After having studied the way BindRequest does handle DN, we can say that for a single bind for the user "uid=admin,ou=system", we have more than 40 parsing done. Here is a list of all the parsing in the DnComparator.compare() method :
> (The '*' in front of each line shows where a parsing of both DN is done)
> * Compare 'ou=groups,ou=system' and 'uid=admin,ou=system'
> * Compare 'prefnodename=sysPrefRoot,ou=system' and 'uid=admin,ou=system'
> Compare 'uid=admin,ou=system' and 'uid=admin,ou=system'
> Compare 'uid=admin,ou=system' and 'uid=admin,ou=system'
> * Compare 'ou=groups,ou=system' and 'uid=admin,ou=system'
> * Compare 'prefnodename=sysPrefRoot,ou=system' and 'uid=admin,ou=system'
> Compare 'uid=admin,ou=system' and 'uid=admin,ou=system'
> Compare 'uid=admin,ou=system' and 'uid=admin,ou=system'
> * Compare 'ou=groups,ou=system' and 'ou=system'
> * Compare 'ou=interceptors,ou=configuration,ou=sys
tem' and 'ou=system'
> * Compare 'ou=configuration,ou=system' and 'ou=system'
> Compare 'ou=system' and 'ou=system'
> Compare 'ou=system' and 'ou=system'
> * Compare 'ou=groups,ou=system' and 'ou=system'
> * Compare 'ou=interceptors,ou=configuration,ou=sys
tem' and 'ou=system'
> * Compare 'ou=configuration,ou=system' and 'ou=system'
> Compare 'ou=system' and 'ou=system'
> Compare 'ou=system' and 'ou=system'
> * Compare 'ou=groups,ou=system' and 'ou=system'
> * Compare 'ou=interceptors,ou=configuration,ou=sys
tem' and 'ou=system'
> * Compare 'ou=configuration,ou=system' and 'ou=system'
> Compare 'ou=system' and 'ou=system'
> Compare 'ou=system' and 'ou=system'
> * Compare 'ou=groups,ou=system' and 'ou=system'
> * Compare 'ou=interceptors,ou=configuration,ou=sys
tem' and 'ou=system'
> * Compare 'ou=configuration,ou=system' and 'ou=system'
> Compare 'ou=system' and 'ou=system'
> Compare 'ou=system' and 'ou=system'
> * Compare 'ou=groups,ou=system' and 'ou=system'
> * Compare 'ou=interceptors,ou=configuration,ou=sys
tem' and 'ou=system'
> * Compare 'ou=configuration,ou=system' and 'ou=system'
> Compare 'ou=system' and 'ou=system'
>
> If we can change this compare function to work with Name instead of String we could have a huge improvment : more that 35x faster
> (I wrote a micro-bench to mesure the difference : around 36 times faster).
>
> As this is not the single place where we can gain time (we have a lot or String -> DN and DN -> String conversions during the Bind process), we would be able to handle Bind Request much much faster, too (being aware that we have a lot of other costly op

eraions that will nor allow a x40 improvment).
>
> My personnal guess is that we should be able to handle around 5000 binds per second against the current 300, but this is just a guess
>
>
>



Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com