中文

KV-Tandem——一种构建高速 LSM 存储引擎的模块化方法

数据库 2024-11-19 v1

摘要

我们提出了 \emph{KV-Tandem},这是一种模块化架构,用于在简单、无序的持久化键值存储 (KVSs) 之上构建基于 LSM 的存储引擎。KV-Tandem 实现了范围查询和快照读取等高级功能,同时保持了原生 KVS 在随机读写方面的性能。与难以分解单体 LSM 结构的以往 KV 分离解决方案相比,其模块化设计提供了更好的性能权衡。KV-Tandem 的核心是 \emph{LSM bypass}——一种新颖的算法,它为基本操作提供了快速路径,同时确保了高级 API 的正确性。我们在 \emph{XDP-Rocks} 中实现了 KV-Tandem,这是一个兼容 RocksDB 的存储引擎,它利用了 XDP KVS 并结合了面向实际部署的实用设计优化。通过广泛的微基准测试和系统级比较,我们证明了 XDP-Rocks 在各种工作负载下比 RocksDB 实现了 3 到 4 倍的性能提升。XDP-Rocks 已部署在生产环境中,带来了与这些性能提升相称的显著运营成本节约。

关键词

引用

@article{arxiv.2411.11091,
  title  = {KV-Tandem -- a Modular Approach to Building High-Speed LSM Storage Engines},
  author = {Edward Bortnikov and Michael Azran and Asa Bornstein and Shmuel Dashevsky and Dennis Huang and Omer Kepten and Michael Pan and Gali Sheffi and Moshe Twitto and Tamar Weiss Orzech and Idit Keidar and Guy Gueta and Roey Maor and Niv Dayan},
  journal= {arXiv preprint arXiv:2411.11091},
  year   = {2024}
}