MVCC事务间冲突的修复
数据库
2016-03-03 v1
摘要
MVCC(多版本并发控制)的乐观变体以避免阻塞并发事务为代价,引入了一个验证阶段。在验证阶段失败时,事务通常被中止并从头重启。这种“中止并重启”方法对于具有高竞争对象或长事务的使用场景成为性能瓶颈。此外,从头重启会在系统中产生负反馈循环,因为系统会产生额外的开销,从而可能引发进一步的冲突。本文中,我们提出了一种用于内存数据库中MVCC冲突解决的新方法。这种低开销方法以依赖图的形式概括事务程序。该依赖图还包含MVCC算法验证阶段所使用的结构。然后,在遇到事务间冲突的情况下,快速检测程序中的冲突位置,并对冲突事务进行部分重执行。该方法最大化了初始执行轮次中已完成计算的重用,并提高了事务处理吞吐量。
引用
@article{arxiv.1603.00542,
title = {Repairing Conflicts among MVCC Transactions},
author = {Mohammad Dashti and Sachin Basil John and Amir Shaikhha and Christoph Koch},
journal= {arXiv preprint arXiv:1603.00542},
year = {2016}
}
备注
12 pages, 9 figures