Abstract
Multi-version concurrency control is a widely employed concurrency control mechanism, as it allows non-blocking accesses while providing isolation among transactions. However, maintaining multiple versions increases the latency for both point lookups and ranged retrievals because of the overhead in finding the right version. In particular, the append-only skip list-widely used in the state-of-the-art key-value stores (KVS)-shows a significant performance degradation due to its append-only nature. This paper presents a novel skip list implementation called JellyFish. JellyFish reduces the overhead of multi-version concurrency control by separating the per-key updates from the key indexing. We implement our design on top of RocksDB and compare it against a wide variety of data structures. Our evaluation with micro-benchmarks and real-world workloads show that we not only improve the throughput by up to 93%, but also reduce the latency of update operations by up to 42%.
Cite
CITATION STYLE
Yeon, J., Lee, H. G., Kim, L., Lee, E., Han, Y., & Kim, B. S. (2020). Jellyfish: A fast skip list with MVCC. In Middleware 2020 - Proceedings of the 2020 21st International Middleware Conference (pp. 134–148). Association for Computing Machinery, Inc. https://doi.org/10.1145/3423211.3425672
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.