Folie 115 (Zeitstempel statt Sperren(cont.) --- -Beispiel): Frage:Hier liegt doch gar kein Dirty-Read vor! Wir haben "w1(x),r2(x)" aber für einen Dirty-Read(siehe Folie 18) brauchen wir "w1(x),r2(x),w1(x)" Antwort: Bei dem Rollback von T_1 macht T_1 ihre Änderungen rückgängig. Dabei wird auch w(x) wieder in den ursprünglichen Zustand geschrieben. Diese implizite Schreibaktion während des Rollbacks macht den Dirty-Read komplett. -------------------------------- Folie 119 (Optimistischee Synchronisation(cont.): Frage: Müssen Validierungs- und Schreibphase nicht atomar ablaufen? Antwort:Ja! Zitat aus dem Kemper/Eickler Buch:"Für die Korrektheit dieser Synchronisationsmethode (es geht um die optimistischen) ist zudem erforderlich, dass die Validierungs- und Schreibphase ununterbrechbar durchgeführt werden, damit sich nicht zwei Schreibvorgänge in "Gehege kommen". Mit anderen Worten, das System sollte immer nur eine Transaktion gleichzeitig in die Validierungs- und Schreibphase lassen." ---------------------------------------- Übungsaufgabe 5-1: Muss bei einem Commit der ganze Log-Puffer ausgeschrieben werden? Ja, die Commit Regel schreibt vor das alle Log-Einträge der Commitenden Transaktion T vor dem Commit auf Platte ausgeschrieben werden. Damit muss auch der Commit-Satz von T ausgeschrieben werden, damit T bei der Recovery als Gewinner erkannt wird. Es reicht also nicht, den Puffer nur bis zur letzten Aktion (vor dem Commit) von T auszuschreiben. ----------------------------------------------------- Frage: Recovery (Folie 185). Dort steht dass bei vollständigem REDO nur die zum Fehlerzeitpunkt noch laufenden TAs zurückgesetzt werden und beim selektiven alle Verlierer. Wir haben ewig rumüberlegt aber verstehen den Sinn dahinter nicht? Kannst du das kurz erklären? Wir haben eigentlich drei, nicht zwei, verschiedene Klassen von TAs die wir betrachten müssen: 1. Gewinner 2. Unbeendete Verlierer (also solche die beim Crash noch aktiv waren) und 3. Beendete Verlierer (also solche, die beim Crash nichtmehr aktiv waren, also schon vorher durch eine Transaktionsfehler zurückgesetzt wurden). Die dritte Klasse (an die man zuerst gar nicht denkt) macht hier den Unterschied. Dazu vielleicht noch ein TIPP: Die beendeten Verlieren haben ihr Undo schon bei ihrem lokalen Rollback durchgeführt. Mehr will ich gar nicht sagen, überlegt es jetzt mal durch obs nun Sinn macht :)