2011-03-03 82 views
7

我在网上找到了许多关于MVCC(多版本并发控制)概念的概述,但没有详细的技术参考文献来说明它应该如何工作或实施。在线或离线书籍中是否有任何文档包含足够的理论基础(以及理想情况下的一些实际帮助),从而为实施奠定基础?我希望或多或少地模拟PostgreSQL的功能。 (有关信息,我将在SAS中使用SAS/Share实现它 - 它提供了一些锁定原语和对底层数据存储的并发读/写访问,但没有任何事务隔离或DBMS功能。任何人都熟悉SAS/Share并认为这是不可能的任务,请大声呼喊!)如何实现MVCC?

+0

是否有任何理由要在比如说RDBMS之前使用SAS/SHARE? – sasfrog 2011-03-04 00:34:58

+0

石器时代IT部门/项目经理谁对使用正确的工具工作的概念有意见的意见。 – jl6 2011-03-27 04:12:31

+0

哇。他们不介意在轮商人的包围之中,将平坦的圆形物体从基岩中凿出来?! – sasfrog 2011-03-27 04:33:16

回答

1

我写了一篇博客文章how MVCC works in PostgreSQL。基本上,PostgreSQL中的表可能会伤害同一行的多个版本。

更多,有两个附加列:

  • TMIN - 标志着插入该行的事务ID
  • 最高温度 - 标志着事务的ID删除的行

的更新通过删除并插入新记录完成,VACUUM过程收集不再使用的旧版本。