Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

DIDACache: An Integration of Device and Application for Flash-based Key-value Caching

Published: 31 October 2018 Publication History

Abstract

Key-value caching is crucial to today’s low-latency Internet services. Conventional key-value cache systems, such as Memcached, heavily rely on expensive DRAM memory. To lower Total Cost of Ownership, the industry recently is moving toward more cost-efficient flash-based solutions, such as Facebook’s McDipper [14] and Twitter’s Fatcache [56]. These cache systems typically take commercial SSDs and adopt a Memcached-like scheme to store and manage key-value cache data in flash. Such a practice, though simple, is inefficient due to the huge semantic gap between the key-value cache manager and the underlying flash devices.
In this article, we advocate to reconsider the cache system design and directly open device-level details of the underlying flash storage for key-value caching. We propose an enhanced flash-aware key-value cache manager, which consists of a novel unified address mapping module, an integrated garbage collection policy, a dynamic over-provisioning space management, and a customized wear-leveling policy, to directly drive the flash management. A thin intermediate library layer provides a slab-based abstraction of low-level flash memory space and an API interface for directly and easily operating flash devices. A special flash memory SSD hardware that exposes flash physical details is adopted to store key-value items. This co-design approach bridges the semantic gap and well connects the two layers together, which allows us to leverage both the domain knowledge of key-value caches and the unique device properties. In this way, we can maximize the efficiency of key-value caching on flash devices while minimizing its weakness. We implemented a prototype, called DIDACache, based on the Open-Channel SSD platform. Our experiments on real hardware show that we can significantly increase the throughput by 35.5%, reduce the latency by 23.6%, and remove unnecessary erase operations by 28%.

References

