Abstract
Key-value store based on a log-structured merge-tree (LSM-tree) is preferable to hash-based key-value store, because an LSM-tree can support a wider variety of operations and show better performance, especially for writes. However, LSM-tree is difficult to implement in the resource constrained environment of a key-value SSD (KV-SSD), and, consequently, KV-SSDs typically use hash-based schemes. We present PinK, a design and implementation of an LSM-tree-based KV-SSD, which compared to a hash-based KV-SSD, reduces 99th percentile tail latency by 73%, improves average read latency by 42%, and shows 37% higher throughput. The key idea in improving the performance of an LSM-tree in a resource constrained environment is to avoid the use of Bloom filters and instead, use a small amount of DRAM to keep/pin the top levels of the LSM-tree. We also find that PinK is able to provide a flexible design space for a wide range of KV workloads by leveraging the read-write tradeoff in LSM-trees.
| Original language | English |
|---|---|
| Article number | 3452846 |
| Journal | ACM Transactions on Storage |
| Volume | 17 |
| Issue number | 2 |
| DOIs | |
| State | Published - Jun 2021 |
Bibliographical note
Publisher Copyright:© 2021 Association for Computing Machinery.
Keywords
- Log-structured merge-tree
- key-value SSD
- key-value store
- tail latency