Hi Shaun-
I agree that the documentation suggests that they are not related.  However, in 
practice, they do appear to be related.  I grabbed a few hundred MB object, 
turned on read_while_write, and fetched it twice in quick succession.  The 
second fetch also hit the origin. Then, after dropping 
background_fill_completed_threshold to a small percentage (1%; and clearing the 
cache), and repeating, only the first request hit the origin.  (tests run on 
3.3.4, mac osx, with localhost httpd as origin, and ~400MB object).

miles



----- Original Message -----
From: Shaun McGinnity <shaun.mcginn...@owmobility.com>
To: "dev@trafficserver.apache.org" <dev@trafficserver.apache.org>; Miles Libbey 
<mlib...@apache.org>
Cc: 
Sent: Wednesday, July 17, 2013 6:31 AM
Subject: RE: background fill threshold default?

Hi Miles,

Background fill is not related to serving from cache. The docs describe 
proxy.config.http.background_fill_completed_threshold as "The proportion of 
total document size already transferred when a client aborts at which the proxy 
continues fetching the document from the origin server to get it into the cache 
(a background fill)." The key here is "when a client aborts". If the client 
doesn't abort early then background fill will not be active.

Shaun


-----Original Message-----
From: Igor Galić [mailto:i.ga...@brainsware.org] 
Sent: Wednesday, July 17, 2013 1:09 PM
To: dev@trafficserver.apache.org; Miles Libbey
Subject: Re: background fill threshold default?



----- Original Message -----
> Hi folks-
> I have frequently heard the complaint that ATS does not do read while 
> write -- that, as a reverse proxy, while an object is not yet in 
> cache, it forwards all connections to the origin until a version 
> exists in the cache.  The complaint is of a thundering herd -- a new 
> popular object becomes available, and the origin gets immediately 
> flooded with requests.  Part of this is likely because there are 2
>  relevant configs (if not more) that need to be set in tandem for it 
> to work: proxy.config.cache.enable_read_while_writer (which the 
> documentation says is set to off by default), and
>  proxy.config.http.background_fill_completed_threshold, which is set 
> to 50% (eg, 50% of the object needs to be downloaded before it can be 
> used to serve other requests.
> 
> Should we consider both turning on read while write on by default, and 
> reducing the background_fill_completed_threshold down to a smaller 
> number (5%? 1%)? What are the upsides of the current defaults and 
> downsides of changing them?

The main downside is that the feature isn't widely enough tested in the field 
by our developers, or that we haven't had enough (positive or otherwise) 
feedback from users.

re smaller numbers: Depending on
a) object size
b) bandwidth of users
c) size of the herd

5% or 1% may be way to small. But this is my gut speaking, I too don't have the 
experience in that regard.

> miles
> 

--
Igor Galić

Tel: +43 (0) 664 886 22 883
Mail: i.ga...@brainsware.org
URL: http://brainsware.org/
GPG: 6880 4155 74BD FD7C B515  2EA5 4B1D 9E08 A097 C9AE

Reply via email to