Thank you to all of of our ApacheCon@Home 2021 sponsors, including:
STRATEGIC
---------------
Google
PLATINUM
--------------
Apple
Huawei
Instaclustr
Tencent Cloud
GOLD
-----------
Aiven OY
AWS
Baidu
Cerner
Didi Chuxing
Dremio
Fiter
Gradle
Red Hat
Replicated A presentation from ApacheCon@Home 2021
https://apachecon.com/acah2021
"There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors."
-- Leon Bambrick
Caches exist at all levels of a web request. These caches could be as low as the multi-level architecture within a CPU, stored on a client's computer by the browser, managed in a CDN, or the many steps in-between. While each of these types of caches are implemented differently they certainly share a common constraint: Caches cannot store everything forever. There are both growth (size) and scale (speed/access) limitations that prevent and force a limited capacity for caches. Because of these limitations, there are many strategies, policies, and algorithms to attempt to automatically manage the content being stored within a cache. However, not all caches can be automatically managed. Sometimes we must force a cache to refresh the content being stored, manually.
As a content provider there are times where you may require cached content stored in a CDN to be re-validated. Validation is a process within the CDN to automatically perform a check against the origin to ensure the content is fresh, most often based on a Time-To-Live value or expiration date. This same logic is used to perform a manual check as well. Apache Traffic Control provides an ability to mark the content as stale, triggering an automatic validation with the origin. Still, this might not be sufficient. A mis-configured HTTP server on the origin could still be supplying a response saying the content is fresh, even though it is not. In this case we need the ability to force the CDN to treat the content as a miss, not just stale. To do this we added refetch (TM, hehe) .
Now within ATC, we have the ability to create an invalidation job that forces a cache miss (not just stale), causing the cache to retrieve the content regardless of whether it is currently storing a previous state or not. For example, a news company wishes to update a story as the details arrive. To ensure the customer is retrieving the latest, most accurate, information, a simple refresh invalidation job may not be sufficient. As mentioned before, the cache policy could be set incorrectly, for example. Administrators can create a refetch invalidation job, which can be interpreted by the cache servers as a miss so that the content must be retrieved from the origin. Now our news stories are brought up to date outside of the cache content policy.