Compaction is an essential ingredient in a LSM (Log-Structured Merge)-tree based key-value store. In this paper, we analyze two representative compaction policies, called leveled and universal, using RocksDB. Our analysis uncovers that the universal policy has a capability to reduce write amplification by applying compaction in a lazy manner. However, the lazy manner deteriorates space amplification, which leads to adverse effects such as a relatively longer period of low performance for compaction and degraded throughput for range query. We also observe that, for sequential access pattern, the leveled policy can provide better write amplification than the universal policy by employing a technique called trivial move. In addition, we find out that the background compaction and index cache give a substantial impact on the performance of point query. Our analysis reveals tradeoffs between two policies based on various aspects including access pattern, query type, and configurations, which can be used effectively for designing new and hybrid compaction policies.
목차
Abstract I. INTRODUCTION II. BACKGROUND A. RocksDB internals B. Compaction policies III. METHODOLOGY A. Three amplfications B. Write intensive workloads C. Read intensive workloads IV. ANALYSIS A. Write intensive workloads B. Read intensive workloads V. CONCLUSION ACKNOWLEDGEMENT REFERENCES
키워드
Big DataKey-Value StoreLSM-treeCompactionEvaluation
저자
Inho Song [ dept. of Computer Science Dankook University ]
Yejin Han [ dept. of Computer Science Dankook University ]
Hojin Shin [ dept. of Computer Science Dankook University ]
Seehwan Yoo [ dept. of Computer Science Dankook University ]
Jongmoo Choi [ dept. of Computer Science Dankook University ]
Yoojin Chung [ Div. of Computer and ES Engineering Hankuk University of Foreign Studies ]