next up previous contents
Next: Granularität Up: Klassische Systeme und Previous: 3.1.2 Isolationsgrade

3.1.3 Optimistische und pessimistische Verfahren

 

Bisher ging es darum, wie verschiedene Transaktionseigenschaften durch Erhaltung der Serialisierbarkeit gesichert werden können. Wann Verletzungen der Serialisierbarkeit erkannt und wie sie verhindert werden sollen, wurde nicht erwähnt. Hierfür gibt es prinzipiell zwei Kategorien von Verfahren, pessimistische und optimistische:

pessimistisch
Mögliche Verstöße werden (kurz) bevor sie auftreten erkannt, und die auslösenden Datenzugriffe werden verzögert, bis sie ohne Verletzung der Serialisierbarkeit durchgeführt werden können. Dies ist heutzutage die Standardmethode.
Kurz: Erkennung sofort; Serialisierbarkeit meist durch Blockieren.
optimistisch
Erst beim Abschluß einer Transaktion wird geprüft, ob sie sich serialisieren läßt. Ist dies unmöglich, wird sie abgebrochen und muß von vorne beginnen (vgl. [BK91, S.277f,] und [Wei88, S.145ff,]). Deshalb durchlaufen optimistische Transaktionen normalerweise drei Phasen: Eine Lesephase, in der Daten gelesen und Berechnungen durchgeführt werden, eine Validierungsphase, in der die Einhaltung der Konsistenzkriterien geprüft wird, und eine Schreibphase, in der die in der Lesephase berechneten Änderungen in die Datenbasis eingetragen werden.
Kurz: Erkennung am Transaktionsende; Serialisierbarkeit durch Neustart.

Ihre Namen haben sie dadurch erhalten, daß pessimistische Verfahren davon ausgehen, daß Verstöße häufig auftreten werden und darum verhindert werden müssen, während optimistische Verfahren einen Konflikt für unwahrscheinlich halten und darum den Aufwand für die frühzeitige Erkennung scheuen. Beide Konzepte haben ihre spezifischen Vor- und Nachteile.

Pessimistische Verfahren:

+
frühzeitige Erkennung der Konflikte
+
mit Arbeitsverlust verbundene Abbrüche der Transaktionen nur bei Deadlock
--
Zur Vermeidung von Schneeball--Effekten notwendige Striktheit vermindert die mögliche Nebenläufigkeit

Optimistische Verfahren:
+
Nur--Lese--Transaktionen brauchen sich nicht um Synchronisation zu kümmern
+
Keine Deadlock--Gefahr
+
Beim Konflikttest können die tatsächlichen Ergebnisse der Operationen der Transaktionen berücksichtigt werden (vgl.\ [Her90])
--
Änderungen müssen bis zum Ende der Transaktion in einem lokalen Speicher gehalten werden
--
Ein großer Teil des Synchronisierungsaufwandes fällt gesammelt am Schluß an

[ACL85] untersuchen mittels einer Simulation die Performance zweier Sperrverfahren (pessimistisch) und eines optimistischen Verfahrens. Nach ihren Ergebnissen ist das Sperrverfahren dem optimistischen Verfahren immer dann überlegen, wenn die Auslastung des Prozessors oder der Zugriffskapazität auf den Sekundärspeichers hoch ist, da die Neustarts des optimistischen Verfahrens dann eine knappe Resource verbrauchen. Ist die Auslastung hingegen gering, so wird sie durch das Blockieren des Sperrverfahrens weiter verringert, während das optimistische Verfahren (allerdings auf Kosten konkurrierender Hintergrund--Jobs) einen höheren Durchsatz erreicht.
Letzterer Fall tritt -- abgesehen von Multiprozessorsystemen -- besonders bei interaktiven Anwendungen ein, bei denen zwischen den verschiedenen Datenzugriffen immer eine 'Denkzeit' des Benutzers liegt, so daß die Auslastung niedrig bleibt.
Obwohl [ACL85] also optimistische Verfahren für interaktive Transaktionsanwendungen für geeignet halten, gehen sie nicht auf die Probleme ein, die ein Rücksetzen bei interaktiven Anwendungen mit sich bringt: insbesondere den Verlust menschlicher Arbeitszeit (vgl. Kap.\ 3.2).



next up previous contents
Next: Granularität Up: Klassische Systeme und Previous: 3.1.2 Isolationsgrade



Markus Baumeister
Fri Jun 9 15:38:00 MET DST 1995