Fast Persistent Key-Value Store Design
This paper delves into the design and implementation of a fast persistent key-value store known as Kvell. The motivation for this system stems from the inherent speed advantage of disks. Both traditional and Kvell designs are discussed, emphasizing unsorted data on disk, shared-nothing architecture, and ample buffering. The background covers LSM and B-tree key-value stores, with a focus on RocksDB's I/O bandwidth and CPU utilization. Evaluation and conclusion sections round up the paper's discussion.
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
Kvell: the Design and Implementation of a Fast Persistent Key-Value Store B. Lepers et al. SOSP, 2019 2022. 04. 26 Presented by SungHyun Lee leesh0812@dankook.ac.kr
Outline Outline - Motivation - Background - Design - Evaluation - Conclusion 2
Motivation Disk are much faster 3
Motivation Disk are much faster 4
Background Key-Value Store - LSM KVs - B tree KVs B tree LSM 6
Background LSM KVs - RocksDB 50% Get, 50% Put I/O bandwidth (left) and CPU consumption (right) timelines for RocksDB 7
Background LSM KVs - RocksDB 50% Get, 50% Put I/O bandwidth (left) and CPU consumption (right) timelines for RocksDB 8
Background LSM KVs %CPU Utilization 60% - Merging + Creating indexes of the disk structure 9
Background LSM KVs - RocksDB 50% Get, 50% Put 10
Background B tree KVs %CPU Utilization 60% - Contention on shared data structures 11
Design Traditional - Ordering - Contention - Large buffers 12
Design Kvell - Data unsorted on disk Traditional - Ordering - Shared-nothing - Contention - No buffering - Large buffers 13
Design Data unsorted on disk 14
Design Data unsorted on disk file Prefix(K0) k, v idx (file, idx) Prefix(K3) Prefix(k) Prefix(K2) Prefix(K4) Prefix(K5) Disk Memory 15
Design No sharing Worker 1 Worker 2 Worker 3 Key % 3 == 2 Key % 3 == 0 Key % 3 == 1 16
Design No sharing Worker 1 Worker 2 Worker 3 17
Design No buffering Memory delayed write Page Cache write Disk Traditional Put(k, v) Memory Page Cache write Disk Kvell Put(k, v) 18
Evaluation Optane 19
Evaluation Optane 20
Evaluation Amazon-8NVMe 21
Evaluation Amazon-8NVMe 22
Conclusion An analysis of conventional LSM and B tree KVs, demonstrating that they become bottlenecked by the CPU on NVMe SSDs. A new paradigm for persistent KVs to leverage the properties of NVMe SSDs, focusing on streamlined use of the CPU. An in-depth evaluation of KVell compared to state-ofthe-art LSM and B tree KVs on synthetic benchmarks and production workloads. 23
Q&A Q&A 24