A Read Performance Analysis with Storage Hierarchy in Modern KVS: A RocksDB Case
Seehwan Yoo, Hojin Shin, Sunghyun Lee, Jongmoo Choi · 2022
This paper presents a performance analysis of a modern key-value store (KVS), RocksDB. RocksDB runs with two major data structures, Memtable and SSTable. Memtable is an in-memory data structure while SSTable is an in-storage data structure where both implement the log-structured merge tree. Our experiments show that the read performance can be characterized by multiple parameters around the Memtable and SSTable. In specific, Memtable access latency is affected by 1) the traversal time of the in-memory data structure, skiplist, 2) micro-architecture parameters such as CPU cache and TLB, and 3) access pattern. SSTable access latency is influenced by 1) block cache utilization, 2) number of storage blocks accessed, and 3) interference of internal operations such as compaction. We believe that the result could be beneficial in developing modern KVS with predictable performance.