He Ivo,

nice work! Can we (re-)use that test and is it easy to use. Ie I can
image we can run it in some fixed configs using a mvn profile or
something :)

2011/2/4 Ivo Ladage-van Doorn <Ivo.Ladage-vanDoorn at gxsoftware.com>:
>
> Looking at the results my conclusion is:
>
> ????????? With only tenant unaware filters and servlets registered, there is
> not much difference in performance/throughput of the new dispatch mechanism
> compared to as it was in 0.6.0. This can be seen looking at the results from
> run 1 and 2.

That is what I expected and there are still some optimizations to do
by precalculating
the filter/servlet array passed into the chain and optimizing matching.

> ????????? Increasing the amount of registered tenant aware servlets or
> filters (not invoked, just available in the system) has a major impact on
> response times/throughput in the new dispatch mechanism as opposed to as it
> was in 0.6.0. With a reasonable amount of servlets registered (i.e. 50), in
> the original 0.6.0 version increasing the amount of tenants did not have
> much impact on response times/throughput as opposed to the new dispatch
> mechanism. With 50 servlets and 50 tenants, response times increase by a
> factor 7 and throughput drops with 86%. This can be seen looking at the
> results of run 3, 4 and 5.

Can be improved on again by formentioned optimizations. In the end however it
makes sense that longer chains affect performance. With regard to throughput
I also suspect a synchronization issue. I'll look into that.

> ????????? With the new tenant mechanism, creating or removing 100 tenants in
> an environment with already 100 servlets registered takes a very long time
> (up to 12 seconds per tenant).

Yup, not much the dispatcher can do about that. As all service dependency
/registration logic seems most synchronous this effect is to be expected. not
sure we can fix that. It should not affect runtime behavior too much though.

> ????????? I wasn?t able to test with a significant amount of tenant aware
> filters, as this results in a StackOverflowError in the new dispatcher (see
> http://jira.amdatu.org/jira/browse/AMDATU-285). Hence the ?NaN? values in
> run 5.

I'll look into that if you give me the test :)

> NB: in the default Amdatu runtime there are 51 servlets of which 8 are
> tenant aware and 11 filters of which none are tenant aware.

We should be aware as to not introduce too much specifically filters. Eg. non
tenant ones and/or no unnessecary ones like the rest dispatchers.

grz
Bram

Reply via email to