可串行化(Serializable):理想和现实

但凡是接触过数据库的同学一定不会对事务(transaction)的概念感到陌生,我第一次接触事务的概念还是在本科的数据库课本上,了解了事务并发控制概念,但在之后多年不严肃的前后台开发经历中,我几乎从来没有考虑过数据库的“隔离级别”,这让我产生了一种”数据库如此好用,世界如此美好“的幻觉…直到现在从事了数据库内核的开发工作,才对事务的并发控制有了一点点认真的理解。

这篇文章即是我对事务并发控制的一些粗浅的理解。

事务并发执行的正确性


一般来说,教科书中都是类似的描述事务:”数据库并发控制的基本单元“,事务管理器和执行引擎需要和并发控制协作,来保证数据库中事务的执行是”正确“的。数据库中事务并发控制的正确性,也就是我们常说的Isolation

PS:并发事务的正确性除了我们最常讨论的Isolation之外还有Consistency和Recoverable,限于篇幅,本文仅讨论Isolation。

继续阅读: