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%.
- Fatcache-Async. Retrieved from https://github.com/polyu-szy/Fatcache-Async-2017.Google Scholar
- Whitepaper: Memcached Total cost of ownership (TCO). Retrieved from https://goo.gl/SD2rZe.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- Facebook. McDipper: A key-value cache for flash storage. Retrieved from https://goo.gl/ZaavWa.Google Scholar
- E. Gal and S. Toledo. 2005. Algorithms and data structures for flash memories. In ACM Comput. Survey 37, 2. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- Steve Schlosser, Greg Ganger, John Bucy, and Jiri Schindler. DiskSim 4.0. Retrieved from http://www.pdl.cmu.edu/DiskSim/.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Adam Leventhal. 2008. Flash storage memory. In Communications of the ACM, Vol. 51, 7, 47–51. Google Scholar
Digital Library
- Paul Lilly. 2013. Facebook ditches DRAM, flaunts flash-based McDipper. Retrieved from http://www.maximumpc.com/facebook-ditches-dram-flaunts-flash-based-mcdipper.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- Memblaze. Memblaze. Retrieved from http://www.memblaze.com/en/.Google Scholar
- Memcached. Memcached: A distributed memory object caching system. Retrieved from http://www.memcached.org.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Redis. Retrieved from http://redis.io/.Google Scholar
- 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 Scholar
Digital Library
- SamSung. Samsung 840 Pro. Retrieved from https://www.cnet.com/products/samsung-840-pro-ssd/.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- T13. T13 documents referring to TRIM. Retrieved from https://goo.gl/5oYarv.Google Scholar
- 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 Scholar
Digital Library
- Twitter. Fatcache. Retrieved from https://github.com/twitter/fatcache.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
Index Terms
DIDACache: An Integration of Device and Application for Flash-based Key-value Caching
Recommendations
FRASH: hierarchical file system for FRAM and flash
ICCSA'07: Proceedings of the 2007 international conference on Computational science and its applications - Volume Part IIn this work, we develop novel file system, FRASH, for byte-addressable NVRAM (FRAM[1]) and NAND Flash device. Byte addressable NVRAM and NAND Flash is typified by the DRAM-like fast access latency and high storage density, respectively. Hierarchical ...
FlashKV: Accelerating KV Performance with Open-Channel SSDs
Special Issue ESWEEK 2017, CASES 2017, CODES + ISSS 2017 and EMSOFT 2017As the cost-per-bit of solid state disks is decreasing quickly, SSDs are supplanting HDDs in many cases, including the primary storage of key-value stores. However, simply deploying LSM-tree-based key-value stores on commercial SSDs is inefficient and ...
A high performance NAND array file system based on multiple NAND flash memories
The existing NAND flash memory file systems have not taken into account multiple NAND flash memories for large-capacity storage. In addition, since large-capacity NAND flash memory is much more expensive than the same capacity hard disk drive, it is ...






Comments