Was ist das Two-Phase Locking (2PL)-Protokoll?
A transaction is two-phase locked if:
before reading x, it sets a read lock on x
before writing x, it sets a write lock on x
it holds each lock until after it executes the corresponding operation
after its first unlock operation, it requests no new locks
Nun, was ist Strict Phase Locking?
Hier muss eine Transaktion alle ihre exklusiven Sperren halten, bis sie festgeschrieben/abgebrochen wird.
Aber was ist strenges 2PL?
Das rigorose zweiphasige Sperren ist sogar noch strenger:Hier werden alle Sperren bis zum Festschreiben/Abbrechen gehalten. In diesem Protokoll können Transaktionen in der Reihenfolge ihrer Übergabe serialisiert werden.
Viel tiefer :
Strikt 2PL :
Dasselbe wie 2PL, aber alle exklusiven Sperren halten, bis die Transaktion bereits erfolgreich festgeschrieben oder abgebrochen wurde. –Es garantiert eine kaskadenlose Wiederherstellbarkeit
Strenge 2PL:
Dasselbe wie Strict 2PL, aber alle Sperren halten, bis die Transaktion bereits erfolgreich festgeschrieben oder abgebrochen wurde. –Es wird in dynamischen Umgebungen verwendet, in denen Datenzugriffsmuster im Voraus nicht bekannt sind.
Es gibt keinen Stillstand. Außerdem wird eine jüngere Transaktion, die ein Element anfordert, das von einer älteren Transaktion gehalten wird, abgebrochen und mit demselben Zeitstempel neu gestartet, Hunger wird vermieden.
Ich hoffe, dass Ihnen die obigen klaren Erklärungen mit Diagramm das Konzept und die Vorteile von Rigoros gegenüber anderen klar gemacht haben.
Danke