2
- https://doi.org/10.3390/electronics9111913
InK: In-Kernel Key-Value Storage with Persistent Memory
- Nov 13, 2020
- Electronics
- Minjong Ha +1 more
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.
- # Persistent Memory
- # Yahoo Cloud Service Benchmark
- # Key-value Store Systems
- # Tail Latency
- # Terms Of Throughput
- # Linux Kernel
- # Main Memory
- # File Systems
- # Storage Device
- # Huge Address