Multi-versioned database systems have the potential to significantly increase the amount of concurrency in transaction processing because they can avoid read-write conflicts. Unfortunately, the increase in concurrency usually comes at the cost of transaction serializability. If a database user requests full serializability, modern multi-versioned systems significantly constrain read-write concurrency among conflicting transactions and employ expensive synchronization patterns in their design. In main-memory multi-core settings, these additional constraints are so burdensome that multiversioned systems are often significantly outperformed by singleversion systems. We propose BOHM, a new concurrency control protocol for mainmemory multi-versioned database systems. BOHM guarantees serializable execution while ensuring that reads never block writes. In addition, BOHM does not require reads to perform any bookkeeping whatsoever, thereby avoiding the overhead of tracking reads via contended writes to shared memory. This leads to excellent scalability and performance in multi-core settings. BOHM has all the above characteristics without performing validation based concurrency control. Instead, it is pessimistic, and is therefore not prone to excessive aborts in the presence of contention. An experimental evaluation shows that BOHM performs well in both high contention and low contention settings, and is able to dramatically outperform state-of-the-art multi-versioned systems despite maintaining the full set of serializability guarantees.
Bohm REF is a similar MVCC-based concurrency control protocol for multi-core settings which serializes timestamp assignment at a single thread.
Rethinking serializable multiversion concurrency control
PVLDB
PVLDB
Computer Science