Hi,
As you say, it is hard to strike a right balance between downloading too much and not downloading data that can be cached. This is especially hard for general purpose cache engines like Squid without some knowledge about the access patters of the URLs being accessed.


Since Squid provides parameters to change the behavior, I think it is doing a very good job.
Some suggestions would be
* Provide a higher default than 16KB for quick_abort_max parameter.
* Provide the ability to configure the quick_abort_* and range_offset_limit parameters on a URL regular expression basis rather than 1 set for all the URLs. For ex, this allows Administrators to configure downloads from a particular site to become more cacheable, but not change the parameters for every other URLs from other sites.


Thanks
Marc.


From: Henrik Nordstrom <[EMAIL PROTECTED]>
To: osuser os <[EMAIL PROTECTED]>
CC: [EMAIL PROTECTED], <[EMAIL PROTECTED]>
Subject: Re: [squid-users] Squid 2.5 and Range requests
Date: Mon, 26 Apr 2004 07:20:08 +0200 (CEST)

On Sun, 25 Apr 2004, osuser os wrote:

> Hi,
> Thanks for the reply.
> When I set the quick_abort_min directive to be a large number such as 1000
> KB, then I see that the files are getting cached as expected. Hence it seems
> that quick abort is indeed the problem.
>
> Can you give more details about how Squid determines that the client has
> aborted.


Squid does not actually care why the client disconnected from the request
in the quick_abort_* directives. These directives apply on what Squid
should do on a request where there no longer is any clients waiting for
data. A client who has already received all it wants from a Range request
logically disconnects from the forwarded request.

It is very hard to find a accurate balance when allowing Squid to fetch
content not explicitly asked for by any client. In whatever combination
you can easily end up wasting a lot of bandwidth.

Range requests: Client only requests a small part of the file then
decides the rest is not wanted. Or if range_offset_limit is large times
out while waiting for the reply.

Aborted requests: More or less the same. Client or another client may or
may not attempt to finish the retreival later.


range_offset_limit was designed for handling the case where the client starts by downloading the end of the object, then the rest of the object. This is seen for example when using the Acrobat Reader plugin which fetches the table of contents at the end of PDF files first.


> Even though the socket connection is alive, I see that Squid > determines that the connection is aborted.

Squid works with HTTP messages, not neccesarily sockets..

> What can client do (any specific header for example) to prevent squid from
> thinking that the client is aborting?


In this specific case, not use a Range header..




Suggestions on how you think Squid should handle these cases better is welcome. Patches even more so.

Regards
Henrik


_________________________________________________________________
Stop worrying about overloading your inbox - get MSN Hotmail Extra Storage! http://join.msn.com/?pgmarket=en-us&page=hotmail/es2&ST=1/go/onm00200362ave/direct/01/




Reply via email to