Dynamic Memory Partitioning for Cloud Caches with Heterogeneous Backends
- 17 April 2017
- conference paper
- conference paper
- Published by Association for Computing Machinery (ACM) in Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering Companion
Abstract
Software caches, implemented with in-memory key-value stores, are important components of cloud architectures. In a common scenario, one server may serve requests from several applications with different workloads, each supported by a different backend (database or storage system); these applications compete for an allocation of the total memory. We present a model for dynamic memory partitioning for cloud caches with heterogeneous backends. Our work differs from recent work for cloud caches in that we consider: (1) the effect of having backends with different performance profiles, and (2) the cost of re-partitioning the memory. We discuss implementation issues that must be addressed, including the need for on-line and lightweight mechanisms for estimating the miss rate curves (MRCs) and ways to solve the non-convex optimization problem; specifically, we propose a probabilistic adaptive search algorithm that can be used for discontinuous, non-differentiable, or non-convex MRCs.Keywords
Funding Information
- Google (Google Faculty Research Award)
This publication has 3 references indexed in Scilit:
- Software-defined cachingPublished by Association for Computing Machinery (ACM) ,2015
- Talus: A simple way to remove cliffs in cache performancePublished by Institute of Electrical and Electronics Engineers (IEEE) ,2015
- The Internet at the Speed of LightPublished by Association for Computing Machinery (ACM) ,2014