Transaktionsmanagement und Parallelität
Transaktionsmanagement und Parallelitätskontrolle ermöglichen es einer Datenbank, viele gleichzeitige Transaktionen korrekt auszuführen und Ausfälle zu überstehen, wodurch die Eigenschaften Atomarität, Konsistenz, Isolation und Dauerhaftigkeit (ACID) gewährleistet werden.
Definition
Eine Transaktion ist eine Abfolge von Datenbankoperationen, die als eine einzige logische Einheit ausgeführt wird, die atomar, konsistenzerhaltend, von gleichzeitigen Transaktionen isoliert und nach dem Commit dauerhaft ist; Transaktionsmanagement ist die Menge von Mechanismen, die diese Eigenschaften unter Parallelität und Ausfall durchsetzen.
Scope
Dieser Bereich umfasst die Transaktion als Arbeitseinheit und die Mechanismen, die eine gleichzeitige, fehleranfällige Ausführung korrekt machen: die ACID-Eigenschaften; Serialisierbarkeit als Korrektheitskriterium für Parallelität; Sperr-, Zeitstempel- und Multiversionsprotokolle, die diese durchsetzen; die schwächeren Isolationsstufen, die Konsistenz gegen Leistung eintauschen; und die Protokollierungs- und Wiederherstellungstechniken, die Atomarität und Dauerhaftigkeit bei Abstürzen gewährleisten. Ausgenommen ist das verteilte Commit über mehrere Standorte hinweg, das im Bereich der verteilten und parallelen Datenbanken behandelt wird.
Sub-topics
Core questions
- Was garantieren die ACID-Eigenschaften und warum werden sie benötigt?
- Was macht einen gleichzeitigen Zeitplan korrekt, d.h. serialisierbar?
- Wie setzen Sperr-, Zeitstempel- und Multiversionsprotokolle die Serialisierbarkeit durch?
- Wie stellen Protokollierung und Wiederherstellung nach einem Absturz einen konsistenten Zustand wieder her?
- Wie tauschen schwächere Isolationsstufen Konsistenz gegen Parallelität ein?
Key concepts
- Transaktion und Commit/Abort
- ACID-Eigenschaften
- Serialisierbarkeit und der Präzedenzgraph
- Zweiphasen-Sperren
- Zeitstempel-Ordnung
- Multiversions-Parallelitätskontrolle
- Deadlock-Erkennung und -Vermeidung
- Write-Ahead-Logging
- Isolationsstufen
Key theories
- ACID-Eigenschaften
- Atomarität (Alles-oder-Nichts-Ausführung), Konsistenz (Erhaltung der Integritätsbedingungen), Isolation (gleichzeitige Transaktionen scheinen isoliert zu laufen) und Dauerhaftigkeit (festgeschriebene Effekte überleben Ausfälle) definieren zusammen das korrekte Transaktionsverhalten.
- Serialisierbarkeit
- Ein gleichzeitiger Zeitplan ist korrekt, wenn er einer seriellen Ausführung äquivalent ist; Konfliktserialisierbarkeit, getestet über den Präzedenz- (Serialisierungs-) Graphen, ist das praktische Kriterium, das Parallelitätskontrollprotokolle durchsetzen.
- Parallelitätskontrolle und Wiederherstellung
- Sperren, Zeitstempel-Ordnung und Multiversionsmethoden verhindern nicht-serialisierbare Verschachtelungen, während Write-Ahead-Logging und Wiederherstellungsalgorithmen Atomarität und Dauerhaftigkeit garantieren, die beiden Hälften der korrekten Transaktionsverarbeitung.
Clinical relevance
Transaktionsmanagement macht Datenbanken für Geld und Aufzeichnungen vertrauenswürdig: Es stellt sicher, dass eine Banküberweisung niemals ein Konto belastet, ohne ein anderes gutzuschreiben, dass eine Fluggesellschaft niemals einen Sitzplatz bei gleichzeitigen Anfragen doppelt bucht und dass festgeschriebene Daten Abstürze überstehen, was alle zuverlässigen Transaktionssysteme untermauert.
History
Das Transaktionskonzept und die ACID-Eigenschaften wurden in den 1970er Jahren bei IBMs System R formalisiert; Eswaran und Kollegen (1976) etablierten Konsistenz- und Sperrkonzepte, Jim Gray definierte Transaktionen und Wiederherstellung, und Bernstein, Hadzilacos und Goodman (1987) systematisierten die Serialisierbarkeitstheorie. Grays Beiträge zur Transaktionsverarbeitung brachten ihm den Turing Award ein.
Key figures
- Jim Gray
- Philip Bernstein
- Andreas Reuter
Related topics
Seminal works
- gray1992
- bernstein1987
- eswaran1976
Frequently asked questions
- Was bedeutet es, dass ein Zeitplan von Transaktionen serialisierbar ist?
- Ein gleichzeitiger Zeitplan ist serialisierbar, wenn sein Gesamteffekt identisch ist mit der Ausführung derselben Transaktionen nacheinander in einer bestimmten Reihenfolge. Serialisierbarkeit ist das Goldstandard-Korrektheitskriterium: Obwohl Transaktionen zur Leistungssteigerung verschachtelt werden, ist das Ergebnis so, als wären sie seriell ausgeführt worden, sodass keine Transaktion einen inkonsistenten Zwischenzustand sieht.
- Warum sind schwächere Isolationsstufen erlaubt, wenn sie Anomalien erzeugen können?
- Die Durchsetzung vollständiger Serialisierbarkeit hat Leistungskosten in Bezug auf Sperrkonflikte und Abbrüche. Viele Anwendungen können bestimmte Anomalien im Austausch für eine höhere Parallelität tolerieren, daher definiert der SQL-Standard schwächere Isolationsstufen (Read Committed, Repeatable Read usw.), die es Entwicklern ermöglichen, bewusst etwas Isolation gegen Durchsatz einzutauschen.