This preview shows page 1. Sign up to view the full content.
Unformatted text preview: computation to the data; with caching, we bring the data to the computation. If we always send the computation to the data, then the result is simple, if a bit inefficient. (How inefficient – possibly 100K x!) Caching provides an extra dimension of flexibility to the design – location independence for where we put the data and where we put the computation (indeed, we can move around the location depending on the needs of the application). Of course there are issues with security, fault tolerance, etc, that we’ll punt for now. All caching systems face the same set of design issues: what items to cache (data?, results of computation?) what to evict (if not enough space to store everything) where to look on a miss? other clients? Server? What’s relative cost of LAN, WAN, disk? what happens when there is an update? Multiple copies of state that might be stale. Our focus today: this last question; see 451 for the first two. Need to start a bit abstractly. Consider a memory, with ability to load/sto...
View Full Document
- Spring '14