[1]
Fatcache-Async. Retrieved from https://github.com/polyu-szy/Fatcache-Async-2017.
[2]
Whitepaper: Memcached Total cost of ownership (TCO). Retrieved from https://goo.gl/SD2rZe.
[3]
N. Agrawal, V. Prabhakaran, T. Wobber, J. D. Davis, M. Manasse, and R. Panigrahy. 2008. Design tradeoffs for SSD performance. In Proceeedings of the USENIX Annual Technical Conference (ATC’08).
[4]
Ashok Anand, Chitra Muthukrishnan, Steven Kappes, Aditya Akella, and Suman Nath. 2010. Cheap and large CAMs for high performance data-intensive networked systems. In Proceeedings of the USENIX Symposium on Networked Systems Design and Implementation (NSDI’10).
[5]
Berk Atikoglu, Yuehai Xu, Eitan Frachtenberg, Song Jiang, and Mike Paleczny. 2012. Workload analysis of a large-scale key-value store. In Proceeedings of the ACM SIGMETRICS Performance Evaluation Review (SIGMETRICS’12).
[6]
Matias Bjørling, Javier Gonzalez, and Philippe Bonnet. 2017. LightNVM: The linux open-channel SSD subsystem. In Proceeedings of the USENIX Conference on File and Storage Technologies (FAST’17).
[7]
Damiano Carra and Pietro Michiardi. 2014. Memory partitioning in memcached: An experimental performance analysis. In Proceeedings of the International Conference on Communications (ICC’14).
[8]
Feng Chen, David A. Koufaty, and Xiaodong Zhang. 2009. Understanding intrinsic characteristics and system implications of flash memory based solid state drives. In Proceeedings of the International Conference on Measurement and Modeling of Computer Systems (SIGMETRICS’09).
[9]
Feng Chen, Rubao Lee, and Xiaodong Zhang. 2011. Essential roles of exploiting internal parallelism of flash memory based solid state drives in high-speed data processing. In Proceeedings of the International Symposium on High Performance Computer Architecture (HPCA’11).
[10]
F. Chen, T. Luo, and X. Zhang. 2011. CAFTL: A content-aware flash translation layer enhancing the lifespan of flash memory based solid state drives. In Proceeedings of the USENIX Conference on File and Storage Technologies (FAST’11).
[11]
Biplob Debnath, Sudipta Sengupta, and Jin Li. 2011. SkimpyStash: RAM space skimpy key-value store on flash-based storage. In Proceeedings of the ACM SIGMOD International Conference on Management of Data (SIGMOD’11).
[12]
C. Dirik and B. Jacob. 2009. The performance of PC solid-state disks (SSDs) as a function of bandwidth, concurrency, device, architecture, and system organization. In Proceeedings of the International Symposium on Computer Architecture (ISCA’09).
[13]
Assaf Eisenman, Asaf Cidon, Evgenya Pergament, Or Haimovich, Ryan Stutsman, Mohammad Alizadeh, and Sachin Katti. 2017. Flashield: A key-value cache that minimizes writes to flash. arXiv Preprint arXiv:1702.02588 (2017).
[14]
Facebook. McDipper: A key-value cache for flash storage. Retrieved from https://goo.gl/ZaavWa.
[15]
E. Gal and S. Toledo. 2005. Algorithms and data structures for flash memories. In ACM Comput. Survey 37, 2.
[16]
Salil Gokhale, Nitin Agrawal, Sean Noonan, and Cristian Ungureanu. 2010. KVZone and the search for a write-optimized key-value store. In Proceeedings of the USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage’10).
[17]
Javier González, Matias Bjørling, Seongno Lee, Charlie Dong, and Yiren Ronnie Huang. 2016. Application-driven flash translation layers on open-channel SSDs. In Proceeding of the Nonvolatile Memory Workshop (NVMW'14).
[18]
Laura M. Grupp, Adrian M. Caulfield, Joel Coburn, Steven Swanson, Eitan Yaakobi, Paul H. Siegel, and Jack K. Wolf. 2009. Characterizing flash memory: Anomalies, observations, and applications. In Proceeedings of the International Symposium on Microarchitecture (Micro’09).
[19]
Yong Guan, Guohui Wang, Yi Wang, Renhai Chen, and Zili Shao. 2013. BLog: Block-level log-block management for NAND flash memorystorage systems. In Proceeedings of the Annual ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES’17).
[20]
A. Gupta, Y. Kim, and B. Urgaonkar. 2009. DFTL: A flash translation layer employing demand-based selective caching of page-level address mappings. In Proceeedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’09).
[21]
Xiameng Hu, Xiaolin Wang, Yechen Li, Lan Zhou, Yingwei Luo, Cheng Ding, Song Jiang, and Zhenlin Wang. 2015. LAMA: Optimized locality-aware memory allocation for key-value cache. In Proceeedings of the USENIX Annual Technical Conference (ATC’15).
[22]
Jian Huang, Anirudh Badam, Laura Caulfield, Suman Nath, Sudipta Sengupta, Bikash Sharma, and Moinuddin K. Qureshi. 2017. FlashBlox: Achieving both performance isolation and uniform lifetime for virtualized SSDs. In Proceeedings of the USENIX Conference on File and Storage Technologies (FAST’17).
[23]
Yanqin Jin, Hung-Wei Tseng, Yannis Papakonstantinou, and Steven Swanson. 2017. KAML: A flexible, high-performance key-value SSD. In Proceeedings of the IEEE International Symposium on High Performance Computer Architecture (HPCA’17).
[24]
Steve Schlosser, Greg Ganger, John Bucy, and Jiri Schindler. DiskSim 4.0. Retrieved from http://www.pdl.cmu.edu/DiskSim/.
[25]
Jeong-Uk Kang, Jeeseok Hyun, Hyunjoo Maeng, and Sangyeun Cho. 2014. The multi-streamed solid-state drive. In Proceeedings of the USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage’14).
[26]
Ana Klimovic, Christos Kozyrakis, Eno Thereksa, Binu John, and Sanjeev Kumar. 2016. Flash storage disaggregation. In Proceeedings of the 11th European Conference on Computer Systems (EuroSys’16).
[27]
Benjamin C. Lee, Engin Ipek, Onur Mutlu, and Doug Burger. 2009. Architecting phase change memory as a scalable dram alternative. In Proceeedings of the ACM Association for Computing Machinery Special Interest Group on Computer Architecture (SIGARCH’09).
[28]
Adam Leventhal. 2008. Flash storage memory. In Communications of the ACM, Vol. 51, 7, 47–51.
[29]
Paul Lilly. 2013. Facebook ditches DRAM, flaunts flash-based McDipper. Retrieved from http://www.maximumpc.com/facebook-ditches-dram-flaunts-flash-based-mcdipper.
[30]
Hyeontaek Lim, Bin Fan, David G. Andersen, and Michael Kaminsky. 2011. SILT: A memory-efficient, high-performance key-value store. In Proceeedings of the ACM Symposium on Operating Systems Principles (SOSP’11).
[31]
Duo Liu, Tianzheng Wang, Yi Wang, Zhiwei Qin, and Zili Shao. 2011. PCM-FTL: A write-activity-aware NAND flash memory management scheme for PCM-based embedded systems. In Proceeedings of the IEEE Real-Time Systems Symposium (RTSS’11).
[32]
Lanyue Lu, Thanumalayan Sankaranarayana Pillai, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2016. WiscKey: Separating keys from values in SSD-conscious storage. In Proceeedings of the USENIX Conference on File and Storage Technologies (FAST’16).
[33]
Fabio Margaglia, Gala Yadgar, Eitan Yaakobi, Yue Li, Assaf Schuster, and André Brinkmann. 2016. The devil is in the details: Implementing flash page reuse with WOM codes. In Proceeedings of the USENIX Conference on File and Storage Technologies (FAST’16).
[34]
Leonardo Mármol, Swaminathan Sundararaman, Nisha Talagala, and Raju Rangaswami. 2015. NVMKV: A scalable and lightweight, FTL-aware key-value store. In Proceeedings of the USENIX Annual Technical Conference (ATC’15).
[35]
Leonardo Mármol, Swaminathan Sundararaman, Nisha Talagala, Raju Rangaswami, Sushma Devendrappa, Bharath Ramsundar, and Sriram Ganesan. 2015. NVMKV: A scalable and lightweight flash aware key-value store. In Proceeedings of the USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage’15).
[36]
B. Marsh, F. Douglis, and P. Krishnan. 1994. Flash memory file caching for mobile computers. In Proceeedings of the Hawaii Conference on Systems Science.
[37]
Memblaze. Memblaze. Retrieved from http://www.memblaze.com/en/.
[38]
Memcached. Memcached: A distributed memory object caching system. Retrieved from http://www.memcached.org.
[39]
Michael P. Mesnier, Jason Akers, Feng Chen, and Tian Luo. 2011. Differentiated storage services. In Proceeedings of the ACM Symposium on Operating System Principles (SOSP’11).
[40]
Rajesh Nishtala, Hans Fugal, Steven Grimm, Marc Kwiatkowski, Herman Lee, Harry C. Li, Ryan McElroy, Mike Paleczny, Daniel Peek, Paul Saab, David Stafford, Tony Tung, and Venkateshwaran Venkataramani. 2013. Scaling memcache at facebook. In Proceeedings of the USENIX Symposium on Networked Systems Design and Implementation (NSDI’13).
[41]
Yongseok Oh, Jongmoo Choi, Donghee Lee, and Sam H. Noh. 2012. Caching less for better performance: Balancing cache size and update cost of flash memory cache in hybrid storage systems. In Proceeedings of the USENIX Conference on File and Storage Technologies (FAST’12).
[42]
Jian Ouyang, Shiding Lin, Song Jiang, Zhenyu Hou, Yong Wang, and Yuanzheng Wang. 2014. SDF: Software-defined flash for web-scale internet storage systems. In Proceeedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’14).
[43]
Xiangyong Ouyang, Nusrat S. Islam, Raghunath Rajachandrasekar, Jithin Jose, Miao Luo, Hao Wang, and Dhabaleswar K. Panda. 2012. SSD-assisted hybrid memory to accelerate memcached over high performance networks. In International Conference for Parallel Processing (ICPP’12).
[44]
Zhiwei Qin, Yi Wang, Duo Liu, Zili Shao, and Yong Guan. 2011. MNFTL: An efficient flash translation layer for MLC NAND flash memory storage systems. In Proceedings of the 48th Design Automation Conference (DAC’11).
[45]
Redis. Retrieved from http://redis.io/.
[46]
M. Rosenblum and J. K. Ousterhout. 1992. The design and implementation of a log-structured file system. In ACM Transactions on Computer Systems (TC’92), Vol. 10, 1, 26--52.
[47]
SamSung. Samsung 840 Pro. Retrieved from https://www.cnet.com/products/samsung-840-pro-ssd/.
[48]
Mohit Saxena, Michael M. Swift, and Yiying Zhang. 2012. Flashtier: A lightweight, consistent and durable storage cache. In Proceeedings of the European Conference on Computer Systems (EuroSys’12).
[49]
Sudharsan Seshadri, Mark Gahagan, Sundaram Bhaskaran, Trevor Bunker, Arup De, Yanqin Jin, Yang Liu, and Steven Swanson. 2014. Willow: A user-programmable SSD. In Proceeedings of the USENIX Symposium on Operating Systems Design and Implementation (OSDI’14).
[50]
Mansour Shafaei, Peter Desnoyers, and Jim Fitzpatrick. 2016. Write amplification reduction in flash-based SSDs through extent-based temperature identification. In Proceeedings of the USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage’16).
[51]
Zhaoyan Shen, Feng Chen, Yichen Jia, and Zili Shao. 2016. Optimizing flash-based key-value cache systems. In Proceeedings of the USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage’16).
[52]
Zhaoyan Shen, Feng Chen, Yichen Jia, and Zili Shao. 2017. DIDACache: A deep integration of device and application for flash based key-value caching. In Proceeedings of the USENIX Conference on File and Storage Technologies (FAST’17).
[53]
Gokul Soundararajan, Vijayan Prabhakaran, Mahesh Balakrishnan, and Ted Wobber. 2010. Extending SSD lifetimes with disk-based write caches. In Proceeedings of the USENIX Conference on File and Storage Technologies (FAST’10).
[54]
T13. T13 documents referring to TRIM. Retrieved from https://goo.gl/5oYarv.
[55]
Linpeng Tang, Qi Huang, Wyatt Lloyd, Sanjeev Kumar, and Kai Li. 2015. RIPQ: Advanced photo caching on flash for facebook. In Proceeedings of the USENIX Conference on File and Storage Technologies (FAST’15).
[56]
Twitter. Fatcache. Retrieved from https://github.com/twitter/fatcache.
[57]
Peng Wang, Guangyu Sun, Song Jiang, Jian Ouyang, Shiding Lin, Chen Zhang, and Jason Cong. 2015. An efficient design and implementation of LSM-tree based key-value store on Open-Channel SSD. In Proceeedings of the European Conference on Computer Systems (EuroSys’15).
[58]
Xingbo Wu, Yuehai Xu, Zili Shao, and Song Jiang. 2015. LSM-trie: An LSM-tree-based ultra-large key-value store for small data items. In Proceeedings of the USENIX Annual Technical Conference (ATC’15).
[59]
Shiqin Yan, Huaicheng Li, Mingzhe Hao, Hao Tong, Swaminatahan Sundararaman, Andrew A. Chien, and Haryadi S. Gunawi. 2017. Tiny-tail flash: Near-perfect elimination of garbage collection tail latencies in NAND SSDs. In Proceeedings of the USENIX Conference on File and Storage Technologies (FAST’17).
[60]
Jingpei Yang, Ned Plasson, Greg Gillis, Nisha Talagala, and Swaminathan Sundararaman. 2014. Don’t stack your log on my log. In Proceedings of the Workshop on Interactions of NVM/Flash with Operating Systems and Workloads (INFLOW’14).
[61]
Heng Zhang, Mingkai Dong, and Haibo Chen. 2016. Efficient and available in-memory KV-store with hybrid erasure coding and replication. In Proceedings of the USENIX Conference on File and Storage Technologies (FAST’16).
[62]
Yiying Zhang, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2012. De-indirection for flash-based SSDs with nameless writes. In Proceedings of the USENIX Conference on File and Storage Technologies (FAST’12).
[63]
Yiying Zhang, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2015. Removing the costs and retaining the benefits of flash-based SSD virtualization with FSDV. In Proceedings of the International Conference on Massive Storage Systems and Technology (MSST’15).
[64]
Yiying Zhang, Gokul Soundararajan, Mark W. Storer, Lakshmi N. Bairavasundaram, Sethuraman Subbiah, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2013. Warming up storage-level caches with bonfire. In Proceedings of the USENIX Conference on File and Storage Technologies (FAST’13).
[65]
Mai Zheng, Joseph Tucek, Dachuan Huang, Feng Qin, Mark Lillibridge, Elizabeth S. Yang, Bill W. Zhao, and Shashank Singh. 2014. Torturing databases for fun and profit. In Proceedings of the USENIX Symposium on Operating Systems Design and Implementation (OSDI’14).
[66]
Mai Zheng, Joseph Tucek, Feng Qin, and Mark Lillibridge. 2013. Understanding the robustness of SSDs under power fault. In Proceedings of the USENIX Conference on File and Storage Technologies (FAST’13).

