ETICA: Efficient Two-Level I/O Caching Architecture for Virtualized Platforms

In recent years, increased I/O demand of <italic>Virtual Machines</italic> (VMs) in large-scale data centers and cloud computing has encouraged system architects to design high-performance storage systems. One common approach to improving performance is to employ fast storage devices such as <italic>Solid-State Drives</italic> (SSDs) as an I/O caching layer for slower storage devices. SSDs provide high performance, especially on random requests, but they also have limited endurance: they support <italic>only</italic> a limited number of write operations and can therefore <italic>wear out</italic> relatively fast due to write operations. In addition to the write requests generated by the applications, each read miss in the SSD cache is served at the cost of imposing a write operation to the SSD (to copy the data block into the cache), resulting in an even larger number of writes into the SSD. Previous I/O caching schemes on virtualized platforms <italic>only</italic> partially mitigate the endurance limitations of SSD-based I/O caches; they mainly focus on assigning efficient cache write policies and cache space to the VMs. Moreover, existing cache space allocation schemes have inefficiencies: they <italic>do not</italic> take into account the impact of cache write policy in reuse distance calculation of the running workloads and hence, reserve cache blocks for accesses that would <italic>not</italic> be served by cache. In this article, we propose an <italic><underline>E</underline>fficient <underline>T</underline>wo-Level <underline>I</underline>/O <underline>C</underline>aching <underline>A</underline>rchitecture</italic> (ETICA) for virtualized platforms that can significantly improve I/O latency, endurance, and cost (in terms of cache size) while preserving the reliability of write-pending data blocks. As opposed to previous <italic>one-level</italic> I/O caching schemes in virtualized platforms, our proposed architecture 1) provides <italic>two</italic> levels of cache by employing both <italic>Dynamic Random-Access Memory</italic> (DRAM) and SSD in the I/O caching layer of virtualized platforms and 2) effectively partitions the cache space between running VMs to achieve maximum performance and minimum cache size. To manage the two-level cache, unlike the previous reuse distance calculation schemes such as <italic>Useful Reuse Distance</italic> (URD), which only consider the request type and neglect the impact of <italic>cache write policy</italic>, we propose a new metric, <italic>Policy Optimized reuse Distance</italic> (POD). The key idea of POD is to effectively calculate the reuse distance and estimate the amount of two-level DRAM+SSD cache space to allocate by considering both 1) the request type and 2) the cache write policy. Doing so results in enhanced performance and reduced cache size due to the allocation of cache blocks <italic>only</italic> for the requests that would be served by the I/O cache. ETICA maintains the reliability of write-pending data blocks and improves performance by 1) assigning an effective and fixed write policy at each level of the I/O cache hierarchy and 2) employing effective promotion and eviction methods between cache levels. Our extensive experiments conducted with a real implementation of the proposed two-level storage caching architecture show that ETICA provides 45 percent higher performance, compared to the state-of-the-art caching schemes in virtualized platforms, while improving both cache size and SSD endurance by 51.7 and 33.8 percent, respectively.

[1]  Yunpeng Chai,et al.  Elastic Queue: A Universal SSD Lifetime Extension Plug-in for Cache Replacement Algorithms , 2016, SYSTOR.

[2]  Irving L. Traiger,et al.  Evaluation Techniques for Storage Hierarchies , 1970, IBM Syst. J..

[3]  Donald Yeung,et al.  Using Multicore Reuse Distance to Study Coherence Directories , 2017, ACM Trans. Comput. Syst..

[4]  Yuan Xie,et al.  Leveraging 3D PCRAM technologies to reduce checkpoint overhead for future exascale systems , 2009, Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis.

[5]  Reza Salkhordeh,et al.  ReCA: An Efficient Reconfigurable Cache Architecture for Storage Systems with Online Workload Characterization , 2018, IEEE Transactions on Parallel and Distributed Systems.

[6]  YeungDonald,et al.  Efficient Reuse Distance Analysis of Multicore Scaling for Loop-Based Parallel Programs , 2013 .

[7]  Umakishore Ramachandran,et al.  Why are state-of-the-art flash-based multi-tiered storage systems performing poorly for HTTP video streaming? , 2012, NOSSDAV '12.

[8]  Jeffrey S. Vetter,et al.  A Survey of Software Techniques for Using Non-Volatile Memories for Storage and Main Memory Systems , 2016, IEEE Transactions on Parallel and Distributed Systems.

[9]  Jian Liu,et al.  PLC-cache: Endurable SSD cache for deduplication-based primary storage , 2014, 2014 30th Symposium on Mass Storage Systems and Technologies (MSST).

[10]  Reza Salkhordeh,et al.  An Efficient Hybrid I/O Caching Architecture Using Heterogeneous SSDs , 2019, IEEE Transactions on Parallel and Distributed Systems.

[11]  Mahmut T. Kandemir,et al.  Evaluating STT-RAM as an energy-efficient main memory alternative , 2013, 2013 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS).

