![]()  | 
We implemented CacheSim (Figure 7), a framework 
which allows us to benchmark various algorithms 
for a wide range of cache sizes, real-life traces, and any single and multi-path
hierarchy. CacheSim is instantiated with a given cache size and
one of the following policies: LRU, ARC, DEMOTE-LRU, DEMOTE-ARC, 
PROMOTE-LRU, and PROMOTE-ARC. One instance of CacheSim simulates one level of
cache in a multi-level cache hierarchy, while communicating to the higher and lower
caches over a TCP/IP network. 
The highest level reads requests from a trace file one I/O (size 
 bytes) at a time, with no thinktime, while the lowest level simulates disk responses with a fixed response time.
Apart from the traditional read interfaces, CacheSim also implements two special interfaces:
CacheSim simulates the following realistic 
roundtrip response times for storage system hierarchies (based on our knowledge):  
For two-level scenarios: 
 = 
 ms, 
 = 
 ms, 
 = 
.
For three-level scenarios: 
 = 
 ms, 
 = 
 ms, 
 = 
 ms, 
 = 
 ms. The results in this paper are applicable for any set of values where 
.