Cited By

View all
  • (2024)Can ZNS SSDs be Better Storage Devices for Persistent Cache?Proceedings of the 16th ACM Workshop on Hot Topics in Storage and File Systems10.1145/3655038.3665946(55-62)Online publication date: 8-Jul-2024
  • (2024)NICE: A Nonintrusive In-Storage-Computing Framework for Embedded ApplicationsIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems10.1109/TCAD.2024.344685743:11(3876-3887)Online publication date: Nov-2024
  • (2024)CaitiJournal of Systems Architecture: the EUROMICRO Journal10.1016/j.sysarc.2024.103109150:COnline publication date: 1-May-2024
  • Show More Cited By

Index Terms

  1. DIDACache: An Integration of Device and Application for Flash-based Key-value Caching

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Transactions on Storage
    ACM Transactions on Storage  Volume 14, Issue 3
    Special Issue on FAST 2018 and Regular Papers
    August 2018
    210 pages
    ISSN:1553-3077
    EISSN:1553-3093
    DOI:10.1145/3282875
    • Editor:
    • Sam H. Noh
    Issue’s Table of Contents
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 31 October 2018
    Accepted: 01 March 2018
    Revised: 01 January 2018
    Received: 01 September 2017
    Published in TOS Volume 14, Issue 3

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. NAND flash memory
    2. key-value caching
    3. open-channel SSD

    Qualifiers

    • Research-article
    • Research
    • Refereed

    Funding Sources

    • Louisiana Board of Regents
    • U.S. National Science Foundation
    • Research Grants Council of the Hong Kong Special Administrative Region, China

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)52
    • Downloads (Last 6 weeks)3
    Reflects downloads up to 25 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Can ZNS SSDs be Better Storage Devices for Persistent Cache?Proceedings of the 16th ACM Workshop on Hot Topics in Storage and File Systems10.1145/3655038.3665946(55-62)Online publication date: 8-Jul-2024
    • (2024)NICE: A Nonintrusive In-Storage-Computing Framework for Embedded ApplicationsIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems10.1109/TCAD.2024.344685743:11(3876-3887)Online publication date: Nov-2024
    • (2024)CaitiJournal of Systems Architecture: the EUROMICRO Journal10.1016/j.sysarc.2024.103109150:COnline publication date: 1-May-2024
    • (2023)FIFO queues are all you need for cache evictionProceedings of the 29th Symposium on Operating Systems Principles10.1145/3600006.3613147(130-149)Online publication date: 23-Oct-2023
    • (2023)A Flash-Based Cache Optimization Strategy2023 8th International Conference on Cloud Computing and Big Data Analytics (ICCCBDA)10.1109/ICCCBDA56900.2023.10154653(76-80)Online publication date: 26-Apr-2023
    • (2023)A Novel Cache and Consistency Mechanism for IoT Time Series Data2023 IEEE International Conference on High Performance Computing & Communications, Data Science & Systems, Smart City & Dependability in Sensor, Cloud & Big Data Systems & Application (HPCC/DSS/SmartCity/DependSys)10.1109/HPCC-DSS-SmartCity-DependSys60770.2023.00087(599-606)Online publication date: 17-Dec-2023
    • (2022)Accelerating range queries of primary and secondary indices for key-value separationProceedings of the 13th Symposium on Cloud Computing10.1145/3542929.3563479(226-239)Online publication date: 7-Nov-2022
    • (2022)Kangaroo: Theory and Practice of Caching Billions of Tiny Objects on FlashACM Transactions on Storage10.1145/354292818:3(1-33)Online publication date: 24-Aug-2022
    • (2022)FenceKV: Enabling Efficient Range Query for Key-Value SeparationIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2022.314900333:12(3375-3386)Online publication date: 1-Dec-2022
    • (2022)Meta-Block: Exploiting Cross-Layer and Direct Storage Access for Decentralized Blockchain Storage SystemsIEEE Transactions on Computers10.1109/TC.2022.3226305(1-14)Online publication date: 2022
    • Show More Cited By

    View Options

    Login options

    Full Access

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media