Synchronisation paralleler Transaktionen AIFB SS Synchronisationsverfahren 4.4 Synchronisationsverfahren (1/18) Sperrmodi und Sperrobjekte Sperrprotokoll Kollisionsstrategie Sperrverfahren Kriterien zur Klassifikation:
Synchronisation paralleler Transaktionen AIFB SS Sperrverfahren Sperrverfahren (2/18) Sperrmodi und Sperrobjekte Lesesperre (Shared Lock) erlaubt dem Sperrenbesitzer das Lesen des Objektes. Andere Transaktionen dürfen ebenfalls Lesesperren setzen. Das Setzen von Schreibsperren ist ihnen verboten. Schreibsperre (Exclusive Lock) erlaubt dem Sperrenbesitzer sowohl lesenden als auch schreibenden Zugriff auf das Objekt. Anderen Transaktionen ist jeglicher Zugriff auf das Objekt verwehrt. (Die Aufteilung in Lese- und Schreibsperren erhöht die Parallelität, wenn nur Lesesperren eingesetzt werden.)
Synchronisation paralleler Transaktionen AIFB SS Sperrverfahren Sperrverfahren (3/18) Verträglichkeitsmatrix für Sperren: Ein Eintrag in der Matrix gibt an, ob die beantragte Sperre x - exclusive lock (Schreibsperre) s - shared lock (Lesesperre) mit den vorhandenen Sperren verträglich ( ) oder unverträglich (-) ist. Verträglichkeitsmatrix (je Objekt) vorhandene beantragte Sperre Sperren s x keine s - x - -
Synchronisation paralleler Transaktionen AIFB SS Sperrverfahren Sperrverfahren (4/18) Datenbank Area Relation Satz Datenelement Abwägung: Je feiner die Sperreinheiten gewählt werden, desto mehr Parallelität zwischen den Transaktionen, aber auch desto größer wird auch der Verwaltungsaufwand für die Sperren. Granularität: Welche Objekte werden gesperrt? Mögliche Objekte:
Synchronisation paralleler Transaktionen AIFB SS Sperrverfahren Sperrverfahren (5/18) Beispiel 4-3: Reisebüro Schalter 1:Erhöhe Zimmerpreise aller Hotels. Zugriff auf jeden Satz der Relation Hotel (Sperrobjekt: Relation Hotel) Schalter 4: Buche für Müller einen Flug, ein Hotelzimmer und einen Mietwagen. Zugriff auf jeweils genau einen Satz der Relationen Hotel, Flug und Auto (Sperrobjekte: je ein Tupel in Relation Hotel, Flug, Auto)
Synchronisation paralleler Transaktionen AIFB SS Sperrverfahren Sperrverfahren (6/18) Sperrhierrachie: Falls Sperren auf unterschiedlichen Ebenen setzbar sind (z.B. Datenbank, Area, Relation, Satz, Datenelement), dann wird von einer Sperrhierarchie gesprochen. Problem: Sperren können überlappen! (Vor dem Sperren eines Objektes x muss überprüft werden, ob x in einem Objekt enthalten ist, das bereits gesperrt ist) Sperrprotokolle Zunächst: zwei Befehle stehen zur Verfügung lock(x) - setze Sperre auf Objekt x. unlock(x) - mache Sperre auf Objekt x rückgängig. Dann: Regeln für das Setzen von Sperren
Synchronisation paralleler Transaktionen AIFB SS Sperrverfahren Sperrverfahren (7/18) Beispiel 4-4: Reisebüro (Fortsetzung) Folgend Variante für Situation 4 (s.o) mit Sperren gegeben: Zu der Tabelle: - Mietpreis ist für beide Städte wieder unterschiedlich. - Datenbank also trotz Sperren inkonsistent. Seite 10 s.44
Synchronisation paralleler Transaktionen AIFB SS Sperrverfahren Sperrverfahren (8/18) Schalter 2 Schalter 5 lock(Auto-Tupel LA) readAuto.Preis(LA) [=100] Preis:= Preis * 1,1 writeAuto.Preis(LA) [=110] unlock(Auto-Tupel LA) lock(Auto-Tupel LA) readAuto.Preis(LA) [=110] Preis:= Preis + 20 writeAuto.Preis(LA) [=130] unlock(Auto-Tupel LA) lock(Auto-Tupel SF) readAuto.Preis(SF) [=100] Preis:= Preis + 20 writeAuto.Preis(SF) [=120] unlock(Auto-Tupel SF) lock(Auto-Tupel SF) readAuto.Preis(SF) [=120] Preis:= Preis * 1,1 writeAuto.Preis(SF) [=132] unlock(Auto-Tupel SF) Zurück zur Situation 4 s.42