httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dean gaudet <dgaudet-list-new-ht...@arctic.org>
Subject Re: Piplined requests in HTTP/1.1
Date Thu, 22 Mar 2001 02:07:15 GMT
On Wed, 21 Mar 2001, Bill Stoddard wrote:

> And my rub is this... Apache has a lot of code path dedicated to checking for pipelined
requests.
> Apache 1.3 ap_bhalfduplex does an extra select on almost every single request, regardless
of whether
> the connection is HTTP/1.0, HTTP/1.1, keep-alive or not (2.0 does similar things) all
because the
> client -might- pipeline a request.  That extra select is expensive. Thus my question
if pipelined
> requests are really being used.

in 2.0 the "extra" select isn't extra any more (because you're about to
block in poll for a timeout or read event anyhow).  i don't really see the
problem... it's not really a case where you can count the system call and
say "it's obvious this performs worse".

the alternative, when supporting pipelining, is to make non-optimal
packets.  which sucks worse than the system call does.  (or at least it
sucks worse on anything sane such as linux, you know how much tolerance i
have for kernels that have expensive system calls :).

the w3c paper which caused me to fix 1.3's pipeline support is a good
read:  http://www.w3.org/Protocols/HTTP/Performance/Pipeline.html

also, this is one of those cases where my personal opinion is that i'd
rather have an apache which works best for pipelined responses, regardless
of what crap clients are out there.  it's a chicken and egg problem.  if
apache's performance sucked in this respect then clients would never
change.  at least we're on the right side of this equation.

(note i haven't tested this stuff in 2.0 lately, not sure if it's actually
as clean as 1.3 is yet... it should have been one of your harder problems
to get right when doing the 2.0 i/o layer.)

-dean


Mime
View raw message