9.2.4 Phantomproblem. Mächtigkeit von 2PL. Lösung des Phantomproblems. bisherige implizite Annahme

Ähnliche Dokumente
9. Transaktionsverwaltung 9.3. Fehlerbehandlung Seite 1

Mächtigkeit von 2PL. Geben Sie einen Schedule S an, der. konfliktserialisierbar, jedoch nicht bei Anwendung von 2PL entstehbar. ist.

Kapitel 10: Transaktionsverwaltung

Konfliktgraph. Satz und Definition

9.3 Fehlerbehandlung

Übungen zu Datenbanksysteme

Transaktionsverwaltung

Datenbank-Administration im WS 2012/13 - Einführung in Projekt 3 - Prof. Dr. Klaus Küspert Dipl.-Math. Katharina Büchse Dipl.-Inf.

Transaktionsverwaltung

Kapitel 2 Transaktionsverwaltung. Skript 2009 Matthias Schubert

Transaktionsmanagement - Einführung. Prof. Dr. T. Kudraß 1

Datenbanksysteme. Transaktionen. Burkhardt Renz. Sommersemester Fachbereich MNI Technische Hochschule Mittelhessen

Aufgabe 10.1: Lösung:

Eigenschaften von TAs: ACID-Prinzip

Übung 14. Tutorübung zu Grundlagen Datenbanken (Gruppen DO-T24 / DO-T31 WS 2016/2017)

Inhaltsverzeichnis. Inhaltsverzeichnis

Prioritäten/Zeitstempel-Verfahren

Prioritäten/Zeitstempel-Verfahren. WAIT-DIE und WOUND-WAIT-Strategien

Datenbank- Verwaltungssysteme

Verteiltes Sperren Verteilte Recovery

Speicherhierarchie. Für die Dauer eines Zugriffs wird die Seite im Puffer fixiert (pin) Werden Daten geändert, so wird die Seite als dirty markiert

Atomare Commit-Protokolle. Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Atomare Commit-Protokolle Folie 1

Vorlesung Datenbanksysteme 2. Übung Recovery Checkpointing

Aufgabe der Recovery-Komponente des Datenbanksystems ist es, nach einem Fehler den jüngsten konsistenten Datenbankzustand wiederherzustellen.

Kapitel 5 Mehrversionen-CC. MVCC: Annahmen & Eigenschaften

Fehlerbehandlung (Recovery)

Datenbanken: Backup und Recovery

13. Fehlerbehandlung/2. Architektur von Datenbanksystemen I

