MV-PBT: Multi-Version Index 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 (CH-Benchmark). MV-PBT offers 40% higher transactional throughput compared to WiredTiger's LSM-Tree implementation under YCSB.

[1]  Ziqi Wang,et al.  Building a Bw-Tree Takes More Than Just Buzz Words , 2018, SIGMOD Conference.

[2]  Robert Gottstein Impact of new storage technologies on an OLTP DBMS, its architecture and algorithms , 2016 .

[3]  Bernhard Seeger,et al.  An asymptotically optimal multiversion B-tree , 1996, The VLDB Journal.

[4]  Yuanyuan Tian,et al.  Hybrid Transactional/Analytical Processing: A Survey , 2017, SIGMOD Conference.

[5]  Carlo Curino,et al.  OLTP-Bench: An Extensible Testbed for Benchmarking Relational Databases , 2013, Proc. VLDB Endow..

[6]  R. Bayer,et al.  Organization and maintenance of large ordered indices , 1970, SIGFIDET '70.

[7]  Patrick E. O'Neil,et al.  The log-structured merge-tree (LSM-tree) , 1996, Acta Informatica.

[8]  Goetz Graefe,et al.  Sorting And Indexing With Partitioned B-Trees , 2003, CIDR.

[9]  Adam Silberstein,et al.  Benchmarking cloud serving systems with YCSB , 2010, SoCC '10.

[10]  Ilia Petrov,et al.  DBMS on modern storage hardware , 2015, 2015 IEEE 31st International Conference on Data Engineering.

[11]  Ilia Petrov,et al.  Multi-version indexing and modern hardware technologies: a survey of present indexing approaches , 2017, iiWAS.

[12]  Andrew Pavlo,et al.  An Empirical Evaluation of In-Memory Multi-Version Concurrency Control , 2017, Proc. VLDB Endow..

[13]  Ilia Petrov,et al.  SIAS-Chains: Snapshot Isolation Append Storage Chains , 2017, ADMS@VLDB.

[14]  Harumi A. Kuno,et al.  The mixed workload CH-benCHmark , 2011, DBTest '11.

[15]  Wook-Shin Han,et al.  Hybrid Garbage Collection for Multi-Version Concurrency Control in SAP HANA , 2016, SIGMOD Conference.

[16]  Sudipta Sengupta,et al.  The Bw-Tree: A B-tree for new hardware platforms , 2013, 2013 IEEE 29th International Conference on Data Engineering (ICDE).

[17]  Ilia Petrov,et al.  MV-IDX: indexing in multi-version databases , 2014, IDEAS.

[18]  Chen Luo,et al.  LSM-based storage techniques: a survey , 2018, The VLDB Journal.

[19]  David B. Lomet,et al.  The performance of a multiversion access method , 1990, SIGMOD '90.

[20]  Goetz Graefe Partitioned B-trees - a user's guide , 2003, BTW.