Time Stamping Method (時間標記法) 為每個Transaction做時間標記,每個時間標記都需要符合唯一性及遞增性。當兩個Transactions發生Lock衝突,會以時間標記順序為考量,將其中一個Rollback並重新加入排程。這樣的設計,雖然確保了Serializability,也因此花較多時間及資源在記錄時間 (last read time and last update time) 以及Transactions的暫停、重新安排等。
當使用時間標記法,發生Transactions的Lock衝突時,主要有兩種方案可以考量,分別是 Wait/Die 和 Wound/Wait ,規則如下:
| 發生Lock衝突的Transactions | 目前擁有Lock的Transaction | WAIT/DIE | WOUND/WAIT |
|---|---|---|---|
| T1(時間標記早) | T2 | T1等待T2完成且釋放鎖 | T2 rollback,T2維持原時間標記重新排程 |
| T2(時間標記晚) | T1 | T2 rollback,T2維持原時間標記重新排程 | T2等待T1完成且釋放鎖 |
時間標記法常發生Transactions間的等待,並產生Dead Lock。預防Dead Lock的方式之一是設定Time-out。