← 研踪 PaperTrailarXiv:2607.19697 · v2
Optimistic Deadlock Handling with Redo Log-Based Speculative Versioning under High Contention
首次提交 2026-07-22 10:56
版本更新 2026-11-12 00:16
雷达观测 2026-11-13 14:16
摘要
Modern OLTP engines rely on multi-versioning to eliminate read-write conflicts, yet their concurrency is severely limited by write-write conflicts. With immediate, in-place updates, only one transaction updates a record at a time, and the others wait for it to commit or abort. Conflicting transactions are thus serialized. We propose RCC, a Redo log-based Concurrency Control scheme for high write contention. A transaction updates a record out of place by creating a speculative write version from its redo log entry. With multiple speculative versions per record, conflicting transactions are pipelined without waiting for predecessors to commit. RCC guarantees serializability using lock-based access-time conflict ordering and dependency graph tracking. Updates are installed lazily at commit, so a transaction aborts by discarding its speculative versions. Based on this, RCC introduces two novel techniques. Optimistic deadlock handling decouples deadlock detection from lock acquisition: it grants locks without checking for deadlocks and detects cycles asynchronously in the dependency graph. Columnar RCC (RCC-C) removes record-level false conflicts with column-level redo logs. We implemented RCC on MySQL, PostgreSQL, and DBx1000. In TPC-C at 128 threads on a 128-core server, RCC improves throughput by up to 3.3x over the state-of-the-art schemes, and RCC-C improves it further by avoiding false deadlocks and aborts. On high-contention YCSB, RCC remains robust up to 128 threads, whereas other schemes degrade beyond 32.
观测到的版本
相邻记录可能跳过中间版本;首次发现 v2 及以上也会标为版本更新。
v2 · 2026-11-12 00:16 · 最新观测版本
Optimistic Deadlock Handling with Redo Log-Based Speculative Versioning under High Contention
Modern OLTP engines rely on multi-versioning to eliminate read-write conflicts, yet their concurrency is severely limited by write-write conflicts. With immediate, in-place updates, only one transaction updates a record at a time, and the others wait for it to commit or abort. Conflicting transactions are thus serialized. We propose RCC, a Redo log-based Concurrency Control scheme for high write contention. A transaction updates a record out of place by creating a speculative write version from its redo log entry. With multiple speculative versions per record, conflicting transactions are pipelined without waiting for predecessors to commit. RCC guarantees serializability using lock-based access-time conflict ordering and dependency graph tracking. Updates are installed lazily at commit, so a transaction aborts by discarding its speculative versions. Based on this, RCC introduces two novel techniques. Optimistic deadlock handling decouples deadlock detection from lock acquisition: it grants locks without checking for deadlocks and detects cycles asynchronously in the dependency graph. Columnar RCC (RCC-C) removes record-level false conflicts with column-level redo logs. We implemented RCC on MySQL, PostgreSQL, and DBx1000. In TPC-C at 128 threads on a 128-core server, RCC improves throughput by up to 3.3x over the state-of-the-art schemes, and RCC-C improves it further by avoiding false deadlocks and aborts. On high-contention YCSB, RCC remains robust up to 128 threads, whereas other schemes degrade beyond 32.
查看此版本解读 →查看此版本原文 ↗