A-A+

并发控制算法小结

2020年04月09日 数据库 暂无评论 阅读 399 次

 

介绍几篇并发控制的工作(并发控制算法还有很多,这里也只是简单看了几篇):

 

 

 

前两个评估工作,都是学术圈的工作,介绍并评估了一些CC算法。但这两个工作都有个共同的不足:

不足1:只测试了serializable,但有很多场景用的是RC/RR/SI。

我记得Andy Polvo后来在SIGMOD(?)上开场还讲了一次说,学术界一直研究Serializable,但工业界实际上用RC/RR/SI更多。

不足2:有些测试结果分析不太透彻,说服力不足。

内存数据库上测CC的性能,很多问题很有可能会被其他模块的性能瓶颈掩盖。

相比之下,极致性能优化的Hekaton的CC算法测试和分析就硬实的多。

 

 

 

总结下来,几个硬实的结论:

  • 单版本基于锁的CC虽然不需要维护多版本开销和GC开销,但是它并不能更好地适应各种类型的workload。MVCC已经成为TP数据库引擎标配。这一点基本上不需要质疑。
  • 乐观CC在冲突少的情况下更优,但悲观CC的workload适应性更强,就我所知道的国内几个分布式产品,大都默认用悲观MVCC。例如TiDB后来的版本也引入和悲观MVCC。

给我留言