A cache hierarchy is just what you might expect—an arrangement of caches that cooperate with each other. In a cache hierarchy, the lower layers forward cache misses up to the higher layers until a cache hit is found or the request is sent to the origin server. Cache hierarchies are attractive because they can offer performance improvements. Some of the requests that are misses in your cache will be hits in your neighbor’s caches. This further reduces wide-area network bandwidth and improves download speeds.
However, you must carefully consider a number of important issues surrounding hierarchies, such as trust, freshness, scalability, and effects on routing. These are particularly important when the members of the hierarchy are controlled by different organizations. It’s often awkward and difficult to participate in a hierarchy in the absence of an existing business relationship. Large organizations, especially, are more comfortable being self-sufficient rather than relying on others.
In this chapter, we’ll talk about hierarchies in general, focusing on definitions and issues. In Chapter 8, we’ll learn about the protocols that make meshes and hierarchies possible. Caching proxies use these protocols to decide which neighbor, if any, should be the next hop for a particular request.
Web cache hierarchies can be complicated and amorphous. We use the terms parent, child, and sibling to describe the relationship between any two caches. ...