Fehlerbehandlung (Recov

Fehlerklassifikation 1. Lokaler Fehler in einer noch nicht festgeschriebenen. Wirkung muss zurückgesetzt werden R1-Recovery

Datenbanken 1. Sommersemester Übung 8

Datenbanksysteme 2009

Konflikte. Konflikt-Äquivalenz von Read/Write-Plänen, Konflikt-Serialisierbarkeit

Recovery- und Buffermanager

5. Transaktionsverarbeitung

Übungen zur Vorlesung. Datenbanken I

Wiederanlauf (Recovery)

Fehlerbehandlung und Recovery

3.5 Synchronisation ohne Sperren

Kapitel 12 Integrität der Datenbank

Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung

View. Arbeiten mit den Sichten:

8. Wiederherstellung und Datensicherheit

Datenbanken: Ablaufpläne und Serialisierbarkeit

3.6 Transaktionsverwaltung

Recovery. Prof. Dr. T. Kudraß 1

Kapitel 1: Einführung 1.1 Datenbanken?

Transaktionen. Concurrency Management in MS SQL Server

Wiederherstellung (Recovery)

Synchronisation in Datenbanksystemen in a nutshell

Vorlesung "Systemsoftware II" Wintersemester 2002/03

Kapitel 3 Synchronisation

Transaktionsverwaltung

Gruppe A Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis

Datenbanken 1. Sommersemester Übung 8

Datenbanken Konsistenz und Mehrnutzerbetrieb III

Datenbanksysteme II Recovery (Kapitel 17)

Mehrbenutzersynchronisation

Transaktionsverwaltung und Recovery

[W, T4, D, 15] [start_transaction, T3] [W, T3, C, 30] [W, T4, A, 20] [commit, T4] [W, T2, D, 25] System Crash

Synchronisierung von Transaktionen ohne Sperren. Annahme: Es gibt eine Methode, zu erkennen, wann eine Transaktion die serielle Ordnung verletzt.

1 Referentielle Aktionen

7. Transaktionsverwaltung

Transaktionen Recovery Isolationslevel. Datenbanksysteme. Transaktionen. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Software-Engineering und Datenbanken

11.3 Transaktionen und LUWs in SAP R/3

Fehlerbehandlung (Recovery)

w 1 (A) T 1 w 3 (B) w 1 (D) b 3 flush(p D ) flush(p B ) flush(p B )

Daten- und Transaktionskontrolle mit SQL DCL, TCL

11.3 Transaktionen und LUWs in SAP R/3

Vorlesung "Verteilte Systeme" Wintersemester 2000/2001. Verteilte Systeme. 14. Transaktionen

Datenbanken und Informationssysteme

AG Datenbanken und Informationssysteme Wintersemester 2006 / Übungsblatt. Aufgabe 2: Sperrprotokolle in Datenbankystemen

Aufgabe der Recovery-Komponente des Datenbanksystems ist es, nach einem Fehler den jüngsten konsistenten Datenbankzustand wiederherzustellen.

Grundlagen von Datenbanken. Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking

Datenintegrität und Transaktionskonzept

Koordination des Mehrbenutzerbetriebs 9. Koordination des Mehrbenutzerbetriebs

Mehrbenutzersynchronisation

6.3 Verteilte Transaktionen

Transaktionsstruktur. Kapitel 4 - Teil 1 Verteilte Transaktionsverwaltung. Verteilte. Transaktionsverwaltung

mathematik und informatik

DB I S. 1 Referentielle Aktionen [10 P.] Gegeben sei folgende Datendefinition:

RECOVERY. "Concurrency Control and Recovery in Database Systems" Bernstein, Hadzilacos, Goodman. Addison-Wesley. Kapitel 1, 6

Datenbanksysteme II SS Übungsblatt 9: Wiederholung

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Übungen zur Vorlesung. Mobile und Verteilte Datenbanken. WS 2008/2009 Blatt 4. Lösung

Oracle Datenbank - Recovery

In diesem Abschnitt stehen Transaktionen im Mittelpunkt. Hierbei geht es darum, wie bei Mehrbenutzerbetrieb die Integrität von Datenbanken

Kapitel 8: Transaktionen

Recovery. Vorlesung: Dr. Matthias Schubert

Transkript:

Rückblick Rückblick Geben Sie einen Schedule S an, der konfliktserialisierbar, jedoch nicht bei Anwendung von 2PL entstehbar ist. Schedule mit Phantom Sei eine Transaktion T 1 eine Ausführung eines Programmes P, das zunächst alle Objekte A liest, die eine gewisse Bedingung p erfüllen und anschließend ein weiteres Objekt B. T hat damit eine Historie der Form R 1 A 1... R 1 A k R 1 B. Laufe zeitlich überlappend zu T 1 eine Transaktion T 2 ab, die ein Objekt C liest, ein neues Objekte A k+1 in die Datenbank einfügt, das ebenfalls die Bedingung p erfüllt und anschließend B ändert. Unter diesen Annahmen ist der folgende Schedule möglich: Mächtigkeit von 2PL R 2 C R 1 A 1... R 1 A k W 2 A k+1 R 2 B W 2 B R 1 B S = R 1 A R 2 A W 2 A R 3 B W 3 B W 1 B ist konfliktserialisierbar, jedoch nicht bei Anwendung von 2PL entstehbar. Dieser Schedule ist formal äquivalent zu T 2 T 1 ; es wird hierbei jedoch ignoriert, dass A k+1 auch die Bedingung p erfüllt und somit T 1 eine Leseoperation R 1 A k+1 enthalten müsste. Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 24 Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 26 9.2.4 Phantomproblem Lösung des Phantomproblems bisherige implizite Annahme Die Menge der Objekte in der Datenbank ist konstant über der Zeit. Verletzung der Annahme kann zu Phantomen führen. Vergrößerung der Granularität der betrachteten Objekte. Anstatt einer Folge von Leseoperationen R 1 A 1... R 1 A k betrachten wir eine einzige Leseoperation, z.b. in der Form R 1 {A p(a)}. Da A k+1 die Eigenschaft p erfüllt, kann der Konflikt mit dem Phantom A k+1 erkannt werden. Sperrverfahren können den Test auf p implementieren, indem ganze Relationen, Schlüsselbereiche oder auch Indexbereiche gesperrt werden. Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 25 Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 27

9.3 Fehlerbehandlung Im realen Betrieb eines Datenbanksystems muss mit Fehlersituationen gerechnet werden. Transaktionsfehler: Hierunter verstehen wir einen zum Abbruch führenden Fehler im Anwendungsprogramm, bzw. den Abbruch der Transaktion durch den Benutzer oder durch das Datenbanksystem. Systemfehler: Dies sind Fehler, die nicht eine einzelne, sondern möglicherweise alle ablaufenden Transaktionen betreffen. Ursache können Hardwarefehler oder falsche Werte in Systemtabellen sein. Mediumfehler: Dies sind Fehler des externen Speichermediums, typischerweise Plattenfehler. undo- und redo-situation bei Vorliegen eines Fehlers Kritisch ist, ob die von einer Transaktion bewirkten Änderungen bereits in der Datenbank materialisiert wurden, oder ob sie erst im Datenbankpuffer wirksam wurden. Kann es erforderlich werden, eine geänderte Seite in der Datenbank zu materialisieren, bevor die Transaktion ihre Commit-Phase durchlaufen hat? Ja, wenn anders Seitenfehler nicht vermieden werden können. Kann es sinnvoll sein, geänderte Seiten auch nach Durchlaufen der Commit-Phase noch im Datenbankpuffer zu halten und nicht direkt in der Datenbank zu materialisieren? Ja, wenn diese Seite auch von anderen laufenden Transaktionen benötigt wird. Eine Transaktion schreibt vor Abschluss ihrer Commit-Phase in die Datenbank und bevor das Commit erfolgreich ausgeführt werden konnte, tritt ein Fehler auf. = Undo-Situation. Eine Transaktion hat ihr Commit erfolgreich ausgeführt und es tritt ein Fehler auf, bevor alle geänderten Seiten in der Datenbank materialisiert sind. = Redo-Situation. Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 28 Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 30 Recovery, Log und Commit Es ist die Aufgabe der für die Fehlerbehandlung zuständigen Komponente eines Datenbanksystems, bei Eintreten einer Fehlersituation den abgelaufenen Schedule möglichst umfassend zu rekonstruieren (engl. Recovery), um eine weitere Ausführung zu ermöglichen. Ein Datenbanksystem führt eine sogenannte Log-Datei, in der die Veränderungen der Objekte der Datenbank und der Beginn und das Ende der Transaktionen protokolliert werden. Beim Ende einer Transaktion durchläuft sie ihre Commit-Phase. Hat sie erfolgreich ihre Commit-Phase durchlaufen, dann muss von diesem Zeitpunkt an die Atomizität und Dauerhaftigkeit gewährleistet sein. Alle Transaktionen, von denen die betrachtete direkt oder indirekt über gelesene Werte abhängt, müssen ihre Commit-Phase erfolgreich durchlaufen haben. Log-File Bei Beginn einer Transaktion T wird (T, Begin) in das Log geschrieben. Für jede Operation WA von T wird (T, A, A old, A new ) in das Log geschrieben. A new ist der von T erzeugte Wert von A, das After-Image von A und A old ist der Wert von A vor Ausführung von WA in der Datenbank, das Before-Image von A. Dieser Eintrag im Log muss zwingend erfolgt sein, bevor die entsprechende Änderung in der Datenbank materialisiert wird und bevor die Commit-Phase der Transaktion abgeschlossen wird. Nach Abschluss der Commit-Phase von T wird (T, Commit) in das Log geschrieben. Bei Abbruch von T wird (T, Abort) in das Log geschrieben. Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 29 Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 31

Objekte: Seiten oder Tupel? Beheben eines Transaktionsfehlers Sei T die zu behandelnde Transaktion. Das Log wird rückwärts bis zum Finden des Eintrags (T, Begin) gelesen und für jeden davor gefundenen Eintrag der Form (T, A, A old, A new ) wird der Wert A old für A wieder in der Datenbank materialisiert. Seiten der physikalischen Datenbank. Materialisieren von A old, bzw. A new in der Datenbank ist das (blinde) Überschreiben einer kompletten Seite. Tupel von Relationen. Materialisieren heißt Lesen der aktuellen Seite, Ersetzen des Tupels in der Seite durch A old, bzw. A new und Zurückschreiben der Seite. Bezug zur Mehrbenutzerkontrolle Die für die Mehrbenutzerkontrolle gewählte Granularität der Objekte muss größer sein, als die für die Fehlerbehandlung gewählte. Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 32 Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 34 Restart-Algorithmus zum Beheben eines Systemfehlers Redone := ; Undone :=. Verarbeite das Log rückwärts. Sei (T, A, A old, A new ) der betrachtete Log-Eintrag. Falls A Redone Undone: Redo: Falls (T, Commit) bereits im Log gefunden, dann materialisiere A new in der Datenbank und setze Redone := Redone {A}. Undo: Anderenfalls materialisiere A old in der Datenbank und setze Undone := Undone {A}. Sicherungspunkte begrenzen das Log-File Verbiete den Start neuer Transaktionen und warte bis alle Transaktionen abgeschlossen sind. Erzwinge dann das Materialisieren aller sich noch im Datenbankpuffer befindenen Änderungen in der Datenbank. Schreibe den Eintrag (Checkpoint) in das Log. Der Restart-Algorithmus muss das Log lediglich bis zum nächsten Sicherungspunkt verarbeiten. Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 33 Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 35

Mediumfehler 9.4 Transaktionsmodelle (a) Strategie Halten aktueller Kopien: Einen weitgehenden Schutz vor Datenverlust können wir durch Schaffung von Redundanz in Form von Kopien der Datenbank, einschließlich des Logs, erreichen. Zu jedem Zeitpunkt müssen die Datenbank und alle Kopien denselben Zustand repräsentieren. Es müssen so viele Kopien gehalten werden, dass die Wahrscheinlichkeit, dass ein Fehler alle Kopien gleichzeitig zerstört, praktisch gleich 0 ist. (b) Strategie periodische Archivierung. Archiviere eine Kopie der Datenbank (Dump). Nach dem Erstellen eines Dumps wird an das Ende des Logs der Eintrag (archive) geschrieben. Bisher kurz laufende Transaktionen. Findet während des Ablaufs einer Transaktion eine Interaktion mit dem Benutzer statt, dann haben Transaktionen eine nennenswerte Dauer, deren Länge im Allgemeinen nicht beschränkt werden kann. Für solche Transaktionen sind unsere bisherigen Mechanismen nur bedingt geeignet. Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 36 Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 38 strukturierte Transaktionen Dump-basierter Restart zur Behebung eines Medium-Fehlers. Lade den aktuellen Dump in die Datenbank. Wende dann den Restart-Algorithmus zur Behebung eines Systemfehlers bis zum Lesen des (Archive) Eintrags an. Führe dabei ausschließlich Redo von Transaktionen durch. Die Funktionalität einer Fehlerbehandlung wird ausgenutzt. SAVE erzeugt von Seiten der Transaktion einen Zwischenzustand der Transaktion (Sicherungspunkt). Ein gezieltes Undo als Teil der Transaktion ROLLBACK ist möglich. COMMIT signalisiert der Transaktionsverwaltung das Ende der Transaktion. Skizze einer Transaktion zur Buchung der benötigten Teilstücke einer Reise. BEGIN. Solange Reiseziel B noch nicht erreicht und Reservierung eines weiteren Teilstücks zur Erreichung von B möglich führe Reservierung des Teilstücks durch. Wenn Reiseziel B erreicht, dann COMMIT, sonst ROLLBACK und Auswahl eines neuen Reiseziels. END Mittels SAVE können Zwischenzustände gerettet werden. Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 37 Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 39

9. Transaktionsverwaltung 9.6. Ausblick Saga Eine Transaktion T sei durch eine Folge von Subtransaktionen T 1,..., T n gegeben. Jede Subtransaktion T i wird wie eine konventionelle Transaktion behandelt; Annahme: 2PL. Am Ende einer Subtransaktion werden alle Sperren freigegeben, um ein Minimum an Sperrkonflikten zu erreichen. Auf eine weitergehende Synchronisation wird verzichtet, so dass die Gesamttransaktion im Allgemeinen nicht serialisierbar abläuft. Es besteht die implizite Annahme, dass nur solche Subtransaktionen im Rahmen von Sagas verwendet werden, bei denen das Sichtbarwerden der Änderungen vor Ende der Gesamttransaktion tolerierbar ist. Wenn eine laufende Saga abgebrochen werden muss, ist das Zurücksetzen bereits beendeter Subtransaktionen nur durch eine anwendungsabhängige Kompensation möglich. Aus diesem Grund muss von Seiten der Anwendung für jede Subtransaktion T i eine Kompensationstransaktion Ti C bereitgestellt werden. Ausblick 3 3 Quelle: Scott Adams: Dilbert, http://www.dilbert.com Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 40 Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 42 9.5 empfohlene Lektüre 9. Transaktionsverwaltung 9.5. empfohlene Lektüre 1 2 1 In: Communication of the ACM, Vol. 19, No. 11, 1976. Kann gegoogelt werden. 2 In: Journal of the ACM, Vol. 26, No. 4, 1979. Kann gegoogelt werden. Datenbanken und Informationssysteme, WS 2012/13 7. Februar 2013 Seite 41