Wartestempel-Schema: Es ist eine nicht präventive Technik zur Deadlock-Prävention. Wenn die Transaktion Ti ein Datenelement anfordert, das momentan von Tj gehalten wird, darf Ti nur warten, wenn es einen Zeitstempel kleiner als der von Tj hat (dh Ti ist älter als Tj), andernfalls wird Ti zurückgerollt (Dies).
In diesem Schema, wenn eine Transaktion fordert eine Ressource (Datenelement) zu sperren, die bereits mit einer kollidiere Sperre durch eine andere Transaktion gehalten wird, dann eine der beiden Möglichkeiten auftreten kann -
(1) Wenn TS (Ti) < TS (Tj) - das ist Ti, das eine in Konflikt stehende Sperre anfordert - älter als Tj ist - dann darf Ti warten, bis das Datenelement verfügbar ist.
(2) Wenn TS (Ti)> TS (tj) - das ist Ti ist jünger als Tj - dann stirbt Ti. Ti wird später mit einer zufälligen Verzögerung aber mit demselben Zeitstempel neu gestartet.
Dieses Schema ermöglicht es der älteren Transaktion zu warten, aber tötet die jüngere.
Zum Beispiel:
Angenommen, daß die Transaktion T22, T23, T24 haben Zeitstempel 5, 10 bzw. 15. Wenn T22 ein von T23 gehaltenes Datenelement anfordert, wartet T22. Wenn T24 ein Datenelement anfordert, das von T23 gehalten wird, wird T24 zurückgesetzt.
Wundwarte Schema: Es ist eine präventive Technik zur Deadlock-Prävention. Es ist ein Gegenstück zum Wartestempel-Schema. Wenn die Transaktion Ti ein Datenelement anfordert, das momentan von Tj gehalten wird, darf Ti nur warten, wenn es einen Zeitstempel größer als der von Tj hat, andernfalls wird Tj zurückgerollt (Tj wird durch Ti verwundet).
In diesem Schema, wenn eine Transaktion fordert eine Ressource (Datenelement) zu sperren, die bereits mit widersprüchlicher Sperre durch einige andere Transaktion gehalten wird, eine der beiden Möglichkeiten auftreten kann -
(1) Wenn TS (Ti) < TS (Tj) ist, dann drückt Ti Tj, um zurückgerollt zu werden - das ist Ti Wunden Tj. Tj wird später mit einer zufälligen Verzögerung aber mit demselben Zeitstempel neu gestartet.
(2) Wenn TS (Ti)> TS (Tj), dann muss Ti warten, bis die Ressource verfügbar ist.
Dieses Schema ermöglicht es der jüngeren Transaktion zu warten; Wenn jedoch eine ältere Transaktion einen Gegenstand anfordert, der von einem jüngeren gehalten wird, zwingt die ältere Transaktion den jüngeren, den Gegenstand abzubrechen und freizugeben.
Zum Beispiel:
Angenommen, dass Transaktionen T22, T23, T24 hat Zeitstempel 5, 10 bzw. 15.Wenn T22 ein von T23 gehaltenes Datenelement anfordert, wird das Datenelement von T23 ausgeschlossen, und T23 wird zurückgesetzt. Wenn T24 ein von T23 gehaltenes Datenelement anfordert, wartet T24.
In beiden Fällen wird die Transaktion, die zu einem späteren Zeitpunkt in das System eintritt, abgebrochen.
Wait-Düse und wundWarte werden zuerst in http://dl.acm.org/citation.cfm?id=320260 vorgeschlagen. –