我在Web上找到了很多资源,给出了MVCC(多版本并发控制)概念的一般概述,但没有关于它应该如何工作或实现的详细技术参考。是否有任何在线或书籍离线的文件,其中包含足够的理论(以及一些实际的帮助,理想情况下)作为实施的基础?我希望或多或少地模仿PostgreSQL所做的事情。
(有关信息,我将使用SAS / Share在SAS中实现它 - 它提供了一些锁定原语和对底层数据存储的并发读/写访问,但没有任何事务隔离或正确的DBMS功能。如果有人熟悉SAS / Share并认为这是一项不可能完成的任务,请大声喊!)
答案 0 :(得分:2)
Transaction Processing: Concepts and Techniques和Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery是交易处理的权威来源。
PostgreSQL Wiki中也提到了这两本书。
答案 1 :(得分:1)
我写了一篇关于how MVCC works in PostgreSQL的博文。基本上,PostgreSQL中的表可能会疼痛同一行的多个版本。
此外,还有两列:
通过删除和插入新记录来完成更新,VACUUM流程会收集不再使用的旧版本。
答案 2 :(得分:0)