scispace - formally typeset
Open AccessJournal ArticleDOI

Reducing database locking contention through multi-version concurrency

Reads0
Chats0
TLDR
A novel kV-Indirection structure is described to enable efficient (parallelizable) optimistic and pessimistic multi-version concurrency control by utilizing the old versions of records to provide direct access to the recent changes of records without the need of temporal indexes.
Abstract
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.

read more

Content maybe subject to copyright    Report

Citations
More filters
Proceedings ArticleDOI

Fast Serializable Multi-Version Concurrency Control for Main-Memory Database Systems

TL;DR: This work presents a novel MVCC implementation for main-memory database systems that has very little overhead compared to serial execution with single-version concurrency control and verifies that the (extensional) writes of recently committed transactions do not intersect with the (intensional) read predicate space of a committing transaction.
Proceedings Article

EasyCommit: A Non-blocking Two-phase Commit Protocol.

TL;DR: This work presents the design of the Easy Commit protocol and proves that it guarantees both safety and liveness, and a detailed evaluation of EC protocol, and shows that it is nearly as efficient as the 2PC protocol.
Proceedings ArticleDOI

QueCC: A Queue-oriented, Control-free Concurrency Architecture

TL;DR: This work proposes a queue-oriented, control-free concurrency architecture, referred to as QueCC, that exhibits minimal contention among concurrent threads by eliminating the overhead of concurrency control from the critical path of the transaction.
Journal ArticleDOI

Analyzing the impact of system architecture on the scalability of OLTP engines for high-contention workloads

TL;DR: An extensive experimental study is presented to understand the impact of each system architecture on overall scalability, the interaction between system architecture and concurrency control protocols, and the pros and cons of new architectures that have been proposed recently to explicitly deal with high-contention workloads.
Journal ArticleDOI

Efficient and non-blocking agreement protocols

TL;DR: The design of the EasyCommit protocol is presented and it is proved that it guarantees both safety and liveness and a topology-aware agreement protocol is designed that is non-blocking, safe, live and outperforms 3PC protocol.
References
More filters
Book

Concurrency Control and Recovery in Database Systems

TL;DR: In this article, the design and implementation of concurrency control and recovery mechanisms for transaction management in centralized and distributed database systems is described. But this can lead to interference between queries and updates.
Book

Database Systems: The Complete Book

TL;DR: This introduction to database systems offers a readable comprehensive approach with engaging, real-world examples, and users will learn how to successfully plan a database application before building it.
Journal ArticleDOI

H-store: a high-performance, distributed main memory transaction processing system

TL;DR: The demonstration presented here provides insight on the development of a distributed main memory OLTP database and allows for the further study of the challenges inherent in this operating environment.
Proceedings ArticleDOI

Calvin: fast distributed transactions for partitioned database systems

TL;DR: Calvin is a practical transaction scheduling and data replication layer that uses a deterministic ordering guarantee to significantly reduce the normally prohibitive contention costs associated with distributed transactions.
Proceedings ArticleDOI

Speedy transactions in multicore in-memory databases

TL;DR: A commit protocol based on optimistic concurrency control that provides serializability while avoiding all shared-memory writes for records that were only read, which achieves excellent performance and scalability on modern multicore machines.
Related Papers (5)
Trending Questions (1)
How does locking affect database index performance?

Database locking can impact index performance by causing contention between readers and writers, leading to extended lock delays. Multi-version concurrency control can reduce clashes and improve concurrency.