Hi this is Shu-Chih Lin from ATT. We are testing ATS 5.1.2 on VM for a new use
case and had the following question.....any help/insight you can share is much
appreciated.
Question:
- Is there a configuration directive (or combination of
directive(s)/overwrite(s)) which can force revalidation to Origin before
serving for every incoming
request no matter what?
More details:
- Originally we thought by setting "proxy.config.http.cache.when_to_revalidate"
to 2 (or had LUA script to set e.g. "max-age overwrites to -1 or 0" at
read_response()) would be sufficient. Yet based on our tests, when requests
for the same object arrived in tight sequence, we observed sometimes
ATS would still serve from local cache without revalidating with origin first
When we turned on debug, we observed:
- ATS looked to decide whether a cached object was fresh by comparing object's
"final freshness_limit" (set by cache-control or config directive, 0 being
the smallest value) to "calculated current_age" ("Age" value upon ingest plus
resident time). Object was considered fresh (to serve from local cache)
if current_age <= fresh_limit.
- When requests arrived in tight sequence, 304 from the prior request would
reset object's Age to 0 to cause the next req (if arrived at the same sec) to
be
served locally without revalidating with origin 1st as expected (since Age
== fresh_limit == 0)
Thanks in advance for your help.
Shu-Chih