directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Karasulu <aok...@bellsouth.net>
Subject Re: [jira] Created: (DIR-182) Improvment in the way DN are treated
Date Thu, 16 Mar 2006 15:18:14 GMT
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=system' 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=system' 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=system' 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=system' 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=system' 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 operaions 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 :)
>
>
>   


Mime
View raw message