DBMS時間戳順序協定


DBMS時間戳順序協定-

  • 時間戳順序協定用於根據事務的時間戳對事務進行排序。 事務順序只不過是事務建立的升序。
  • 舊事務的優先順序高於它首先執行的原因。 要確定事務的時間戳,此協定使用系統時間或邏輯計數器。
  • 基於鎖的協定用於在執行時管理事務之間的衝突對之間的順序。 但是,基於時間戳的協定會在建立事務後立即開始工作。
  • 假設有兩個事務T1和T2。 假設事務T1已經以007次進入系統並且事務T2已經以009次進入系統。 T1具有更高的優先順序,因此它首先執行,因為它首先進入系統。
  • 時間戳順序協定還保持對資料的最後「讀取」和「寫入」操作的時間戳。

基本時間戳排序協定的工作原理如下:

  1. 每當事務Ti發出Read(X)操作時,請檢查以下條件:

    • 如果W_TS(X)> TS(Ti)則拒絕該操作。
    • 如果W_TS(X)<= TS(Ti)則執行操作。
    • 更新所有資料項的時間戳。
  2. 每當事務Ti發出Write(X)操作時,請檢查以下條件:

    • 如果TS(Ti)<R_TS(X)則操作被拒絕。
    • 如果TS(Ti)<W_TS(X)則拒絕操作並且回滾Ti,否則執行操作。
      其中,
    • TS(TI)表示事務Ti的時間戳。
    • R_TS(X)表示資料項X的讀時間戳。
    • W_TS(X)表示資料項X的寫時間戳。

TO協定的優點和缺點:

  • TO協定確保可序列化,因為優先順序圖如下:

  • TS協定確保免於死鎖,這意味著沒有事務等待。
  • 但是時間表可能無法恢復,甚至可能無法級聯。