1 research outputs found
Enabling Efficient Updates in KV Storage via Hashing: Design and Performance Evaluation
Persistent key-value (KV) stores mostly build on the Log-Structured Merge
(LSM) tree for high write performance, yet the LSM-tree suffers from the
inherently high I/O amplification. KV separation mitigates I/O amplification by
storing only keys in the LSM-tree and values in separate storage. However, the
current KV separation design remains inefficient under update-intensive
workloads due to its high garbage collection (GC) overhead in value storage. We
propose HashKV, which aims for high update performance atop KV separation under
update-intensive workloads. HashKV uses hash-based data grouping, which
deterministically maps values to storage space so as to make both updates and
GC efficient. We further relax the restriction of such deterministic mappings
via simple but useful design extensions. We extensively evaluate various design
aspects of HashKV. We show that HashKV achieves 4.6x update throughput and
53.4% less write traffic compared to the current KV separation design. In
addition, we demonstrate that we can integrate the design of HashKV with
state-of-the-art KV stores and improve their respective performance.Comment: 28 pages. Accepted by ACM Transactions on Storag