[12]  Garth A. Gibson,et al.  RAID: high-performance, reliable secondary storage , 1994, CSUR.

[13]  Hai Jin,et al.  Hardware/software cooperative caching for hybrid DRAM/NVM memory architectures , 2017, ICS '17.

[14]  Paolo Faraboschi,et al.  Operating System Support for NVM+DRAM Hybrid Main Memory , 2009, HotOS.

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

[16]  Onur Mutlu,et al.  Errors in Flash-Memory-Based Solid-State Drives: Analysis, Mitigation, and Recovery , 2017, ArXiv.

[17]  Vijayaraghavan Soundararajan,et al.  The impact of management operations on the virtualized datacenter , 2010, ISCA '10.

[18]  Ryousei Takano,et al.  RAMinate: Hypervisor-based Virtualization for Hybrid Main Memory Systems , 2016, SoCC.

[19]  Sanghyun Park,et al.  Advanced Block Nested Loop Join for Extending SSD Lifetime , 2017, IEEE Transactions on Knowledge and Data Engineering.

[20]  Jeanna Matthews,et al.  Intel® Turbo Memory: Nonvolatile disk caches in the storage hierarchy of mainstream computer systems , 2008, TOS.

[21]  Onur Mutlu,et al.  Error Characterization, Mitigation, and Recovery in Flash-Memory-Based Solid-State Drives , 2017, Proceedings of the IEEE.

[22]  Ashish Gupta,et al.  The RAMCloud Storage System , 2015, ACM Trans. Comput. Syst..

[23]  Reza Salkhordeh,et al.  LBICA: A Load Balancer for I/O Cache Architectures , 2019, 2019 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[24]  Donald Yeung,et al.  Identifying Power-Efficient Multicore Cache Hierarchies via Reuse Distance Analysis , 2016, TOCS.

[25]  P. Sadayappan,et al.  PARDA: A Fast Parallel Reuse Distance Analysis Algorithm , 2012, 2012 IEEE 26th International Parallel and Distributed Processing Symposium.

[26]  Steve Byan,et al.  Mercury: Host-side flash caching for the data center , 2012, 012 IEEE 28th Symposium on Mass Storage Systems and Technologies (MSST).

[27]  Jacob Nelson,et al.  Approximate storage in solid-state memories , 2013, 2013 46th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[28]  Angelos Bilas,et al.  Azor: Using Two-Level Block Selection to Improve SSD-Based I/O Caches , 2011, 2011 IEEE Sixth International Conference on Networking, Architecture, and Storage.

[29]  Feng Chen,et al.  Hystor: making the best use of solid state drives in high performance storage systems , 2011, ICS '11.

[30]  Jin Sun,et al.  Utility-Based Hybrid Memory Management , 2017, 2017 IEEE International Conference on Cluster Computing (CLUSTER).

[31]  Anand Sivasubramaniam,et al.  HybridStore: A Cost-Efficient, High-Performance Storage System Combining SSDs and HDDs , 2011, 2011 IEEE 19th Annual International Symposium on Modelling, Analysis, and Simulation of Computer and Telecommunication Systems.

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

[33]  Antony I. T. Rowstron,et al.  Migrating server storage to SSDs: analysis of tradeoffs , 2009, EuroSys '09.

[34]  Steve Carr,et al.  Reuse-distance-based miss-rate prediction on a per instruction basis , 2004, MSP '04.

[35]  Brice Goglin,et al.  Exposing the Locality of Heterogeneous Memory Architectures to HPC Applications , 2016, MEMSYS.

[36]  Arif Merchant,et al.  Janus: Optimal Flash Provisioning for Cloud Storage Workloads , 2013, USENIX Annual Technical Conference.

[37]  Randy H. Katz,et al.  A case for redundant arrays of inexpensive disks (RAID) , 1988, SIGMOD '88.

[38]  Francisco Tirado,et al.  Reducing writes in Phase-Change Memory environments by using efficient cache replacement policies , 2013, 2013 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[39]  Fei Meng,et al.  vCacheShare: Automated Server Flash Cache Space Management in a Virtualization Environment , 2014, USENIX Annual Technical Conference.

[40]  Jin Xiong,et al.  uCache: A Utility-Aware Multilevel SSD Cache Management Policy , 2013, 2013 IEEE 10th International Conference on High Performance Computing and Communications & 2013 IEEE International Conference on Embedded and Ubiquitous Computing.

[41]  Nimrod Megiddo,et al.  ARC: A Self-Tuning, Low Overhead Replacement Cache , 2003, FAST.

[42]  Onur Mutlu,et al.  ECI-Cache: A High-Endurance and Cost-Efficient I/O Caching Scheme for Virtualized Platforms , 2018, SIGMETRICS.

[43]  Lei Liu,et al.  Memos: A full hierarchy hybrid memory management framework , 2016, 2016 IEEE 34th International Conference on Computer Design (ICCD).

[44]  Chen Ding,et al.  Program locality analysis using reuse distance , 2009, TOPL.

