Eigenschaften von TAs: ACID-Prinzip

Ähnliche Dokumente
7. Transaktionsverwaltung

Transaktionskonzept Eine Transaktion ist eine Folge von Operationen mit folgenden ACID Eigenschaften: Atomicity: Es werden alle Operationen oder gar k

Transaktionsverwaltung

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

Datenbanksysteme 2009

Kapitel 2 Transaktionsverwaltung. Skript 2009 Matthias Schubert

Beispielszenarien. 12. Transaktionen. ACID-Eigenschaften. Transaktion

Kapitel 3 Synchronisation

3.6 Transaktionsverwaltung

Mehrbenutzersynchronisation

Mehrbenutzersynchronisation

3.5 Synchronisation ohne Sperren

Mehrbenutzersynchronisation

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

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL

Kommunikation und Datenhaltung

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II SS Transaktionen & ACID. Dr. Christian Senger Transaktionen & ACID 1

Transaktionsverarbeitung und Nebenläufigkeitskontrolle. Jim Gray ( )

Transaktionen. Concurrency Management in MS SQL Server

Software-Engineering und Datenbanken

Transaktionsverwaltung

Inhaltsverzeichnis. Inhaltsverzeichnis

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

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Mehrbenutzer-Synchronisation

Transaktionsverarbeitung und Nebenläufigkeitskontrolle. Jim Gray ( )

Prioritäten/Zeitstempel-Verfahren

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

8. Transaktionsverarbeitung. Architektur von Datenbanksystemen I

Datenbank- Verwaltungssysteme

Datenbankadministration

Kapitel 9a Transaktionen - Synchronisation

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

Synchronisation in Datenbanksystemen in a nutshell

Datenbanken Konsistenz und Mehrnutzerbetrieb III

Mehrbenutzersynchronisation

6. Serialisierbarkeit

Tag 4 Inhaltsverzeichnis

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

Datenbanken: Transaktionskonzept und Concurrency Control

fbi h_da Datenbanken Kapitel 7: Transaktionsmanagement Schestag Datenbanken (Cnam) Kapitel 7-1

Mehrbenutzer-Synchronisation

6. Updates in SQL 6-1. Inhalt. 1. Update-Kommandos in SQL. 2. Transaktionen. 3. Gleichzeitige Zugriffe

6. Serialisierbarkeit 1

Mehrbenutzersynchronisation

1. Einführung Transaktionsverwaltung

Transaktionsverwaltung

... T n T 1 T 2 T 3. Transaktions-Manager. Daten-Manager. Recovery-Manager Puffer-Manager. Datenbank

Isolationsstufen für Transaktionen. Dr. Karsten Tolle

Literatur und Quellen. Datenbanken. Inhalt. Inhalt. Transaktionen. Nikolaus Augsten. Wintersemester 2013/14

Transaktionen in Praxis. Dr. Karsten Tolle Vorl

Grundlagen von Datenbanken SS Synchronisation paralleler Transaktionen

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

Tag 4 Inhaltsverzeichnis

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

2. Synchronisation in DBS: Grundlagen, Sperrverfahren

Die InnoDB Storage Engine. Handy aus?

Holger Schwarz Universität Stuttgart, IPVS

Konfliktgraph. Satz und Definition

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

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

Mehrbenutzersynchronisation

Kapitel 5 Mehrversionen-CC. MVCC: Annahmen & Eigenschaften

9 Transaktionskonzept

Mehrbenutzer-Synchronisation

Kapitel 2 Transaktionsverwaltung

6.3 Verteilte Transaktionen

7. Datenkontrolle. Klassifikation von Integritästbedingungen Integritätsbedingungen in SQL. Zugriffskontrolle/Autorisierung in SQL 7-1

Übungen zur Vorlesung. Datenbanken I. WS 2002/2003 Blatt 4 MUSTERLÖSUNG

Serialisierbarkeit von Historien: Minimalanforderung bzgl. "akzeptabler" Synchronisation

Undo Tablespace statt Blockaden Blick in die Vergangenheit. Thomas Klughardt Senior System Consultant

Transaktionsverwaltung read write read write

1 Referentielle Aktionen

Datenbanksysteme I Transaktionsmanagement Felix Naumann

