skip to main content
research-article

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

Authors Info & Claims
Published:31 October 2018Publication History
Skip Abstract Section

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.Google ScholarGoogle Scholar
  2. Whitepaper: Memcached Total cost of ownership (TCO). Retrieved from https://goo.gl/SD2rZe.Google ScholarGoogle Scholar
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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).Google ScholarGoogle ScholarCross RefCross Ref
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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).Google ScholarGoogle Scholar
  14. Facebook. McDipper: A key-value cache for flash storage. Retrieved from https://goo.gl/ZaavWa.Google ScholarGoogle Scholar
  15. E. Gal and S. Toledo. 2005. Algorithms and data structures for flash memories. In ACM Comput. Survey 37, 2. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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).Google ScholarGoogle Scholar
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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).Google ScholarGoogle ScholarCross RefCross Ref
  24. Steve Schlosser, Greg Ganger, John Bucy, and Jiri Schindler. DiskSim 4.0. Retrieved from http://www.pdl.cmu.edu/DiskSim/.Google ScholarGoogle Scholar
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Adam Leventhal. 2008. Flash storage memory. In Communications of the ACM, Vol. 51, 7, 47–51. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Paul Lilly. 2013. Facebook ditches DRAM, flaunts flash-based McDipper. Retrieved from http://www.maximumpc.com/facebook-ditches-dram-flaunts-flash-based-mcdipper.Google ScholarGoogle Scholar
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  37. Memblaze. Memblaze. Retrieved from http://www.memblaze.com/en/.Google ScholarGoogle Scholar
  38. Memcached. Memcached: A distributed memory object caching system. Retrieved from http://www.memcached.org.Google ScholarGoogle Scholar
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Redis. Retrieved from http://redis.io/.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. SamSung. Samsung 840 Pro. Retrieved from https://www.cnet.com/products/samsung-840-pro-ssd/.Google ScholarGoogle Scholar
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. T13. T13 documents referring to TRIM. Retrieved from https://goo.gl/5oYarv.Google ScholarGoogle Scholar
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Twitter. Fatcache. Retrieved from https://github.com/twitter/fatcache.Google ScholarGoogle Scholar
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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).Google ScholarGoogle Scholar
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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).Google ScholarGoogle Scholar
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

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

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • 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

      Copyright © 2018 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 31 October 2018
      • Accepted: 1 March 2018
      • Revised: 1 January 2018
      • Received: 1 September 2017
      Published in tos Volume 14, Issue 3

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!