[45]  Dan Feng,et al.  Improving flash-based disk cache with Lazy Adaptive Replacement , 2013, 2013 IEEE 29th Symposium on Mass Storage Systems and Technologies (MSST).

[46]  Jun Yang,et al.  Phase-Change Technology and the Future of Main Memory , 2010, IEEE Micro.

[47]  Manish Parashar,et al.  Exploring energy and performance behaviors of data-intensive scientific workflows on systems with deep memory hierarchies , 2013, 20th Annual International Conference on High Performance Computing.

[48]  Tajana Simunic,et al.  PDRAM: A hybrid PRAM and DRAM main memory system , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[49]  Karsten Schwan,et al.  Data tiering in heterogeneous memory systems , 2016, EuroSys.

[50]  Qianbin Xia,et al.  High-Performance and Endurable Cache Management for Flash-Based Read Caching , 2016, IEEE Transactions on Parallel and Distributed Systems.

[51]  Thomas F. Wenisch,et al.  Thermostat: Application-transparent Page Management for Two-tiered Main Memory , 2017, ASPLOS.

[52]  Zhiping Jia,et al.  Unified DRAM and NVM hybrid buffer cache architecture for reducing journaling overhead , 2016, 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[53]  Erik Hagersten,et al.  StatCache: a probabilistic approach to efficient and accurate data locality analysis , 2004, IEEE International Symposium on - ISPASS Performance Analysis of Systems and Software, 2004.

[54]  Onur Mutlu,et al.  Error patterns in MLC NAND flash memory: Measurement, characterization, and analysis , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[55]  Onur Mutlu,et al.  Improving 3D NAND Flash Memory Lifetime by Tolerating Early Retention Loss and Process Variation , 2018, SIGMETRICS.

[56]  Yi Liu,et al.  MOLAR: A cost-efficient, high-performance hybrid storage cache , 2013, 2013 IEEE International Conference on Cluster Computing (CLUSTER).

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

[58]  Siyuan Ma,et al.  S-CAVE: Effective SSD caching to improve virtual machine storage performance , 2013, Proceedings of the 22nd International Conference on Parallel Architectures and Compilation Techniques.

[59]  Chen Ding,et al.  Reuse Distance Analysis , 2001 .

[60]  Onur Mutlu,et al.  Architecting phase change memory as a scalable dram alternative , 2009, ISCA '09.

[61]  Jongman Kim,et al.  Designing Hybrid DRAM/PCM Main Memory Systems Utilizing Dual-Phase Compression , 2014, TODE.

[62]  Jingtong Hu,et al.  Improving performance and lifetime of DRAM-PCM hybrid main memory through a proactive page allocation strategy , 2015, The 20th Asia and South Pacific Design Automation Conference.

[63]  Cheng Li,et al.  Nitro: A Capacity-Optimized SSD Cache for Primary Storage , 2014, USENIX Annual Technical Conference.

[64]  Chen Ding,et al.  Locality approximation using time , 2007, POPL '07.

[65]  Reza Salkhordeh,et al.  An Operating System level data migration scheme in hybrid DRAM-NVM memory architecture , 2016, 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[66]  Vijayalakshmi Srinivasan,et al.  Scalable high performance main memory system using phase-change memory technology , 2009, ISCA '09.

[67]  Antony I. T. Rowstron,et al.  Write off-loading: Practical power management for enterprise storage , 2008, TOS.

[68]  Ricardo Bianchini,et al.  Page placement in hybrid memory systems , 2011, ICS '11.

[69]  Qianbin Xia,et al.  Flash-Aware High-Performance and Endurable Cache , 2015, 2015 IEEE 23rd International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems.

[70]  Stephen W. Keckler,et al.  Page Placement Strategies for GPUs within Heterogeneous Memory Systems , 2015, ASPLOS.

[71]  Hyeonsang Eom,et al.  Optimizing the Block I/O Subsystem for Fast Storage Devices , 2014, ACM Trans. Comput. Syst..

[72]  Xiao Qin,et al.  WEC: Improving Durability of SSD Cache Drives by Caching Write-Efficient Data , 2015, IEEE Transactions on Computers.

[73]  Jing Xu,et al.  CloudCache: On-demand Flash Cache Management for Cloud Computing , 2016, FAST.

[74]  Hossein Asadi,et al.  Investigating power outage effects on reliability of solid-state drives , 2018, 2018 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[75]  Onur Mutlu,et al.  Enabling Efficient and Scalable Hybrid Memories Using Fine-Granularity DRAM Cache Management , 2012, IEEE Computer Architecture Letters.

[76]  Yutao Zhong,et al.  Predicting whole-program locality through reuse distance analysis , 2003, PLDI.

[77]  Hyokyung Bahn,et al.  CLOCK-DWF: A Write-History-Aware Page Replacement Algorithm for Hybrid PCM and DRAM Memory Architectures , 2014, IEEE Transactions on Computers.