Enhancing both fairness and performance using rate-aware dynamic storage cache partitioning

In this paper, we investigate the problem of fair storage cache allocation among multiply competing applications with diversified access rates. Commonly used cache replacement policies like LRU and most LRU variants are inherently unfair in cache allocation for heterogenous applications. They implicitly give more cache to the applications that has high access rate and less cache to the applications of slow access rate. However, applications of fast access rate do not always gain higher performance from the additional cache blocks. In contrast, the slow application suffer poor performance with a reduced cache size. It is beneficial in terms of both performance and fairness to allocate cache blocks by their utility. In this paper, we propose a partition-based cache management algorithm for a shared cache. The goal of our algorithm is to find an allocation such that all heterogenous applications can achieve a specified fairness degree, while maximizing the overall performance. To achieve this goal, we present an adaptive partition framework, which partitions the shared cache among competing applications and dynamic adjusts the partition size based on predicted utility on both fairness and performance. We implemented our algorithm in a storage simulator and evaluated the fairness and performance with various workloads. Experimental results show that, compared with LRU, our algorithm achieves large improvement in fairness and slightly in performance.

[1]  Zhe Zhang,et al.  Memory resource allocation for file system prefetching: from a supply chain management perspective , 2009, EuroSys '09.

[2]  Dennis Shasha,et al.  2Q: A Low Overhead High Performance Buffer Management Replacement Algorithm , 1994, VLDB.

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

[4]  Sang Lyul Min,et al.  Towards application/file-level characterization of block references: a case for fine-grained buffer management , 2000, SIGMETRICS '00.

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

[6]  Kang-Won Lee,et al.  Scalable service differentiation in a shared storage cache , 2003, 23rd International Conference on Distributed Computing Systems, 2003. Proceedings..

[7]  Chita R. Das,et al.  Application-aware prioritization mechanisms for on-chip networks , 2009, 2009 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[8]  Tarek F. Abdelzaher,et al.  Differentiated caching services; a control-theoretical approach , 2001, Proceedings 21st International Conference on Distributed Computing Systems.

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

[10]  Song Jiang,et al.  LIRS: an efficient low inter-reference recency set replacement policy to improve buffer cache performance , 2002, SIGMETRICS '02.

[11]  Mohamed A. Sharaf,et al.  Dynamic partitioning of the cache hierarchy in shared data centers , 2008, Proc. VLDB Endow..

[12]  Xiaoning Ding,et al.  DULO: an effective buffer cache management scheme to exploit both temporal and spatial locality , 2005, FAST'05.

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

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

[15]  Gregory R. Ganger,et al.  The DiskSim Simulation Environment Version 4.0 Reference Manual (CMU-PDL-08-101) , 1998 .

[16]  Mahmut T. Kandemir,et al.  Improving I/O performance using soft-QoS-based dynamic storage cache partitioning , 2009, 2009 IEEE International Conference on Cluster Computing and Workshops.