next up previous contents
Next: Client polling Up: Cache Coherency Checks Previous: HTTP headers used for

Time to Live (TTL)

In this technique each cached page is assigned an expiration time (TTL). Until this time expires, the document is served from cache. Once it expires, the first GET will be handled by sending a conditional GET to the next higher cache to check if the page has changed; at this time the expiration time is reset to the default value. Different caches may have different algorithms for setting the expiration time. A very simple one would just set it to the date in the Expires header. The problem is that most pages don't have this header present, and for a good reason: for many pages it is difficult to estimate their lifetime in advance. Other algorithms set the expiration time to the caching time plus some interval, which in many cases is (a fraction of) the time since the document was last modified.

While these techniques will do better than the naive ones, they are ad-hoc, and, not surprisingly, unsatisfactory. Users have no guarantee as to document staleness, they cannot tell how much staleness they are willing to tolerate, and they are forced to wait until the validation check is done, while they may be very happy reading the cached page. Also, it is difficult as to which cached object should be assigned what value as their TTL, and obviously every cached object will not have the same TTL. A modified TTL, Adaptive TTL is a technique whereby the TTL of an object is updated within the cache, when a cache hit occurs.


next up previous contents
Next: Client polling Up: Cache Coherency Checks Previous: HTTP headers used for
Anil Gracias
2001-01-18