Betrachte den folgenden Schedule:
´r_1(A), r_2(B), r_3(C), r_1(B), r_2(C), ´´r_3(D), w_1(C), w_2(D), w_3(E)´
Überlege zunächst, wo in diesem Schedule ∗lock-Operationen eingefügt werden müssen, damit die drei beteiligten Transaktionen konsistent und 2PL-konform sperren. Gib anschließend den tabellarischen Ablaufplan der Transaktionsausführung eines DBMS-Schedulers an. Kennzeichne darin, welche Sperranforderungen akzeptiert bzw. zunächst abgelehnt werden. Hinweise zum Einfügen der ∗lock-Operationen:
- Füge Lock-, Shared-Lock- und Exclusive-Lock Operationen jeweils so nah wie möglich an der Aktion ein, die als zuerst den Lock benötigt.
- Füge die Unlocks einer Transaktion immer am Ende der jeweiligen Transaktion ein.
Nutze zur Erstellung der Ablaufpläne einfache Lock- und Unlock-Operationen.
Solution
´T_1´ ´T_2´ ´T_3´ ´l(A)´ ´r(A)´ ´l(B)´ ´r(B)´ ´l(C)´ ´r(C)´ ´l(B)´ ´r(B)´ ´l(C)´ ´r(C)´ ´l(D)´ ´r(D)´ ´l(C)´ ´w(C)´ ´u(C)´ ´u(B)´ ´u(A)´ ´l(D)´ ´w(D)´ ´u(D)´ ´u(C)´ ´u(B)´ ´l(E)´ ´w(E)´ ´u(E)´ ´u(D)´ ´u(C)´ Anmerkung: L1(B) (wird abgelehnt) -> warte auf T2 (hat b gelockt) wenn u(B), wird T1 mit R1(B) weitergeführt. Keine Ablehnung markiert.
HPI, 2015-07-13, Datenbanksysteme 1, Aufgabe 5.3a
2015-07-27 15:03:08 UTC
2015-07-27 15:03:08 UTC