ISSN 1000-1239 CN 11-1777/TP

计算机研究与发展 ›› 2018, Vol. 55 ›› Issue (9): 2038-2049.doi: 10.7544/issn1000-1239.2018.20180258

所属专题: 2018新型存储系统结构前沿技术专题

• 系统结构 • 上一篇    下一篇



  1. (上海交通大学计算机科学与工程系 上海 200240) (
  • 出版日期: 2018-09-01
  • 基金资助: 
    国家重点研发计划项目(2018YFB1003302);国家自然科学基金项目(61472241) This work was supported by the National Key Research and Development Program of China (2018YFB1003302) and the National Natural Science Foundation of China (61472241).

A Log-Structured Key-Value Store Based on Non-Volatile Memory

You Litong, Wang Zhenjie, Huang Linpeng   

  1. (Department of Computer Science and Engineering, Shanghai Jiao Tong University, Shanghai 200240)
  • Online: 2018-09-01

摘要: 非易失性内存(non-volatile memory, NVM)技术是非常具有应用前景的计算机内存技术,将会对计算机存储层次结构产生极大的影响.NVM具有可字节寻址、可持久存储、低访问延迟等特点,这为DRAM和NVM在统一的主存储空间中的结合提供了巨大的机会.NVM可通过内存总线以及CPU相关指令进行数据访存,这使得在非易失性内存中设计快速的持久存储系统成为可能.现有的键值存储系统将NVM作为块设备使用,未能充分发挥NVM的性能.当硬件支持出现故障(例如高速缓存刷新)时,一些现有的键值存储系统无法保证数据的一致性.提出了一种基于日志结构的非易失性内存键值存储系统TinyKV,该系统利用键值数据负载的特性提出了一个静态并发、缓存友好的Hash表实现方案.TinyKV为每个工作线程维护单独的数据日志,以实现高并发性.此外,TinyKV采用日志结构技术进行内存管理,设计多层级内存分配器,以保证一致性.此外,系统通过减少对NVM的写入与缓存刷新指令,以降低写入延迟.实验显示:与传统的键值存储系统相比,TinyKV具有良好的吞吐性能与扩展能力.

关键词: 非易失性内存, 日志结构, 键值存储, Hash表, 内存管理

Abstract: Non-volatile memory (NVM) technologies are promising that would change the future of storage. NVM possesses many attractive capabilities such as byte addressability, low access latency, and persistence. It provides a great opportunity for the integration of DRAM and NVM in a unified main storage space. NVM could access data through the memory bus and CPU related instructions, which makes it possible to design a fast and persistent storage system in non-volatile memory. Existing key-value stores proposed for block devices implement NVM as block devices, which conceal the performance that NVM provides. A few existing key-value stores for NVM fail to provide consistency when hardware supports (e.g., cache flush) on power failures are unavailable. In this paper, we present a non-volatile memory key-value storage system, named TinyKV, which utilizes the log structure as its core framework. We propose a static concurrent, cache-friendly Hash table implementation using the characteristics of the key-value workloads. TinyKV separates the maintenance for data log of each worker thread in order to guarantee high concurrency. In addition, we implement the log structure technology for memory management and design a multi-tier memory allocator to ensure consistency. To reduce write latency, we reduce writes to NVM and cache flushing instructions by using cache flushing instructions. Our experiments demonstrate that TinyKV outperforms traditional key-value stores in both throughput and scalability.

Key words: non-volatile memory (NVM), log structure, key-value store, Hash table, memory management