我如何实施MVCC?

我在Web上找到了许多资源,给出了MVCC(多版本并发控制)概念的一般概述,但没有关于它应该如何工作或实现的详细技术参考。是否有任何在线或书籍离线的文件,其中包含足够的理论(以及一些实际的帮助,理想情况下)作为实施的基础?我希望或多或少地模仿PostgreSQL的功能。 (有关信息,我将使用SAS / Share在SAS中实现它 - 它提供了一些锁定原语和对底层数据存储的并发读/写访问,但没有任何事务隔离或正确的DBMS功能。如果有人熟悉SAS / Share认为这是一项不可能完成的任务,请大声喊!)     
已邀请:
事务处理:概念和技术以及事务信息系统:理论,算法和并发控制和恢复的实践是事务处理的权威来源。 PostgreSQL Wiki中也提到了这两本书。     
我写了一篇关于MVCC如何在PostgreSQL中工作的博客文章。基本上,PostgreSQL中的表可能会疼痛同一行的多个版本。 此外,还有两个附加列: tmin - 标记插入行的事务ID tmax - 标记删除行的事务ID 通过删除和插入新记录来完成更新,VACUUM进程会收集不再使用的旧版本。     
我写了一篇关于此的博文: https://elliot.silvrback.com/implementing-your-own-transactions-with-mvcc     

要回复问题请先登录注册