跳到內容

快照隔離(MVCC)

您是否處於需要多個讀取請求而又需要繼續更新的情況下?您是否希望能夠不間斷地繼續寫入? RDM通過使用以下方式為上述問題提供了解決方案: MVCC (多版本並發控制)通過使用快照隔離。

快照隔離多版本並發控制

什麼是快照隔離,它在RDM中如何工作? 

快照隔離允許在發生更新事務時從數據庫中並發讀取。通常,RDM會通過“寫時復制”,因此可以通過授予對舊的未修改數據的訪問權限來處理數據快照。然後可以讀取未修改的數據而無需停止寫入。在任何時候,用戶都可以通過調用我們的特定表來發布快照 rdm_dbStartSnapshot() API。完成後, RDM 系統將使用指定表的舊視圖,其中對這些表所做的更改將不會反映在快照中。然後,用戶可以自由地向快照外部的該表發出寫入操作,並且快照視圖內的讀取將不會等待這些寫入操作完成或阻止這些寫入操作完成。一旦不再需要快照, rdm_dbEnd()¹ 可以被調用以釋放對舊的未修改數據的訪問。此功能為最終用戶提供了可能同時進行的最大數量的寫入和讀取。

 

¹如果從rdm_dbStartSnapshoot()檢索到句柄,也可以使用rdm_transEnd()

 

Sverre Hvammen Johansen和Daigoro Toyama