Reducing Database Locking Contention Through Multi-version Concurrency

In multi-version databases, updates and deletions of records by transactions require appending a new record to tables rather than performing in-place updates. This mechanism incurs non-negligible performance overhead in the presence of multiple indexes on a table, where changes need to be propagated to all indexes. Additionally, an uncommitted record update will block other active transactions from using the index to fetch the most recently committed values for the updated record. In general, in order to support snapshot isolation and/or multi-version concurrency, either each active transaction is forced to search a database temporary area (e.g., roll-back segments) to fetch old values of desired records, or each transaction is forced to scan the entire table to find the older versions of the record in a multi-version database (in the absence of specialized temporal indexes). In this work, we describe a novel kV-Indirection structure to enable efficient (parallelizable) optimistic and pessimistic multi-version concurrency control by utilizing the old versions of records (at most two versions of each record) to provide direct access to the recent changes of records without the need of temporal indexes. As a result, our technique results in higher degree of concurrency by reducing the clashes between readers and writers of data and avoiding extended lock delays. We have a working prototype of our concurrency model and kV-Indirection structure in a commercial database and conducted an extensive evaluation to demonstrate the benefits of our multi-version concurrency control, and we obtained orders of magnitude speed up over the single-version concurrency control.

[1]  Wojciech M. Golab,et al.  Minuet: A Scalable Distributed Multiversion B-Tree , 2012, Proc. VLDB Endow..

[2]  Kenneth A. Ross,et al.  Making Updates Disk-I/O Friendly Using SSDs , 2013, Proc. VLDB Endow..

[3]  Jennifer Widom,et al.  Database Systems: The Complete Book , 2001 .

[4]  Daniel J. Abadi,et al.  Calvin: fast distributed transactions for partitioned database systems , 2012, SIGMOD Conference.

[5]  Jignesh M. Patel,et al.  High-Performance Concurrency Control Mechanisms for Main-Memory Databases , 2011, Proc. VLDB Endow..

[6]  Michael Stonebraker,et al.  H-store: a high-performance, distributed main memory transaction processing system , 2008, Proc. VLDB Endow..

[7]  Beng Chin Ooi,et al.  The TP-Index: a dynamic and efficient indexing mechanism for temporal databases , 1994, Proceedings of 1994 IEEE 10th International Conference on Data Engineering.

[8]  Ramez Elmasri,et al.  The Time Index and the Monotonic B+-tree , 1993, Temporal Databases.

[9]  Geneviève Jomier,et al.  Indexing multiversion databases , 2007, CIKM '07.

[10]  Ippokratis Pandis,et al.  Data-oriented transaction execution , 2010, Proc. VLDB Endow..

[11]  Vana Kalogeraki,et al.  Real-Time Querying of Historical Data in Flash-Equipped Sensor Devices , 2008, 2008 Real-Time Systems Symposium.

[12]  Z. Meral Özsoyoglu,et al.  Indexing Valid Time Intervals , 1998, DEXA.

[13]  Vassilis J. Tsotras,et al.  Comparison of access methods for time-evolving data , 1999, CSUR.

[14]  Eddie Kohler,et al.  Speedy transactions in multicore in-memory databases , 2013, SOSP.

[15]  Hamid Pirahesh,et al.  Efficient and flexible methods for transient versioning of records to avoid locking by read-only transactions , 1992, SIGMOD '92.

[16]  Chuan-Heng Ang,et al.  The Interval B-Tree , 1995, Inf. Process. Lett..

[17]  David B. Lomet,et al.  Transaction time indexing with version compression , 2008, Proc. VLDB Endow..

[18]  Daniel J. Abadi,et al.  Lightweight Locking for Main Memory Database Systems , 2012, Proc. VLDB Endow..

[19]  Hao Xu,et al.  Skippy: a new snapshot indexing method for time travel in the storage manager , 2008, SIGMOD Conference.

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

[21]  Daniel J. Abadi,et al.  Low overhead concurrency control for partitioned main memory databases , 2010, SIGMOD Conference.

[22]  Daniel J. Abadi,et al.  The case for determinism in database systems , 2010, Proc. VLDB Endow..

[23]  Arie Segev,et al.  Efficient Indexing Methods for Temporal Relations , 1993, IEEE Trans. Knowl. Data Eng..

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

[25]  Craig Freedman,et al.  Hekaton: SQL server's memory-optimized OLTP engine , 2013, SIGMOD '13.

[26]  Mohamed F. Mokbel,et al.  Immortal DB: transaction time support for SQL server , 2005, SIGMOD '05.