DoubleDecker: a cooperative disk caching framework for derivative clouds

Derivative clouds, light weight application containers provisioned in virtual machines, are becoming viable and cost-effective options for infrastructure and software-based services. Ubiquitous dynamic memory management techniques in virtualized systems are centralized at the hypervisor and are ineffective in nested derivative cloud setups. In this paper, we highlight the challenges in management of memory resources in derivative cloud systems. Hypervisor caching, an enabler of centralized disk cache management, provides flexible memory or non-volatile memory management at the hypervisor to improve the resource usage efficiency and performance of applications. Existing hypervisor caching solutions have limited effectiveness in nested setups due to their nesting agnostic design, centralized management model and lack of holistic view of memory management. We propose DoubleDecker, a decentralized disk caching framework, realized through guest OS and hypervisor cooperation, with support for efficient memory management in derivative clouds. The DoubleDecker hypervisor caching framework, an integral part of our proposed solution, provides interfaces for differentiated cache partitioning and management in nested setups and is equipped to handle both memory and SSD based caching stores. We demonstrate the flexibility of DoubleDecker to handle dynamic and changing memory provisioning requirements and its capability to simultaneously provision memory across multiple levels. Such multi-level configurations cannot be explored by centralized designs and are a key feature of DoubleDecker. Our experimentation with DoubleDecker demonstrates that application performance can be consistently improved due to the flexible policy framework for disk caching. With our setup, we report an average performance improvement of 4x and a maximum of 11x.

[1]  Hakim Weatherspoon,et al.  Plug into the Supercloud , 2013, IEEE Internet Computing.

[2]  Yingwei Luo,et al.  Low Cost Working Set Size Tracking , 2011, USENIX Annual Technical Conference.

[3]  Chris Mason,et al.  Transcendent Memory and Linux , 2006 .

[4]  Tzi-cker Chiueh,et al.  Working Set-based Physical Memory Ballooning , 2013, ICAC.

[5]  Andrew Warfield,et al.  Xen and the art of virtualization , 2003, SOSP '03.

[6]  C. Waldspurger Memory resource management in VMware ESX server , 2002, OSDI '02.

[7]  Steven Hand,et al.  Satori: Enlightened Page Sharing , 2009, USENIX Annual Technical Conference.

[8]  Prateek Sharma,et al.  SpotCheck: designing a derivative IaaS cloud on the spot market , 2015, EuroSys.

[9]  Muli Ben-Yehuda,et al.  The Turtles Project: Design and Implementation of Nested Virtualization , 2010, OSDI.

[10]  Mike Hibler,et al.  Microkernels meet recursive virtual machines , 1996, OSDI '96.

[11]  Andrea C. Arpaci-Dusseau,et al.  Geiger: monitoring the buffer cache in a virtual machine environment , 2006, ASPLOS XII.

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

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

[14]  Kai Shen,et al.  Virtual Machine Memory Access Tracing with Hypervisor Exclusive Cache , 2007, USENIX Annual Technical Conference.

[15]  Peter Desnoyers,et al.  Memory buddies: exploiting page sharing for smart colocation in virtualized data centers , 2009, VEE '09.

[16]  Lucas Chaufournier,et al.  Containers and Virtual Machines at Scale: A Comparative Study , 2016, Middleware.

[17]  Purushottam Kulkarni,et al.  Synergy: A Hypervisor Managed Holistic Caching System , 2019, IEEE Transactions on Cloud Computing.

[18]  Steven Diamond,et al.  Blueprint for the Intercloud - Protocols and Formats for Cloud Computing Interoperability , 2009, 2009 Fourth International Conference on Internet and Web Applications and Services.

[19]  Y. C. Tay,et al.  Ex-Tmem: Extending Transcendent Memory with Non-volatile Memory for Virtual Machines , 2014, 2014 IEEE Intl Conf on High Performance Computing and Communications, 2014 IEEE 6th Intl Symp on Cyberspace Safety and Security, 2014 IEEE 11th Intl Conf on Embedded Software and Syst (HPCC,CSS,ICESS).

[20]  Prashant J. Shenoy,et al.  An Empirical Study of Memory Sharing in Virtual Machines , 2012, USENIX Annual Technical Conference.

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

[22]  Purushottam Kulkarni,et al.  Comparative Analysis of Page Cache Provisioning in Virtualized Environments , 2014, 2014 IEEE 22nd International Symposium on Modelling, Analysis & Simulation of Computer and Telecommunication Systems.

[23]  A. Kivity,et al.  kvm : the Linux Virtual Machine Monitor , 2007 .

[24]  H. Howie Huang,et al.  Mortar: filling the gaps in data center memory , 2014, VEE '14.

[25]  Sanjeev Kumar,et al.  Dynamic tracking of page miss ratio curve for memory management , 2004, ASPLOS XI.

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

[27]  張正儀,et al.  基於Google Cloud Platform設計高效能日誌分析平台之研究 , 2017 .

[28]  Peter J. Denning The working set model for program behavior , 1967, SOSP 1967.

[29]  Prateek Sharma,et al.  Singleton: system-wide page deduplication in virtual environments , 2012, HPDC '12.

[30]  Zhenlin Wang,et al.  Dynamic memory balancing for virtual machines , 2009, OPSR.

[31]  Bryan Ford,et al.  Vx32: Lightweight User-level Sandboxing on the x86 , 2008, USENIX Annual Technical Conference.

[32]  Robert N. M. Watson,et al.  Jails: confining the omnipotent root , 2000 .

[33]  Raju Rangaswami,et al.  Centaur: Host-Side SSD Caching for Storage Performance Control , 2015, 2015 IEEE International Conference on Autonomic Computing.

[34]  Hakim Weatherspoon,et al.  The Xen-Blanket: virtualize once, run everywhere , 2012, EuroSys '12.