Balancing Fairness and Efficiency for Cache Sharing in Semi-external Memory System

Data caching and sharing is an effective approach for achieving high performance to many applications in shared platforms such as the cloud. DRAM and SSD are two popular caching devices widely used by many large-scale data application systems such Hadoop and Spark. Due to the limited size of DRAM as well as the large access latency of SSD (relative to DRAM), there is a trend of integrating DRAM and SSD (called semi-external memory) together for large-scale data caching. In this paper, we focus on the semi-external memory cache sharing for multiple users/applications. Two critical metrics, i.e., fairness and efficiency, are considered for the semi-external memory with several challenges. First, it should be sensitive to DRAM and SSD for the semi-external memory in view of their different access latencies. Second, it is crucial to have a policy that can balance fairness and efficiency elastically since there tends to be a tradeoff between them. Third, there is a cheating problem for efficiency cache allocation and we should have a robust allocation policy to address it. We propose a new policy called ElasticSEM for the semi-external memory. It performs the fair allocation of cache resources as a whole with the awareness of different access latencies between DRAM and SSD. Moreover, it contains a knob that allows users to tune and balance fairness and performance flexibly with a guarantee of θ-relaxed fairness, where θ-relaxed fairness refers to as the maximum difference of estimated cache resource allocations between any two users in SEM. Finally, we implement ElasticSEM in an in-memory storage system called Alluxio. The testbed experimental results show that ElasticSEM can achieve high performance and fairness.

[1]  Baochun Li,et al.  On the Fairness-Efficiency Tradeoff for Packet Processing with Multiple Resources , 2014, CoNEXT.

[2]  Carey E. Priebe,et al.  Graphyti: A Semi-External Memory Graph Library for FlashGraph , 2019, ArXiv.

[3]  Minho Lee,et al.  CFFQ: I/O scheduler for providing fairness and high performance in SSD devices , 2017, IMCOM.

[4]  David Cunningham,et al.  M3R: Increased performance for in-memory Hadoop jobs , 2012, Proc. VLDB Endow..

[5]  Nam Sung Kim,et al.  Fair share: Allocation of GPU resources for both performance and fairness , 2014, 2014 IEEE 32nd International Conference on Computer Design (ICCD).

[6]  Nancy M. Amato,et al.  Multithreaded Asynchronous Graph Traversal for In-Memory and Semi-External Memory , 2010, 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis.

[7]  Mahmut T. Kandemir,et al.  Application-aware Memory System for Fair and Efficient Execution of Concurrent GPGPU Applications , 2014, GPGPU@ASPLOS.

[8]  Bo Li,et al.  Coflex: Navigating the fairness-efficiency tradeoff for coflow scheduling , 2017, IEEE INFOCOM 2017 - IEEE Conference on Computer Communications.

[9]  Scott Shenker,et al.  Tachyon: Reliable, Memory Speed Storage for Cluster Computing Frameworks , 2014, SoCC.

[10]  Ryan Stutsman,et al.  Memshare: a Dynamic Multi-tenant Memory Key-value Cache , 2016, ArXiv.

[11]  Benjamin Hindman,et al.  Dominant Resource Fairness: Fair Allocation of Multiple Resource Types , 2011, NSDI.

[12]  Scott Shenker,et al.  Analysis and simulation of a fair queueing algorithm , 1989, SIGCOMM '89.

[13]  Jinyang Li,et al.  Piccolo: Building Fast, Distributed Programs with Partitioned Tables , 2010, OSDI.

[14]  Bingsheng He,et al.  Elastic Multi-resource Fairness: Balancing Fairness and Efficiency in Coupled CPU-GPU Architectures , 2016, SC16: International Conference for High Performance Computing, Networking, Storage and Analysis.

[15]  Vyas Sekar,et al.  Multi-resource fair queueing for packet processing , 2012, CCRV.

[16]  Vivek S. Pai,et al.  SSDAlloc: Hybrid SSD/RAM Memory Management Made Easy , 2011, NSDI.