Anforderungen an die Transaktionsverwaltung gleichzeitig (nebenläug) ablaufende Transaktionen Synchronisation Datenbanken gegen Soft- und Hardwarefehl

6. Serialisierbarkeit 1

6. Serialisierbarkeit 1

Concurrency und Recovery

6. Serialisierbarkeit 1

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

Vorlesung "Systemsoftware II" Wintersemester 2002/03

8. Datenkontrolle. Klassifikation von Integritätsbedingungen Integritätsbedingungen in SQL Integritätsregeln / Trigger

View. Arbeiten mit den Sichten:

KAPITEL 6 TRANSAKTIONSVERWALTUNG UND RECOVERY

Datenintegrität und Transaktionskonzept

9. Übungsblatt (Testatwoche: Juni 2010) Lösung Einführung in Datenbanksysteme Heinz Schweppe, Katharina Hahn

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

Transkript:

Transaktionsparadigma Definition: Transaktion ununterbrechbare Folge von DML-/DDL-Befehlen begin transaction --- end transaction begin: meist implizit mit ersten Datenbankzugriff end: commit (work) oder abort (rollback) Überführung der Datenbank von einem logisch konsistenten Zustand in einen neuen logisch konsistenten Zustand Eigenschaften von TAs: ACID-Prinzip

ACID-Prinzip ip Atomicity: "Alles-oder-Nichts"-Eigenschaft (Fehlerisolierung) Consistency: Erhalt der DB-Konsistenz (definierte Integritätsbedingungen) Isolation: Logischer Einbenutzerbetrieb (alle Aktionen innerhalb einer TA müssen vor parallel ablaufenden TAs verborgen werden) Durability: Überleben aller Änderungen trotz beliebiger (erwarteter) Fehler garantiert (Persistenz)

Transaktionsverwaltung Anforderungen: Synchronisation (concurrency control): mehrere TAs sollen gleichzeitig g (nebenläufig) ablaufen Logging Recovery Commit-Behandlung Integritätssicherung

Anomalien (1) Im Mehrbenutzerbetrieb kann es zu folgenden Anomalien kommen: Lost Update Dirty Read Non-Repeatable Read Phantom Reads

Anomalien (2) Lost Update: Schritt T1 T2 1 read(a, a1) 2 a1 = a1 300 3 read(a, a2) 4 a2 = a2 *1,03 5 write(a, a2) 6 write(a, a1) 7 read(b, b1) 8 b1 = b1 + 300 9 write(b, b1) T1 transferiert 300 von Konto A nach B. T2 schreibt Konto A 3% Zinsen gut. Interessante Schritte: 5 und 6. Änderung von TA 2 unkontrolliert überschrieben und somit verloren.

Anomalien (3) Dirty Read Schritt T1 T2 1 read(a, a1) 2 a1 = a1 300 3 write(a, a1) 4 read(a, a2) 5 a2 = a2 * 103 1,03 6 write(a, a2) 7 read(b, b1) 8... 9 abort T1 transferiert 300 von Konto A nach B. T2 schreibt Konto A 3% Zinsen gut. Interessante Schritte: 4 und 9. T1 muss zurückgesetzt werden, T2 hat aber in Schritt 5/6 die Zinsen auf "falschem" Wert berechnet.

Anomalien (4) Non-Repeatabe Read Schritt T1 T2 1 select gehalt from pers where pnr = 2 2 update pers set gehalt = gehalt + 1000 where pnr = 2 3 update pers set gehalt = gehalt + 2000 where pnr = 3 4 select gehalt from pers where pnr = 2 T1 liest verschiedene Gehälter. T2 vergibt Gehaltserhöhungen. T1 liest zweimal ein Gehalt mit zwei unterschiedlichen Ergebnissen.

Anomalien (4) Non-Repeatabe Read (komplexerer Fall) Schritt T1 T2 1 select gehalt into :gehalt from pers where pnr = 2 2 s = s + gehalt 3 update pers set gehalt = gehalt + 1000 where pnr = 2 T1 addiert verschiedene Gehälter. T2 vergibt Gehaltserhöhungen. 4 update pers set gehalt = Wenn man T1 ein gehalt + 2000 where pnr = 3 weiteres Mal ausführt, 5 select gehalt into :gehalt from pers where pnr = 3 bekommt man eine andere Summe s als 6 s = s + gehalt beim ersten Mal.

