MV-PBT: multi-version indexing for large datasets and HTAP workloads
- Modern mixed (HTAP)workloads execute fast update-transactions and long running analytical queries on the same dataset and system. In multi-version (MVCC) systems, such workloads result in many short-lived versions and long version-chains as well as in increased and frequent maintenance overhead. Consequently, the index pressure increases significantly. Firstly, the frequent modifications cause frequent creation of new versions, yielding a surge in index maintenance overhead. Secondly and more importantly, index-scans incur extra I/O overhead to determine, which of the resulting tuple versions are visible to the executing transaction (visibility-check) as current designs only store version/timestamp information in the base table – not in the index. Such index-only visibility-check is critical for HTAP workloads on large datasets. In this paper we propose the Multi Version Partitioned B-Tree (MV-PBT) as a version-aware index structure, supporting index-only visibility checks and flash-friendly I/O patterns. The experimental evaluation indicates a 2x improvement for analytical queries and 15% higher transactional throughput under HTAP workloads. MV-PBT offers 40% higher tx. throughput compared to WiredTiger’s LSM-Tree implementation under YCSB.
Author of HS Reutlingen | Riegger, Christian; Vinçon, Tobias; Gottstein, Robert; Petrov, Ilia |
---|---|
URN: | urn:nbn:de:bsz:rt2-opus4-28234 |
DOI: | https://doi.org/10.5441/002/edbt.2020.20 |
Erschienen in: | Advances in data base technology - EDBT 2020 : 23rd International Conference on Extending Database Technology, Copenhagen, Denmark, March 30 - April 2, 2020 : proceedings |
Publisher: | Open Proceedings.org, Univ. of Konstanz |
Place of publication: | Konstanz, Germany |
Editor: | Angela Bonifati |
Document Type: | Conference proceeding |
Language: | English |
Publication year: | 2020 |
Page Number: | 12 |
First Page: | 217 |
Last Page: | 228 |
DDC classes: | 004 Informatik |
Open access?: | Ja |
Licence (German): | ![]() |