我如何实现MVCC?

我在网上找到了许多关于MVCC(多版本并发控制)概念的概述,但没有详细的技术参考文献来说明它应该如何工作或实施。 在线或离线书籍中是否有任何文档包含足够的理论基础(以及理想情况下的一些实际帮助),从而为实施奠定基础? 我希望或多或少地模拟PostgreSQL的功能。

(有关信息,我将在SAS中使用SAS / Share实现它 - 它提供了一些锁定原语和对底层数据存储的并发读/写访问,但没有任何事务隔离或DBMS功能正确。如果有人熟悉SAS / Share,并认为这是不可能完成的任务,请大声呼喊!)


事务处理:概念和技术以及事务信息系统:理论,算法和并发控制和恢复实践是事务处理的权威来源。

这两本书也在PostgreSQL Wiki中提到。


我写了一篇关于MVCC如何在PostgreSQL中工作的博文。 基本上,PostgreSQL中的表可能会伤害同一行的多个版本。

更多的还有另外两列:

  • tmin - 标记插入行的事务标识
  • tmax - 标记删除该行的事务标识
  • 更新通过删除并插入新记录完成,并且VACUUM过程收集不再使用的旧版本。


    我写了一篇关于这个的博客文章:

    https://elliot.silvrback.com/implementing-your-own-transactions-with-mvcc

    链接地址: http://www.djcxy.com/p/5183.html

    上一篇: How do I implement MVCC?

    下一篇: Reusing an instance of NSURLConnection