Anomalien (5) Phantom Read Schritt T1 T2 1 select sum(kontostand) from Konten; 2 insert into Konten values (C, 1000) T2 fragt zweimal die Summe aller Kontostände ab. T1 erzeugt eine neues Konto mit 1000 Guthaben. 3 select T2 berechnet innerhalb sum(kontostand) derselben TA zwei from Konten; unterschiedliche Werte.

Synchronisation (1) Korrektheitskriterium (Ziel): logischer Einbenutzerbetrieb, d.h. Vermeidung aller Mehrbenutzeranomalien Formales Korrektheitskriterium: Serialisierbarkeit: Parallele Ausführung einer Menge von Transaktionen ist serialisierbar, wenn es eine serielle Ausführung derselben TA-Menge gibt, die den gleichen DB- Zustand und die gleichen Ausgabewerte wie die ursprüngliche Ausführung erzielt.

Synchronisation (2) Aber: Serialisierbarkeit behindert parallele Ausführung von Transaktionen Inkaufnahme von Anomalien ermöglicht weniger Behinderung von TAs sehr mit Vorsicht zu verwenden!! Wie Gewährleistung der Serialisierbarkeit?.. durch Sperrverfahren.

Sperrverfahren (1) Beispiel: RX-Sperrverfahren (einfach) zwei Sperrmodi: Lese- oder Read (R)-Sperren Schreib- oder exclusive (X)-Sperren Kompatibiltitätsmatrix: keine R X R + + - X + - - "+" bedeutet: Sperre wird gewährt "-" bedeutet: Sperrkonflikt

Deadlock, Timeout Unverträglichkeit eines Sperrwunsches: TA muss warten Deadlock: in periodischen Abständen (einstellbar) wird nach Deadlocks gesucht (Zyklen-Erkennung), durch Zurücksetzen einzelner TA aufgelöst Timeout: maximale Wartezeit (einstellbar) nach der eine TA abgebrochen wird

Optimierungen Reduzierung der Beeinträchtigungen: hierarchische Sperrverfahren reduzierte Konsistenzebene Zeitstempel Snapshopt Isolation (Oracle, PostgreSQL,..) (Mehrversionen-Ansatz) Optimistische i Synchronisation

Hierarchische Sperren Sperrgranulate: Table Spaces, Tables, Rows Anwartschaftssperren (Intentionssperren) Sperren auf Tabellen (tables) Sperren auf Zeilen (rows)...

Konsistenzebenen in SQL vier Konsistenzebenen (isolation levels) bestimmt durch die Anomalien, die in Kauf genommen werden Lost Update wird immer vermieden: Schreibsperren bis zum TA-Ende. Default: Serializable Dirty Read Non-Repeatable R. Phantome Read Uncomitted + + + Read Comitted - + + Repeatable Read - - + Serializable - - -

Zeitstempelverfahren t Zeitstempel: o jedes Objekt hat zwei Zeitstempel 1. wann zuletzt gelesen 2. wann zuletzt t geschrieben o jede Transaktion hat einen Zeitstempel: wann begonnen o Bei Zugriffswunsch werden die Zeitstempel verglichen nur, wenn Transaktion jünger ist, bei Lesewunsch jünger als der Schreibstempel bei Schreibwunsch jünger als der Schreib- und der Lesestempel darf sie zugreifen und den Objektstempel entsprechend setzen

MVCC Multi Version Concurrency Control Snapshot Isolation TA sieht DB in dem Zustand, zu dem die TA startet liest die zum Startzustand gültigen Werte nur Konflikte zwischen Schreiboperationen Zurücksetzen der TA implementiert mit MVCC Vorteil: kein Leser wartet auf einen Schreiber kein Schreiber wartet auf einen Leser Nachteil: Mehr Platzbedarf für neue Versionen snapshot isolation garantiert noch keine Serialisierbarkeit serializable snapshot isolation

Optimistische Synchronisation Optimistische i Synchronisation: 1. Lesephase: Arbeiten nur auf lokalen Variablen 2. Validierungsphase: Konflikt mit anderen Transaktionen? 3. Schreibphase: Bei überstandener Validierung: Schreiben in der Datenbank

Klassifikation der Synchronisationsverfahren