Intelligent Transaction Scheduling via Conflict Prediction in OLTP DBMS
Tieying Zhang, Anthony Tomasic, Andrew Pavlo
TL;DR
Transaction conflicts are a major bottleneck in main-memory OLTP systems. The authors propose a history-based, statistical scheduling framework that represents each transaction by a compact set of references and groups transactions to minimize conflicts, effectively decoupling scheduling from the core concurrency control mechanism. Empirical results across TPC-C, SmallBank, and TATP show significant abort-rate reductions and throughput gains, with Canonical scheduling approaching partitioned baseline performance for both OCC and 2PL. The approach offers a low-overhead, deployable enhancement to existing DBMS architectures, supporting robust performance improvements under high contention and varying workloads.
Abstract
Current architectures for main-memory online transaction processing (OLTP) database management systems (DBMS) typically use random scheduling to assign transactions to threads. This approach achieves uniform load across threads but it ignores the likelihood of conflicts between transactions. If the DBMS could estimate the potential for transaction conflict and then intelligently schedule transactions to avoid conflicts, then the system could improve its performance. Such estimation of transaction conflict, however, is non-trivial for several reasons. First, conflicts occur under complex conditions that are far removed in time from the scheduling decision. Second, transactions must be represented in a compact and efficient manner to allow for fast conflict detection. Third, given some evidence of potential conflict, the DBMS must schedule transactions in such a way that minimizes this conflict. In this paper, we systematically explore the design decisions for solving these problems. We then empirically measure the performance impact of different representations on standard OLTP benchmarks. Our results show that intelligent scheduling using a history increases throughput by $\sim$40\% on 20-core machine.
