One of the major features of the WARP protocol, is request multiplexing, or
the ability to process more than one request at the same time over the same
socket. This concept was introduced in AJPv2.0 when we were still thinking
at JServ, and never got implemented because it was thought it was too
complicated to code.

Well, I made it, and let me tell you, it was the biggest mistake EVER. Not
happy with the performances of the current implementation, I tried to look
around at the possible causes of this problem (the average transfer rate on
Tomcat 4.0 is 50% slower when using the webapp connector in Apache compared
to the stand-alone HTTP stack and ridiculous when compared to the transfer
rate of Apache itself), and the main problem resided in the multiplexing
stuff.

Even if less resource demanding (you use just one socket for ALL your
requests), synchronizing all this data for transmission is a big pain, and
it's exceptionally slow, for sure the kernel-optimized routines to transmit
IP packets are far better tuned than everything I can come up with (I went
down to see some of the I/O code in Solaris, FreeBSD and Linux from the
sources, and it's a heck of a code).

So, the result is that I'm going to drop this feature from mod_webapp and
the WARP protocol, as it's too damn slow, even if resources utilization is
far less...

    Pier (writing the new spec)

-- 
----------------------------------------------------------------------------
Pier P. Fumagalli                              <mailto:[EMAIL PROTECTED]>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to