Re: concurrent requests?

From: Adrian Chadd <adrian@dont-contact.us>
Date: Wed, 31 May 2000 22:50:00 +0800

On Wed, May 31, 2000, Henrik Nordstrom wrote:
> Adrian Chadd wrote:
>
> > Right, what clients actually do this? I guess if its there it should
> > be implemented properly. :-P .. Is there a chance of someone actually
> > tidying this up or can I just disable it totally for the time being ?
>
> Internet Explorer sometimes does pipelining I think.
>
> Other than this it is mostly batch tools.
>
> pipelining certainly deserves to be implemented properly. It is very
> important for HTTP performance over high latency links. What is properly
> in this case I don't know. Note that blindly doing pipelining from a
> proxy is not the proper way here. Actually, what Squid is doing is quite
> close to being the proper way but it is or at least have been quite
> error prone internally and somewhat sub-optimal..
>
> One quite related thing which is certainly not done in the proper way is
> Squid's retrial of failed requests. Squid is way to eager to retry
> failed requests while much of this responsibility should be put on the
> originating user agent. Also, it is a bit careless when selecting a
> connection to send a request on in the first place (over optimized
> selection)..

Hmm .. ok. I'll look at request pipelining later on. The two things
that is really required here to totally kill deferred reads is

* half-closed connection handling
* some form of optimistic io feedback where the server connection
  populating a MemObject can be kicked into reading more data

Right now half-closed connections are handled inside client_side.c
and the connection populating a MemObject for the store clients to read
off just runs as fast as possible and is throttled by by the
deferredread function. With a comm_read() implementation I think it
will be possible for a sane event-handled half-closed connection
system to be written. Stopping a MemObject read when it is too far
ahead isn't going to be hard, but there isn't (AFAIK) a way to
kickstart it again.

Adrian

-- 
Adrian Chadd			Build a man a fire, and he's warm for the
<adrian@creative.net.au>	rest of the evening. Set a man on fire and
				he's warm for the rest of his life.
Received on Wed May 31 2000 - 08:50:19 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:12:27 MST