标题：DIDACache: An Integration of Device and Application for Flash-based Key-value Caching
作者：Shen, Zhaoyan; Chen, Feng; Jia, Yichen; Shao, Zili
作者机构：[Shen, Zhaoyan; Shao, Zili] Hong Kong Polytech Univ, Hong Kong, Peoples R China.; [Chen, Feng] Louisiana State Univ, Dept Comp Sci & Engn, 3272-L Pa 更多
通讯作者：Shen, ZY;Shen, ZY
通讯作者地址：[Shen, ZY]Hong Kong Polytech Univ, Hong Kong, Peoples R China;[Shen, ZY]Shandong Univ, Sch Comp Sci & Technol, Binhai Rd 72, Qingdao, Peoples R China.
来源：ACM TRANSACTIONS ON STORAGE
关键词：NAND flash memory; key-value caching; open-channel SSD
摘要：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  and Twitter's Fatcache . 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%.