On 2014-05-13 11:53, Amos Jeffries wrote:
On 13/05/2014 10:52 p.m., Amos Jeffries wrote:
On 13/05/2014 4:56 a.m., Michael Pye wrote:
On 2014-05-12 16:52, Amos Jeffries wrote:
Here is the guts of the original patch as should be relevant to
Squid-3.5 (or 3.4).
http://master.squid-cache.org/~amosjeffries/patches/Pye_s35.patch
Many thanks Amos, I've just tried this and it does indeed query
sibling
for stale content as we want.
I think there is some logic that will need updating however in
HttpHeader.cc possibly, as when an object becomes stale and the
sibling
does not have a fresh copy, the origin is queried but the "Age:"
and
"X-Cache:HIT from" headers are still on the new request, even
though it
was a fresh check from the origin. I think these headers need to be
deleted/updated.
Is this a fully new set of headers+object from the server?
or a revalidation update/refresh from the server?
On the former Age and X-Cache are correct because it is "just" a
fresher
update of the initial cache HIT object.
Oops I meant s/former/latter/.
Sorry - reread what you said. So if its a revalidation and the content
hasn't changed (304 from origin), under normal squid *without* this
patch, Age will return to 0 and count up to the max-age again before
doing another revalidation. A max-age 60 second object will remain in
cache for 60 seconds before revalidation.
With the patch applied, if squidA gets a copy of the content from
siblingB where Age already has X seconds set, when that object is next
revalidated against the origin (now siblingB copy has expired), its Age
remains at X seconds, counting up to max-age. The max-age 60 object is
now revalidating against the origin every 30 seconds, I would have
expected it to return to validating every 60 seconds.
Thanks
Michael