next up previous
Next: The Costs of a Up: ReduceReuse, Recycle: An Previous: Introduction

Architecture and Rationale

 

   figure29
Figure 1: A CRISP distributed proxy cache.

The CRISP cache has been implemented and is in active use at AT&T Labs. Our current prototype is built on top of the Harvest cache [6]. Figure 1 depicts the structure of a CRISP cache. Each client (e.g., a browser) is bound to one of several caching servers or proxies, which cache objects on behalf of their clients. Any URL fetch request that misses in a client's private browser cache (if any) is sent to the local proxy. The CRISP cache is cooperative: if the requested object is cached at any proxy in the cache, the object is delivered from that cache without accessing its home Internet site.

To probe the cooperative cache, the proxy forwards the requested URL to a mapping server. The mapping service maintains a complete cache directory; proxies notify the mapping service any time they add or remove an object from the cache. In this way, any proxy can probe the entire cache with a single unicast message exchange. If the map indicates that a requested object is resident in a peer, the requesting proxy retrieves the object directly from that peer, and returns it to the client. To the client, a CRISP cache appears exactly as a traditional proxy.

CRISP's use of a central mapping service distinguishes it from other cooperative Internet caches, e.g., the Harvest cache [6], its successor Squid [1], and Malpani et. al. [10]. In these systems, each proxy probes the cache by multicasting queries to all of its peers, to avoid relying on any single peer or a mapping server. If the request generates multiple hits, the requester can select its preferred site based on time to respond. Unfortunately, multicasting increases network traffic and forces all caches to respond to each request in most cases. In effect, every caching server incurs the load of cache probes that are limited to the mapping server in CRISP.

The Harvest cache and its predecessors [2] also support a hierarchy of caches, e.g., for regional or global caches. CRISP complements rather than replaces hierarchical caching. CRISP caches could be used to flatten the lowest levels of a hierarchical cache, or to incrementally expand capacity at any level of a hierarchy.




next up previous
Next: The Costs of a Up: ReduceReuse, Recycle: An Previous: Introduction

Syam Gadde
Fri Mar 28 10:09:42 EST 1997