In this structure, the mapping service consists of several mapping servers, each assigned some exclusive subset of the URL-space using a hash function in a manner similar to the Cache Array Routing Protocol (CARP) [18]. Caching servers synchronously query the assigned mapping server when a client's request results in a local cache miss, and notify the appropriate mapping server when an object is added to or evicted from the local cache.
The degenerate case with one mapping server is the structure implemented and evaluated for the initial CRISP prototype. A CRISP mapping server on a 266 MHz AlphaStation 500 system with 100 Mb/s Ethernet yielded an average query latency of less than 3 ms at a request rate corresponding to approximately 85,000 clients (estimated by determining the average per-client access rate seen at an AT&T proxy during peak demand periods) [10]. In fact, the mapping server has little effect on access latency since it merely performs a hash lookup on an in-memory directory. A muchlarger share of access latency appears at the caching server where queued requests are waiting to be serviced and competing for resources with TCP connections in progress.
The advantage of these configurations is that they always reflect the complete contents of the collective cache, yielding ideal hit ratios for a cache of a given size. Their key limitation is that the query to the mapping server lies on the critical path of object requests that miss in caching servers. This requires that caching servers be close enough to all mapping servers that the latency of the query is imperceptible to the user. A tightly-coupled cluster of proxies or an ISP with several proxies on an internal network could use these structures successfully.