Abstract

Block-based storage devices exhibit different characteristics from main memory, and applications and systems have been optimized for a long time considering the characteristics in mind. However, emerging non-volatile memory technologies are about to change the situation. Persistent Memory (PM) provides a huge, persistent, and byte-addressable address space to the system, thereby enabling new opportunities for systems software. However, existing applications are usually apt to indirectly utilize PM as a storage device on top of file systems. This makes applications and file systems perform unnecessary operations and amplify I/O traffic, thereby under-utilizing the high performance of PM. In this paper, we make the case for an in-Kernel key-value storage service optimized for PM, called InK. While providing the persistence of data at a high performance, InK considers the characteristics of PM to guarantee the crash consistency. To this end, InK indexes key-value pairs with B+ tree, which is more efficient on PM. We implemented InK based on the Linux kernel and evaluated its performance with Yahoo Cloud Service Benchmark (YCSB) and RocksDB. Evaluation results confirms that InK has advantages over LSM-tree-based key-value store systems in terms of throughput and tail latency.

Highlights

  • For a long time, we have been taking computer systems comprised of volatile main memory and non-volatile secondary storage for granted

  • We propose InK, an In-kernel key-value store system optimized for DC Persistent Memory (DCPM)

  • The system call requests are forwarded to the InK submodule in the kernel, and are processed through a B+ tree that indexes the address of each key-value pair on the DCPM

Read more

Summary

Introduction

We have been taking computer systems comprised of volatile main memory and non-volatile secondary storage for granted. The generation computer systems should provide a less intrusive, easy-to-adapt scheme to replace the file system In this sense, we attempt to make a case for a key-value store system on non-volatile memory. Being optimized for the performance characteristics of block devices, LSM tree outperforms other indexing mechanisms on storage devices in many aspects Their operations based on the out-of-place update schemes incurs significant traffic amplification and high performance variation, which are considered as the most critical weakness of the LSM tree. InK outperforms LSM tree-based key-value store systems by up to 220% and 270% for read and update operations, respectively. LSM tree has been the most popular data structure for indexing key-value data We found it exposes limitations on non-volatile memory and should be reconsidered .

Background and Related Work
Log-Structured Merge Tree
Persistent Memory
InK Design
Managing Address Space on DCPM
Indexing Key-Value Pairs
Handling Basic Key-Value Operations
Managing DCPM Address Space
Consistency
Evaluation
InK Performance Analysis
Performance on Various Workloads
Conclusions
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call