2011-03-03 29 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過程收集不再使用的舊版本。