Disco: A Compact Index for LSM-trees
Wenshao Zhong, Chen Chen, Xingbo Wu, Jakob Eriksson
Abstract
Many key-value stores and database systems use log-structured merge-trees (LSM-trees) as their storage engines because of their excellent write performance. However, the read performance of LSM-trees is suboptimal due to the overlapping sorted runs. Most existing efforts rely on filters to reduce unnecessary I/Os, but filters fundamentally do not help locate items and often become the bottleneck of the system. We identify that the lack of efficient index is the root cause of subpar read performance in LSM-trees. In this paper, we propose Disco: a compact index for LSM-trees. Disco indexes all the keys in an LSM-tree, so a query does not have to search every run of the LSM-tree. It records compact key representations to minimize the number of key comparisons so as to minimize cache misses and I/Os for both point and range queries. Disco guarantees that both point queries and seeks issue at most one I/O to the underlying runs, achieving an I/O efficiency close to a B + -tree. Disco improves upon REMIX's pioneering multi-run index design with additional compact key representations to help improve read performance. The representations are compact so the cost of persisting Disco to disk is small. Moreover, while a traditional LSM-tree has to choose a more aggressive compaction policy that slows down write performance to have better read performance, a Disco-indexed LSM-tree can employ a write-efficient policy and still have good read performance. Experimental results show that Disco can save I/Os and improve point and range query performance by up to 220% over RocksDB while maintaining efficient writes.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 34d33cdf-5bdb-4828-8099-6c75f68d93b8Cited by top-tier papers1
Ask how each one uses itBuilds on11
- From WiscKey to Bourbon: A Learned Index for Log-Structured Merge TreesYifan Dai, Yien Xu, Aishwarya Ganesan, Ramnatthan Alagappan et al.OSDI 2020 · 138 citations
- Evolution of Development Priorities in Key-value Stores Serving Large-scale Applications: The RocksDB ExperienceSiying Dong, Andrew Kryczka, Yanqin Jin, Michael StummFAST 2021 · 110 citations
- Rosetta: A Robust Space-Time Optimized Range Filter for Key-Value StoresSiqiang Luo, Subarna Chatterjee, Rafael Ketsetsidis, Niv Dayan et al.SIGMOD 2020 · 91 citations
- Constructing and Analyzing the LSM Compaction Design SpaceSubhadeep Sarkar, Dimitris Staratzis, Zichen Zhu, Manos AthanassoulisVLDB 2021 · 73 citations
- Chucky: A Succinct Cuckoo Filter for LSM-TreeNiv Dayan, Moshe TwittoSIGMOD 2021 · 57 citations
Related papers
- REMIX: Efficient Range Query for LSM-treesWenshao Zhong, Chen Chen, Xingbo Wu, Song JiangFAST 2021 · 67 citations
- Range Cache: An Efficient Cache Component for Accelerating Range Queries on LSM - Based Key-Value StoresXiaoliang Wang, Peiquan Jin, Yongping Luo, Zhaole ChuICDE 2024 · 10 citations
- GRF: A Global Range Filter for LSM-Trees with Shape EncodingHengrui Wang, Te Guo, Junzhao Yang, Huanchen ZhangSIGMOD 2024 · 15 citations
- Rethinking The Compaction Policies in LSM-treesHengrui Wang, Jiansheng Qiu, Fangzhou Yuan, Huanchen ZhangSIGMOD 2025 · 9 citations
- Enhancing LSM-Tree Key-Value Stores for Read-Modify-Writes via Key-Delta SeparationJinhong Li, Yanjing Ren, Shujie Han, Patrick P. C. LeeICDE 2024 · 6 citations
