Next: Granularität
Up: Klassische Systeme und
Previous: 3.1.2 Isolationsgrade
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: Granularität
Up: Klassische Systeme und
Previous: 3.1.2 Isolationsgrade
Markus Baumeister
Fri Jun 9 15:38:00 MET DST 1995