Optimizing Cloud Caches For Free: A Case for Autonomic Systems with a Serverless Computing Approach

While significant advances have been made towards realizing self-tuning cloud caches, existing products still require manual tuning. These systems are built to serve requests extremely fast and anything that consumes resources not directly related to the request-serving control path is avoided. We show that severless computing platforms can be leveraged to solve complex optimization problems that arise during self-tuning loops, and thus can be used to optimize resources in cloud caches, for free. To show that our approach is feasible and useful, we implement SPREDS (Self-Partitioning REDis), a modified version of Redis that optimizes memory management in the multi-instance Redis scenario. Through this case study and cost analysis, we make a case for implementing the controller of autonomic systems using a serverless computing approach.

[1]  Irfan Ahmad,et al.  Cache Modeling and Optimization using Miniature Simulations , 2017, USENIX Annual Technical Conference.

[2]  Thomas Vogel,et al.  Efficient Utility-Driven Self-Healing Employing Adaptation Rules for Large Dynamic Architectures , 2017, 2017 IEEE International Conference on Autonomic Computing (ICAC).

[3]  Cristina L. Abad,et al.  Dynamic Memory Partitioning for Cloud Caches with Heterogeneous Backends , 2017, ICPE.

[4]  Sachin Katti,et al.  Dynacache: Dynamic Cloud Caching , 2015, HotStorage.

[5]  Ryan Stutsman,et al.  Memshare: a Dynamic Multi-tenant Key-value Cache , 2017, USENIX Annual Technical Conference.

[6]  Antony I. T. Rowstron,et al.  Software-defined caching: managing caches in multi-tenant data centers , 2015, SoCC.

[7]  Adam Prügel-Bennett,et al.  When a genetic algorithm outperforms hill-climbing , 2004, Theor. Comput. Sci..

[8]  Marin Litoiu,et al.  Adaptation as a service , 2018, CASCON.

[9]  Surajit Chaudhuri,et al.  Automatically Indexing Millions of Databases in Microsoft Azure SQL Database , 2019, SIGMOD Conference.

[10]  Bruce M. Maggs,et al.  The Internet at the Speed of Light , 2014, HotNets.

[11]  Yale N. Patt,et al.  Utility-Based Cache Partitioning , 2006 .

[12]  Adam Silberstein,et al.  Benchmarking cloud serving systems with YCSB , 2010, SoCC '10.

[13]  Cristina L. Abad,et al.  A storage-centric analysis of MapReduce workloads: File popularity, temporal locality and arrival patterns , 2012, 2012 IEEE International Symposium on Workload Characterization (IISWC).

[14]  Irfan Ahmad,et al.  Efficient MRC Construction with SHARDS , 2015, FAST.

[15]  Konstantinos Psounis,et al.  A randomized Web-cache replacement scheme , 2001, Proceedings IEEE INFOCOM 2001. Conference on Computer Communications. Twentieth Annual Joint Conference of the IEEE Computer and Communications Society (Cat. No.01CH37213).

[16]  Sachin Katti,et al.  Cliffhanger: Scaling Performance Cliffs in Web Memory Caches , 2016, NSDI.

[17]  Daniel Sánchez,et al.  Talus: A simple way to remove cliffs in cache performance , 2015, 2015 IEEE 21st International Symposium on High Performance Computer Architecture (HPCA).

[18]  Cristina L. Abad,et al.  Benchmarking Key-Value Stores via Trace Replay , 2017, 2017 IEEE International Conference on Cloud Engineering (IC2E).

[19]  Yingwei Luo,et al.  LAMA: Optimized Locality-aware Memory Allocation for Key-value Cache , 2015, USENIX Annual Technical Conference.

[20]  David Sinreich,et al.  An architectural blueprint for autonomic computing , 2006 .

[21]  Geoffrey J. Gordon,et al.  Automatic Database Management System Tuning Through Large-scale Machine Learning , 2017, SIGMOD Conference.

[22]  David Li,et al.  Design Continuums and the Path Toward Self-Designing Key-Value Stores that Know and Learn , 2019, CIDR.