On Fri, 21 Jun 2002, Christopher K.  St.  John wrote:

>  - What are the peformance goals? Actual numbers or a 
>    percentage improvement goal is something that I would
>    really like to see in the proposal. 

Do you have a proposal :-) ? 
I have no idea what number to put in the proposal. As fast as 
3.3 ? Faster than resin ? 

>  - Conventional wisdom is that performance tuning code makes
>    it more complex, not simpler.

So far experience has shown that making the code simpler and
cleaner also improve the performance and make it easier to 
choose better alghoritms and identify hotspots.

I think we are far beyond the 'early optimization' stage - 
and that's what the 'conventional wisdom' warns against.
We have 2 released servlet containers, a large ammount
of time ( by quite a few people ) has been spent on 
looking at performance, and Coyote ( and the 3.3 core) 
are result of that.

Using the right data structures and alghoritms is not 
'early optimization' and I don't think it will hurt. 
 
>  - Layering the code, so that different protocol implementation
>    can be plugged in, is likely to reduce performance. And make
>    the code more complicated. For best  performance, you want
>    to skip the layering and framework code entirely and make
>    everything special-purpose.

There is not much layering - just some base objects ( Request/Response ),
a hook mechanism and some low-level tools needed by all 
protocols.
Again, the experience so far shows that clean code is usually
faster. 

And given the other goals - I don't think a monlitical single-protocol 
container is a choice.


>  - Better integration with the server makes the code more
>    complex. Integration with multiple servers (like Tomcat 3,
>    Tomcat 4 and Tomcat 5) would normally add quite a bit
>    of complexity.

That's a requirement - to better integrate with the servers,
and we'll have to deal with the associated complexity. 


>  Performance, flexibility and simplicity are at odds with
> one another. This is a basic engineering truth, and you're
> going to have a tough time convincing me it doesn't apply
> here.

There are many tradeoffs, and if the extremes are at odds with
each other ( i.e. extreme performance or extreme flexibility or
extreme simplicity ), but most of the times a clean design is
faster, more flexible and simpler than a complex design.

I still don't understand what's your point - i.e. what is your
proposal on where to draw the line. 


>  Ok, but that's an argument for rewriting o.a.ajp, not for
> making Coyote the core of Tomcat 5. Is there something about
> the interfaces defined in Catalina that makes optimizations
> impossible? 

I won't answer this question, check the archives if you want. 


Costin


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to