W3C home > Mailing lists > Public > www-lib@w3.org > April to June 2000

Turning off Pipelined Requests (re-send, with full message)

From: Taylor Gautier <tgautier@scale8.com>
Date: Sun, 4 Jun 2000 17:53:21 -0700
Message-ID: <A70B9418CDF9D3119B2500D0B72CEA2A02B947@adsl-63-202-31-163.dsl.snfc21.pacbell.net>
To: "'www-lib@w3.org'" <www-lib@w3.org>
[Now I've really doned it, I accidentally sent the first message before it
was finished, please disregard it, thank you]

First, please accept my apologies if I somehow missed a discussion which
answers my question.

As a first time user of the www-lib, I think I've made a pretty valiant
effort at keeping my questions at bay from the list.  

I have, however, been searching for a way to make simultaneous requests to
the same server, with moderate success, but none that I am truly happy with.
I looked through the past archives regarding this subject, and I found a few
relevant topics/answers.  Most of them had to do with Henrik flaming people
for asking to disable pipelined requests, so first, Henrik, if you're still
reading this list, please don't flame me until I present my case. :)

Second was that somebody mentioned that it would require some code changes
to several of the source files, I don't remember which ones (or who said it)
but it may have been HTHost, HTNet, and or HTEvent, or something along those
lines.

As it turns out I *HAVE* been able to implement this feature, but in all
senses of the word it is truly a hack.  What I did was to add a statement
that nulls out the "pres" variable in the HTHost_new function, which
essentially eliminates the results of a search for an already existing host.

I can now make simulataneous requests to the same server.  But I'd like to
know if there is a better way to handle this, surely as an HTTP/1.0
implementation, the library should be capable of doing this, no?  (As an
aside, another email had mentioned that HTHost_setMaxPipelinedRequests did
not seem to have any effect, and indeed it doesn't.  For that matter I
noticed that the code rejects, for no apparent reason, a value of 1.)

Thus my question is not so much as how to enable it, but how do I enable it
in a more elegant manner?  

And finally, let me decsribe my reasoning for wanting this feature:

1) The primary reasoning for me wanting this feature is that pipelined
requests assume that you are hitting a single web server.  It DOES NOT take
into account the very common practice of load-balancing a heavily trafficed
site behind an L2 or L4 switch.  Pipelining requests in this manner (over a
single TCP/IP connection) eliminates any potential gain of using multiple
servers.

2) The secondary reasoning is that pipelining of requests does not take into
account the very realistic nature of making HTTP requests over the WAN.  In
many instances, bandwidth over the WAN through a single TCP/IP connection is
restricted to some smaller amount which will not ever exceed the aggregate
amount that is truly available.  It is possible to gain better throughput
through the use of multiple connections (in essence, tricking a router that
thinks it knows better ;) to gain better aggregate bandwidth.  I did notice
a small blurb about this in the pipelined requests paper that is oft cited,
but no particular attention seems to have beeen paid to it.

Thanks for any help,

-Taylor Gautier
Received on Sunday, 4 June 2000 20:53:33 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 23 April 2007 18:18:36 GMT