MC2: Multiple Clients on a Multilevel Cache

In today's networked storage environment, it is common to have a hierarchy of caches where the lower levels of the hierarchy are accessed by multiple clients. This sharing can have both positive or negative effects. While data fetched by one client can be used by another client without incurring additional delays, clients competing for cache buffers can evict each other's blocks and interfere with exclusive caching schemes. Our algorithm, MC2, combines local, per client management with a global, system-wide, scheme, to emphasize the positive effects of sharing and reduce the negative ones. The local scheme uses readily available information about the client's future access profile to save the most valuable blocks, and to choose the best replacement policy for them. The global scheme uses the same information to divide the shared cache space between clients, and to manage this space. Exclusive caching is maintained for non-shared data and is disabled when sharing is identified. Our simulation results show that the combined algorithm significantly reduces the overall I/O response times of the system.

[1]  Anna R. Karlin,et al.  Implementing cooperative prefetching and caching in a globally-managed memory system , 1998, SIGMETRICS '98/PERFORMANCE '98.

[2]  Andrea C. Arpaci-Dusseau,et al.  Database-aware semantically-smart storage , 2005, FAST'05.

[3]  Y. Charlie Hu,et al.  Program-Counter-Based Pattern Classification in Buffer Caching , 2004, OSDI.

[4]  John Wilkes,et al.  My Cache or Yours? Making Storage More Exclusive , 2002, USENIX Annual Technical Conference, General Track.

[5]  Dharmendra S. Modha,et al.  SARC: Sequential Prefetching in Adaptive Replacement Cache , 2005, USENIX Annual Technical Conference, General Track.

[6]  Sang Lyul Min,et al.  A low-overhead high-performance unified buffer management scheme that exploits sequential and looping references , 2000, OSDI.

[7]  Avi Mendelson,et al.  Fairness enforcement in switch on event multithreading , 2007, TACO.

[8]  Anna R. Karlin,et al.  Implementation and performance of integrated application-controlled file caching, prefetching, and disk scheduling , 1996, TOCS.

[9]  Miron Livny,et al.  Priority-Hints: An Algorithm for Priority-Based Buffer Management , 1990, VLDB.

[10]  Ethan L. Miller,et al.  Design and management of globally distributed network caches , 2004 .

[11]  Aamer Sachedina,et al.  Second-tier cache management using write hints , 2005, FAST'05.

[12]  Yuanyuan Zhou,et al.  Second-level buffer cache management , 2004, IEEE Transactions on Parallel and Distributed Systems.

[13]  Xiaoning Ding,et al.  DiskSeen: Exploiting Disk Layout and Access History to Enhance I/O Prefetch , 2007, USENIX Annual Technical Conference.

[14]  Michael Dahlin,et al.  Cooperative caching: using remote client memory to improve file system performance , 1994, OSDI '94.

[15]  Bruce Momjian,et al.  PostgreSQL: Introduction and Concepts , 2000 .

[16]  Laszlo A. Belady,et al.  A Study of Replacement Algorithms for Virtual-Storage Computer , 1966, IBM Syst. J..

[17]  Giovanni Maria Sacco,et al.  Buffer management in relational database systems , 1986, TODS.

[18]  David J. DeWitt,et al.  An evaluation of buffer management strategies for relational database systems , 1986, Algorithmica.

[19]  Jim Zelenka,et al.  Informed prefetching and caching , 1995, SOSP.

[20]  Gregory R. Ganger,et al.  Argon: Performance Insulation for Shared Storage Servers , 2007, FAST.

[21]  Song Jiang,et al.  STEP: Sequentiality and Thrashing Detection Based Prefetching to Improve Performance of Networked Storage Servers , 2007, 27th International Conference on Distributed Computing Systems (ICDCS '07).

[22]  Stephen L. Scott,et al.  A unified multiple-level cache for high performance storage systems , 2005, 13th IEEE International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems.

[23]  Diego R. Llanos Ferraris,et al.  TPCC-UVa: an open-source TPC-C implementation for parallel and distributed systems , 2006, Proceedings 20th IEEE International Parallel & Distributed Processing Symposium.

[24]  Song Jiang,et al.  ULC: a file block placement and replacement protocol to effectively exploit hierarchical locality in multi-level buffer caches , 2004, 24th International Conference on Distributed Computing Systems, 2004. Proceedings..

[25]  Gala Yadgar,et al.  Karma: Know-It-All Replacement for a Multilevel Cache , 2007, FAST.

[26]  Christos Faloutsos,et al.  Flexible buffer allocation based on marginal gains , 1991, SIGMOD '91.

[27]  John H. Hartman,et al.  Efficient cooperative caching using hints , 1996, OSDI '96.

[28]  Luis Angel D. Bathen,et al.  AMP: Adaptive Multi-stream Prefetching in a Shared Cache , 2007, FAST.

[29]  Nimrod Megiddo,et al.  ARC: A Self-Tuning, Low Overhead Replacement Cache , 2003, FAST.

[30]  Christian Engelmann,et al.  A unified multiple-level cache for high performance storage systems , 2007, Int. J. High Perform. Comput. Netw..

[31]  Binny S. Gill On Multi-level Exclusive Caching: Offline Optimality and Why Promotions Are Better Than Demotions , 2008, FAST.