"BCC: reducing false aborts in optimistic concurrency control with low cost 
in-memory databases" 

Yuan Yuan, Kaibo Wang, Rubao Lee, Xiaoning Ding, Jing Xing, Spyros Blanas, 
and Xiaodong Zhang 

Proceedings of 42nd International Conference on Very Large Data Bases 
(VLDB  2016), 
New Delhi, India, September 5-9, 2016.


The Optimistic Concurrency Control (OCC) method has been commonly
used for in-memory databases to ensure transaction serializability
 a transaction will be aborted if its read set has been
changed during execution. This simple criterion to abort transactions
causes a large proportion of false positives, leading to excessive
transaction aborts. Transactions aborted false-positively (i.e.
false aborts) waste system resources and can significantly degrade
system throughput (as much as 3.68x based on our experiments)
when data contention is intensive.

Modern in-memory databases run on systems with increasingly parallel hardware and handle workloads with growing concurrency. They must efficiently deal with data contention in the presence of greater concurrency by minimizing false aborts. This paper presents a new concurrency control method named Balanced Concurrency Control (BCC) which aborts transactions more carefully than OCC does. BCC detects data dependency patterns which can more reliably indicate unserializable transactions than the criterion used in OCC. The paper studies the design options and implementation techniques that can effectively detect data contention by identifying dependency patterns with low overhead. To test the performance of BCC, we have implemented it in Silo and compared its performance against that of the vanilla Silo system with OCC and two-phase locking (2PL). Our extensive experiments with TPC-Wlike, TPC-C-like and YCSB workloads demonstrate that when data contention is intensive, BCC can increase transaction throughput by more than 3x versus OCC and more than 2x versus 2PL; meanwhile, BCC has comparable performance with OCC for workloads with low data contention.