NVLevel: A High Performance Key-Value Store for Non-Volatile Memory

2019 
With the development of byte-addressable non-volatile memory (NVM) technologies, such as Intel/Micron's 3D-XPoint memory and phase change memory (PCM), it is possible to persistently store data in hybrid memory systems consisting of DRAM and NVM. NVM-enabled hybrid memory systems are important to in-memory databases and computing, especially to large-scale in-memory data storage and processing. In this paper, we redesign the cache layer of LevelDB, which is a persistent key-value database based on the LSM-tree, and present NVLevel to provide low latency and high throughput for applications running in NVM-based hybrid memory systems. In particular, we propose two new designs over the LSM-tree. First, we propose Multi-Memtable to offer a write-friendly cache layer for the LSM-tree. Second, we present Hash-Skiplist, which is a hash-based Skiplist that has better read performance than the traditional Skiplist. With the new design of write-optimized Multi-Memtable and read-optimized Hash-Skiplist, NVLevel can achieve high performance both in read-intensive and write-intensive workloads. Our experiments with popular benchmarks including DBBench and YCSB show that NVLevel achieves better write throughput and latency compared to Huge-Memtable, which is the state-of-the-art improvement of the LSM-tree over NVM. Moreover, the overall performance of NVLevel in multi-thread environments is over 2 times higher than that of Huge-Memtable.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    16
    References
    3
    Citations
    NaN
    KQI
    []