[17]  Bingsheng He,et al.  A Survey on Spark Ecosystem: Big Data Processing Infrastructure, Machine Learning, and Applications , 2022, IEEE Transactions on Knowledge and Data Engineering.

[18]  Jeffery R. Westbrook,et al.  A Functional Approach to External Graph Algorithms , 1998, Algorithmica.

[19]  Kannan Ramchandran,et al.  EC-Cache: Load-Balanced, Low-Latency Cluster Caching with Online Erasure Coding , 2016, OSDI.

[20]  Jason Nieh,et al.  Grouped distributed queues: distributed queue, proportional share multiprocessor scheduling , 2006, PODC '06.

[21]  Jian Xiao,et al.  QKnober: A Knob-Based Fairness-Efficiency Scheduler for Cloud Computing with QoS Guarantees , 2018, ICSOC.

[22]  William E. Weihl,et al.  Lottery scheduling: flexible proportional-share resource management , 1994, OSDI '94.

[23]  Kamesh Munagala,et al.  ROBUS: Fair Cache Allocation for Multi-tenant Data-parallel Workloads , 2015, ArXiv.

[24]  Alexander S. Szalay,et al.  FlashGraph: Processing Billion-Node Graphs on an Array of Commodity SSDs , 2014, FAST.

[25]  Carey E. Priebe,et al.  knor: A NUMA-Optimized In-Memory, Distributed and Semi-External-Memory k-means Library , 2016, HPDC.

[26]  Brad Fitzpatrick,et al.  Distributed caching with memcached , 2004 .

[27]  Kai Shen,et al.  FlashFQ: A Fair Queueing I/O Scheduler for Flash-Based SSDs , 2013, USENIX Annual Technical Conference.

[28]  C. Priebe,et al.  Semi-External Memory Sparse Matrix Multiplication for Billion-Node Graphs , 2016, IEEE Transactions on Parallel and Distributed Systems.

[29]  Mung Chiang,et al.  Multiresource allocation: fairness-efficiency tradeoffs in a unifying framework , 2013, TNET.

[30]  Srikanth Kandula,et al.  PACMan: Coordinated Memory Caching for Parallel Jobs , 2012, NSDI.

[31]  Srikanth Kandula,et al.  Multi-resource packing for cluster schedulers , 2014, SIGCOMM.

[32]  Wenguang Chen,et al.  Automatic Irregularity-Aware Fine-Grained Workload Partitioning on Integrated Architectures , 2021, IEEE Transactions on Knowledge and Data Engineering.

[33]  Peter J. Varman,et al.  Balancing fairness and efficiency in tiered storage systems with bottleneck-aware allocation , 2014, FAST.

[34]  Seyong Lee,et al.  PUMA: Purdue MapReduce Benchmarks Suite , 2012 .

[35]  Jinyang Li,et al.  Building fast, distributed programs with partitioned tables , 2010 .

[36]  Arjun Singh,et al.  A practical algorithm for balancing the max-min fairness and throughput objectives in traffic engineering , 2012, 2012 Proceedings IEEE INFOCOM.

[37]  Josiah L. Carlson,et al.  Redis in Action , 2013 .

[38]  Ali Ghodsi,et al.  FairRide: Near-Optimal, Fair Cache Sharing , 2016, NSDI.

[39]  Yonggang Wen,et al.  GraphMP: An Efficient Semi-External-Memory Big Graph Processing System on a Single Machine , 2017, 2017 IEEE 23rd International Conference on Parallel and Distributed Systems (ICPADS).

[40]  Bu-Sung Lee,et al.  Fair Resource Allocation for Data-Intensive Computing in the Cloud , 2018, IEEE Transactions on Services Computing.

[41]  Bu-Sung Lee,et al.  Long-Term Multi-Resource Fairness for Pay-as-you Use Computing Systems , 2018, IEEE Transactions on Parallel and Distributed Systems.