 |
|
 |
|
|
 |
[jira] Created: (DIR-182) Improvment in the way DN are treated |
 |
 |
|
|
03-16-06 01:45 AM
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 aro
und 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 pars
ing done. Here is a list of all the parsing in the DnComparator.compare() me
thod :
(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 w
e 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 Str
ing -> 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
[ Post a follow-up to this message ]
|
|
|
 |
|
 |
|
 |
|
|
 |
Re: [jira] Created: (DIR-182) Improvment in the way DN are treated |
 |
 |
|
|
03-16-06 10: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 a
round 80 % of server time to parse DNs.
>
> After having studied the way BindRequest does handle DN, we can say that f
or a single bind for the user "uid=admin,ou=system", we have more than 40 pa
rsing 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 handl
e 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 p
er second against the current 300, but this is just a guess
>
>
>
[ Post a follow-up to this message ]
|
|
|
 |
|
 |
|
 |
|
|
|
Sponsored Links |
 |
 |
|
|
 |
All times are GMT. The time now is 12:55 AM. |
 |
|
|
 |
|
 |
|
|
 |
|
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is OFF
|
|
|
|
Medical and Health forum | Computer Games Reviews | Graphics design forum
|
 |
|
 |
|