Next: Object Lifetimes Up: A Hierarchical Internet Object Previous: Cache Hierarchy vs.

# Cache Consistency

The Harvest cache, patterned after the Internet's Domain Naming System, employs TTL-based cache consistency. Like the Domain Naming system and the Alex File System, the Harvest cache can return stale data. If the object's MIME header conveys an expiration time, Harvest respects it. If the object's MIME header conveys its last modification time, Harvest sets the object's TTL to one half the time elapsed since the object was last modified. If the object carries neither time stamp, the cache assigns a default TTL according to the first regular expression that the URL matches. Unlike HTTP which can specify expiration times, Gopher and FTP provide no mechanism for owners to specify TTLs. Hence, when the Harvest cache fetches a Gopher or FTP object, it assigns it a default TTL based on regular expression. When the TTL expires, the cache marks the object as expired. For references to HTTP objects, the cache can revalidate expired objects using a ``get-if-modifed'' fetch. Get-if-modified fetches are propagated correctly through the hierarchy.

We believe that Web caches should not implement hierarchical invalidation schemes, but that sites exporting time-critical data should simply set appropriate expiration times. We say this because hierarchical invalidation, like AFS's call-back invalidations [13], requires state, and the Internet's basic unreliability and scale complicate stateful services. Below, we present data from two additional studies that support this position.

- Object Lifetimes
- Hierarchical Invalidation