Yes, background_fill allows ATS to continue the object download after the
client that initiated the request aborts. However, this feature alone doesn't
help in working around the byte range cache issue. AFAIK, you will need
background_fetch plugin independent of background_fill.
In more detail, without background_fetch enabled, (on a cache miss) a byte
range request would only result in ATS fetching the requested byte range from
the Origin. Enabling background_fill will only help complete that partial byte
range download and not the full object download. Whereas, with background_fetch
enabled, (on a cache miss) a byte range request would result in two separate
requests - one for the requested byte range and a second (independent) request
for the full object.
Thanks,
Sudheer
On Thursday, August 6, 2015 12:18 PM, Mateusz Zajakala
<[email protected]> wrote:
One question about the background fetch plugin. How does it relate (if at all)
to configs
proxy.config.http.background_fill_completed_threshold
proxy.config.http.background_fill_active_timeout
If I understand correctly these configs instruct ATS to continue fetching file
from origin even though the client may disconnect. I also understand that
background fetch plugin does a similar thing when client issues a byte-range
request.
The interesting thing is that when byte-range request comes from the client ATS
reports in logs:
ERR_CLIENT_ABORT/206
So - is background_fill going to kick in? Or do I need the background fetch
plugin?
Ps. The case is delivery (streaming / progressive download) of large (>1GB)
video files with clients issueing range requests.
On Thu, Aug 6, 2015 at 6:00 PM, Madhava Gaikwad (madgaikw) <[email protected]>
wrote:
This is a problem even with varnish. Let me assess where I can quickly fix
this. We need one level of indirection(cache) to store the hashes of RR of same
URLs and then need a correct coalesce operator. Thanks for the confirmation and
help. Let me get back to you with my findings. Madhava From: Rushford, John
[mailto:[email protected]]
Sent: Thursday, August 06, 2015 9:15 PM
To: [email protected]
Subject: Re: partial object caching Yes, the requests may be served from cache
only if the requested range was previously requested. If you find that all
clients are requesting the same ranges, the plugin would be of help. Thanks--
John J. RushfordIPCDN Engineering1400 Wewatta Street, Denver Colorado
[email protected] From: "Madhava Gaikwad
(madgaikw)" <[email protected]>
Reply-To: "[email protected]" <[email protected]>
Date: Thursday, August 6, 2015 at 9:35 AM
To: "[email protected]" <[email protected]>
Subject: RE: partial object caching Thanks for the response John. This really
looks promising and it meets my first requirement. Yes, I wanted to talk about
that too. If first client send RR for 1-10 bytes and another RR for 11-20
bytes. If second client comes and asks for 1-12 bytes, this will still cause a
fresh fetch request, and cannot be served from cache. Thank you.Madhava From:
Rushford, John [mailto:[email protected]]
Sent: Thursday, August 06, 2015 8:41 PM
To: [email protected]
Subject: Re: partial object caching Madhava, I recently submitted a range
request plugin for ATS. If your analysis shows that clients are deterministic
with range requests, my plugin may be of use to you. See
plugins/experimental/cache_range_requests/ Thanks-- John J. RushfordIPCDN
Engineering1400 Wewatta Street, Denver Colorado
[email protected] From: "Madhava Gaikwad
(madgaikw)" <[email protected]>
Reply-To: "[email protected]" <[email protected]>
Date: Thursday, August 6, 2015 at 1:29 AM
To: "[email protected]" <[email protected]>
Subject: partial object caching Hello experts, I have legacy forward proxy used
in enterprise network facing to internet behind firewall. Unfortunately it
cannot do partial object caching. I am looking if I can get an alternate proxy
to do this.My requirement is:1. Partial object caching so updates by apple
etc. can be cached. Also video caching will just work.2. Streaming to
multiple client at same time should be possible from single server connection.
It seems varnish can do above stuff. But it works effectively as reverse proxy,
so I have to position it before my proxy, as it cannot work as upstream proxy
directly. Also its cache seems gets vanished after restart(Everything in cache
is from heap).Do you guys know if ATS can do this functionality? I believe it
is not possible, but I thought just ask if we achieve this by any means. A
pointing to how to would be really appreciated. Thank you from Newbie,Madhava