\documentclass{bschlangaul-aufgabe} \bLadePakete{mathe} \begin{document} \bAufgabenMetadaten{ Titel = {Aufgabe 4}, Thematik = {Schedule S}, Referenz = 66116-2020-F.T2-TA2-A4, RelativerPfad = Examen/66116/2020/03/Thema-2/Teilaufgabe-2/Aufgabe-4.tex, ZitatSchluessel = examen:66116:2020:03, BearbeitungsStand = mit Lösung, Korrektheit = unbekannt, Ueberprueft = {unbekannt}, Stichwoerter = {Transaktionen}, EinzelpruefungsNr = 66116, Jahr = 2020, Monat = 03, ThemaNr = 2, TeilaufgabeNr = 2, AufgabeNr = 4, } \def\l#1#2#3{$\text{#1lock}_#2(#3)$} \begin{enumerate} \item Betrachten Sie den folgenden Schedule S: \index{Transaktionen} \footcite{examen:66116:2020:03} \begin{center} \begin{tabular}{l|l|l} $T_1$ & $T_2$ & $T_3$ \\\hline & $r_2(z)$ & \\ & & $w_3(y)$ \\ & $r_2(x)$ & \\ $w_1(x)$ & & \\ & $w_2(x)$ & \\ & & $r_3(z)$ \\ & & $c_3$ \\ & $w_2(z)$ & \\ $w_1(y)$ & & \\ $c_1$ & & \\ & $c_2$ & \\ \end{tabular} \end{center} Geben Sie den Ausgabeschedule (einschließlich der Operationen zur Sperranforderung und -freigabe) im rigorosen Zweiphasen-Sperrprotokoll für den obigen Eingabeschedule S an. \begin{bAntwort} \begin{center} \begin{tabular}{l|l|l} $T_1$ & $T_2$ & $T_3$ \\\hline & \l r2z & \\ & $r_2(z)$ & \\ & & \l x3y \\ & & $w_3(y)$ \\ & \l r2x & \\ & $r_2(x)$ & \\ & \l x2x & \\ & $w_2(x)$ & \\ & & \l r3z \\ & & $r_3(z)$ \\ & & $c_3$ \\ & & \l {un}2{y,z}\\ & \l x2z & \\ & $w_2(z)$ & \\ & $c_2$ & \\ & \l {un}2{x,z} & \\ \l x1x & & \\ $w_1(x)$ & & \\ \l x1y & & \\ $w_1(y)$ & & \\ $c_1$ & & \\ \l {un}2{x,z} & & \\ \end{tabular} \end{center} \end{bAntwort} \item Beschreiben Sie den Unterschied zwischen dem herkömmlichen Zweiphasen-Sperrprotokoll (2PL) und dem rigorosen Zweiphasen-Sperrprotokoll. Warum wird in der Praxis häufiger das rigorose Zweiphasen-Sperrprotokoll verwendet? \begin{bAntwort} Bei beiden Protokollen fordert die Transaktion erst alle Sperren an (Anforderungsphase) und gibt sie später frei (Freigabephase). \begin{itemize} \item Beim strengen oder rigorosen 2PL werden die Sperren dann angefordert, wenn sie benötigt werden, beim konservativen 2PL werden alle Sperren zu Beginn gemeinsam angefordert. \item Beim strengen oder rigorosen 2PL werden die Lesesperren bis zum Commit, die Schreibsperren sogar bis nach dem Commit gehalten. Beim konservativen 2PL werden dagegen die Sperren freigegeben, wenn sie nicht mehr benötigt werden. \end{itemize} Das rigorose 2PL wird der Praxis häufiger verwendet, weil dabei nicht zu Beginn der Transaktion bekannt sein muss, welche Sperren benötigt werden, und durch die schrittweise Anforderung der Sperren unter Umständen ein höheres Maß an Parallelität erreicht werden kann. \end{bAntwort} \end{enumerate} \end{document}