高级检索
    游理通, 王振杰, 黄林鹏. 一个基于日志结构的非易失性内存键值存储系统[J]. 计算机研究与发展, 2018, 55(9): 2038-2049. DOI: 10.7544/issn1000-1239.2018.20180258
    引用本文: 游理通, 王振杰, 黄林鹏. 一个基于日志结构的非易失性内存键值存储系统[J]. 计算机研究与发展, 2018, 55(9): 2038-2049. DOI: 10.7544/issn1000-1239.2018.20180258
    You Litong, Wang Zhenjie, Huang Linpeng. A Log-Structured Key-Value Store Based on Non-Volatile Memory[J]. Journal of Computer Research and Development, 2018, 55(9): 2038-2049. DOI: 10.7544/issn1000-1239.2018.20180258
    Citation: You Litong, Wang Zhenjie, Huang Linpeng. A Log-Structured Key-Value Store Based on Non-Volatile Memory[J]. Journal of Computer Research and Development, 2018, 55(9): 2038-2049. DOI: 10.7544/issn1000-1239.2018.20180258

    一个基于日志结构的非易失性内存键值存储系统

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

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

       

      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.

       

    /

    返回文章
    返回