6. Serialisierbarkeit 1

Ähnliche Dokumente
6. Serialisierbarkeit

Holger Schwarz Universität Stuttgart, IPVS

6. Serialisierbarkeit 1

6. Serialisierbarkeit 1

6. Serialisierbarkeit 1

6. Serialisierbarkeit 1

Transaktionale Informationssysteme - 2. Synchronisation - Korrektheit

DATENBANKANWENDUNG. Wintersemester 2013/2014. Holger Schwarz Universität Stuttgart, IPVS

Kapitel 3 Teil 1 Synchronisation / Korrektheit

Kapitel 3 Teil 1 Synchronisation / Korrektheit

Datenbanken: Ablaufpläne und Serialisierbarkeit

2.3 View Serialisierbarkeit

Eigenschaften von TAs: ACID-Prinzip

Kapitel 3 Synchronisation

8. Transaktionsverarbeitung. Architektur von Datenbanksystemen I

3.1 Schedules und Histories

Kommunikation und Datenhaltung

Beispielszenarien. 12. Transaktionen. ACID-Eigenschaften. Transaktion

Konfliktgraph. Satz und Definition

Kapitel 5 Mehrversionen-CC. MVCC: Annahmen & Eigenschaften

Datenbanksysteme 2009

3.5 Synchronisation ohne Sperren

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

Transaktionen. Michael Löwe 04/15/16. FHDW Hannover, Freundallee 15, Hannover address:

Software-Engineering und Datenbanken

Prioritäten/Zeitstempel-Verfahren

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

Datenhaltung. Sommersemester Relationale Algebra Join Entity Relationship Model Kardinalitäten... 2

10. Übungsblatt. Für die Übung am Donnerstag, 15. Januar 2009, von 15:30 bis 17:00 Uhr in 13/222.

Kapitel 9a Transaktionen - Synchronisation

Kommunikation und Datenhaltung

Synchronisation in Datenbanksystemen in a nutshell

Isolation: Serializability

Access-Modell. A4. Im Operandenteil von Anweisungen vorkommende Objekte seien unstrukturiert und stehen in keinerlei Beziehung zueinander.

Inhaltsverzeichnis. Inhaltsverzeichnis

1 Referentielle Aktionen

Isolation: Serializability

7. Transaktionsmodelle. Transaktionen im Mehrbenutzerbetrieb

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

Mehrbenutzersynchronisation

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

Transaktionsverwaltung

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

Kapitel 2 Transaktionsverwaltung. Skript 2009 Matthias Schubert

Datenbank- Verwaltungssysteme

Aufgabe 2: bedient m. (1;n) Flugzeug-Typ

Kapitel 3 Teil 2 Synchronisation - Algorithmen I

Mehrbenutzersynchronisation

Aufgabe 10.1: Lösung:

Datenbanken: Transaktionskonzept und Concurrency Control

7. Transaktionsverwaltung

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

6. Grundlagen des Transaktionskonzepts

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

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

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

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

8. Grundlagen des Transak0onskonzepts. Vorlesung "Informa0onssysteme" Sommersemester 2015

Mehrbenutzersynchronisation

Transaktionsverarbeitung und Nebenläufigkeitskontrolle. Jim Gray ( )

5 Mehrversionen-Concurrency Control

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

Datenintegrität und Transaktionskonzept

T1: A := A * 2 B := B * 2 T2: A := A B := B + 100

Übungen zur Vorlesung. Datenbanken I

Mehrbenutzer-Synchronisation

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

Datenbanken und Informationssysteme

Übungen zu Datenbanksysteme

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

Mehrbenutzersynchronisation

Transaktionen. Concurrency Management in MS SQL Server

Teil II Concurrency Control. Kapitel 2 Serialisierbarkeitstheorie

Übung Datenbanksysteme I Transaktionen, Selektivität, XML

Transaktionsverarbeitung und Nebenläufigkeitskontrolle. Jim Gray ( )

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

Vorlesung "Systemsoftware II" Wintersemester 2002/03

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

Transaktionssysteme. Guido Moerkotte

Mehrbenutzersynchronisation

Grundlagen von Datenbanken SS Synchronisation paralleler Transaktionen

Beispiel: Bankensoftware. 6 Transaktionen. 6.1 Grundlagen Einführung und Begriffe. Transaktionen. Beispiel (Fortsetzung 1): Verzahnte Ausführung

Verteilte Systeme. Replikation & Konsistenz I. Prof. Dr. Oliver Haase

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

2. Synchronisation in DBS: Grundlagen, Sperrverfahren

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

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

TRANSAKTIONEN UND DATENINTEGRITÄT

6.1.2 Sequentielle Konsistenz (Lamport 1979)

Tag 4 Inhaltsverzeichnis

Koordination des Mehrbenutzerbetriebs 9. Koordination des Mehrbenutzerbetriebs

Kapitel 8: Transaktionen

Transkript:

6. Serialisierbarkeit 1 Motivation Erinnerung Anomalien im Mehrbenutzerbetrieb Synchronisation von Transaktionen Nothing is as practical as a good theory Albert Einstein - Ablaufpläne, Modellannahmen - Korrektheitskriterium: Serialisierbarkeit (bekannt aus Informationssysteme) Theorie der Serialisierbarkeit Sie wird zunächst entwickelt unter Annahme eines fehlerfreien Systems - Historien und Schedules - Korrektheit - Klasse CSR Konfliktserialisierbarkeit Serialisierbarkeitstheorem Kommutativitätsregeln - Klassen OCSR und COCSR - Die ganze Wahrheit Anhang Die parallele Ausführung einer Menge von TAs 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. - Klassen FSR und VSR (mit Beispielen erklärt) 1. Weikum, G., Vossen, G.: Transactional Information Systems Theory, Algorithms, and the Practice of Concurrency Control and Recovery, Morgan Kaufmann Publishers, 2002 6-1 Anomalien im unkontrollierten Mehrbenutzerbetrieb Verlorengegangene Änderung (Lost Update) ist in jedem Fall auszuschließen zugehörige Historie: r 1 (A) r 2 (A) w 1 (A) w 2 (A) c 1 c 2 Inkonsistente Analyse (Inconsistent Read, Non-repeatable Read): Lesetransaktion (Gehaltssumme berechnen) SELECT Gehalt INTO :gehalt FROM Pers WHERE Pnr = 245; summe := summe + gehalt; SELECT Gehalt INTO :gehalt FROM Pers WHERE Pnr = 456; summe := summe + gehalt; zugehörige Historie: r 1 (A) w 2 (A) w 2 (B) r 1 (B)... 6-2 t 1 Read (A); A := A - 1; Write (A); Änderungstransaktion UPDATE Pers SET Gehalt = Gehalt + 1000 WHERE Pnr = 245; UPDATE Pers SET Gehalt = Gehalt + 2000 WHERE Pnr = 456; t 2 Read (A); A := A +1; Write (A); Zeit DB-Inhalt (Pnr, Gehalt) 245 9.000 456 48.000 245 40.000 456 50.000 Zeit

Synchronisation von Transaktionen Synchronisation Modellannahmen Transaktion: Ein Programm t mit DML-Anweisungen, das folgende Eigenschaft erfüllt: Wenn t allein auf einer konsistenten DB ausgeführt wird, dann terminiert t (irgendwann) und hinterlässt die DB in einem konsistenten Zustand. (Während der TA-Verarbeitung gibt es keine Konsistenzgarantien!) Möglichkeiten der Modellbildung für die Synchronisation S S D Datensystem Select * From Pers Where P Delete From Pers Where Q Ablaufpläne für Transaktionen t 1 U I R Zugriffssystem Update t 1 From Pers Insert 4711 into I Pers (Pnr) t 2 r 1 (x) w 2 (y) w 1 (y) Speichersystem Read Page Write Page t Read/Write-Modell (Seitenmodell) verzahnter Ablaufplan serieller Ablaufplan - DB ist Menge von uninterpretierten Datenobjekten (z. B. Seiten): D = {x, y, z,...} - DB-Anweisungen sind atomare Lese- und Schreiboperationen auf Objekten: r i (x), w i (x) zum Lesen bzw. Schreiben des Datenobjekts x Wenn Transaktionen seriell ausgeführt werden, dann bleibt die Konsistenz der DB erhalten. Ziel der Synchronisation: logischer Einbenutzerbetrieb, d.h. Vermeidung aller Mehrbenutzeranomalien Fundamentale Fragestellung: Wann ist die parallele Ausführung von n Transaktionen auf gemeinsamen Daten korrekt? 6 - c i, a i zur Durchführung eines commit bzw. abort - Jeder Wert, der von einer TA t geschrieben wird, ist potenziell abhängig von allen Datenobjekten, die t vorher gelesen hat! Definition: Transaktion Eine Transaktion t ist eine Partialordnung von Schritten der Form p i {r(x), w(x)} mit x D. Lese- und Schreiboperationen sowie mehrfache Schreiboperationen auf demselben Datenobjekt sind geordnet. Eine vollständige TA hat als letzte Operation entweder einen Abbruch a oder ein Commit c t = p 1... p n a oder t = p 1... p n c 6-4

Historien und Schedules Historien und Schedules (2) Definition: Historien und Schedules 2 - Es sei T = {t 1,..., t n } eine (endliche) Menge von TAs, wobei jedes t i T die Form t i = {op i, < i ) besitzt, op i die Menge der Operationen von t i und < i ihre Ordnung (1 i n) bezeichnen - Eine Historie für T ist ein Paar s = (op(s), < s ), so dass: n n n a) op(s) op i {a i, c i } und op i op(s) i = 1 i = 1 i = 1 b) ( i, 1 i n) c i op(s) a i op(s) Client 1 1 requests Transaction Mgr (TM) Data Mgr (DM) 1 1 Client 2 2 2 2 1 2. 2 1 1 Client... Clients Data layer 5 Server layer 4 layer layer 2 layer 1 n c) < i < s i = 1 Database d) ( i, 1 i n) ( p op i ) p < s a i oder p < s c i e) Jedes Paar von Operationen p, q op(s) von verschiedenen TAs, die auf dasselbe Datenelement zugreifen und von denen wenigstens eine davon eine Schreiboperation ist, sind so geordnet, dass p < s q oder q < s p gilt - Ein Schedule ist ein Präfix einer Historie Erläuterungen zur Definition: - Eine Historie (für partiell geordnete TAs) a) enthält alle Operationen aller TAs b) benötigt eine bestimmte Terminierungsoperation für jede TA c) bewahrt alle Ordnungen innerhalb der TA d) hat die Terminierungsoperationen als letzte Operationen in jeder TA e) ordnet Konfliktoperationen - Historie heißt wegen (a) und (b) auch als vollständiger Schedule 2. Der Begriff Historie bezeichnet eine retrospektive Sichtweise, also einen abgeschlossenen Vorgang. Ein Scheduling-Algorithmus (Scheduler) produziert Schedules, wodurch noch nicht abgeschlossene Vorgänge bezeichnet werden. Manche Autoren machen jedoch keinen Unterschied zwischen Historie und Schedule. 6-5 Definition: Serielle Historie Eine Historie s ist seriell, wenn für jeweils zwei TAs t i und t j (i j) alle Operationen von t i vor allen Operationen von t j in s auftreten oder umgekehrt. Definitionen: TA-Mengen eines Schedules - trans(s) := {t i s enthält Schritte von t i } - commit(s) := {t i trans(s) c i s} - abort(s) := {t i trans(s) a i s} - active(s) := trans(s) (commit(s) abort(s)) - s 1 = r 1 (x) r 2 (z) r (x) w 2 (x) w 1 (x) r (y) r 1 (y) w 1 (y) w 2 (z) w (z) c 1 c 2 a trans(s 1 ) = {t 1, t 2, t } commit(s 1 ) = {t 1, t 2 } abort(s 1 ) = {t } active(s 1 ) = Für jede Historie s gilt: - trans(s) = commit(s) abort(s) - active(s) = 6-6

Serialisierbarkeitsklassen Korrektheit Ziel dieses Kapitels - detailliertere und - formale Betrachtung des Serialisierbarkeitsbegriffs Klassen (vereinfachter Ausblick) FSR VSR L FSR, I FSR L VSR, I VSR, aber Entscheidung NP-vollständig CSR OCSR COCSR seriell Ein Korrektheitskriterium kann formal betrachtet werden als Abbildung - : S {0, 1} mit S Menge aller Schedules. - correct(s) := {s S (s) = 1} Ein konkretes Korrektheitskriterium sollte mindestens die folgenden Anforderungen erfüllen 1. correct(s) 2. s correct(s) ist effizient entscheidbar. correct(s) ist ausreichend groß, so dass der Scheduler viele Möglichkeiten hat, korrekte Schedules herbeizuführen Je größer die Menge der erlaubten Schedules, desto höher die Nebenläufigkeit, desto höher die Effizienz! Fundamentale Idee der Serialisierbarkeit Akzeptable Klasse von Schedules muss - mindestens Lost Update (L) und Inconsistent Read (I) ausschließen - Zugehörigkeit eines Schedules effizient entscheiden können - bei Annahme von Fehlern (Aborts) Abhängigkeit von nicht-freigegebenen Änderungen (Dirty Read) vermeiden: D = r 1 (x) w 1 (x) r 2 (x) a 1 w 2 (x) c 2 Deshalb: Konzentration auf Konflikt-Serialisierbarkeit (CSR) CSR ist wichtigste Art der Serialisierbarkeit für die praktische Nutzung 6-7 - Einzelne TA ist korrekt, da sie die Datenbank konsistent erhält - Konsequenz: serielle Historien sind korrekt! - Serielle Historien sollen jedoch nur als Korrektheitsmaß via geeignet gewählten Äquivalenzrelationen nutzbar gemacht werden Vorgehensweise 1. Definition einer Äquivalenzrelation auf S (Menge aller Schedules), so dass [S] = {[s] s S} (Menge der Äquivalenzklassen) 2. Betrachten solcher Äquivalenzklassen und Definition der Serialisierbarkeit ihrer Vertreter über die Äquivalenz zu seriellen Historien 6-8

Klasse CSR Klasse CSR (2) Ziel - VSR taugt nicht für den praktischen Einsatz; Testen ist NP-vollständig! - Einfach zu testendes Konzept, das sich für den Einsatz in Schedulern eignet Definition: Konflikte und Konfliktrelationen - Sei s ein Schedule; t, t trans(s), t t : - Zwei Datenoperationen p t und q t sind in Konflikt in s, wenn sie auf dasselbe Datenelement zugreifen und wenigstens eine von ihnen ein Write ist - conf(s) := {(p, q) p, q sind in Konflikt in s und p < s q} heißt Konfliktrelation von s Definition: Konfliktgraph (Serialisierungsgraph) Sei s ein Schedule. Der Konfliktgraph G(s) = (V, E) ist ein gerichteter Graph mit - V = commit(s) - (t, t ) E t t ( p t) ( q t ) (p, q) conf(s) - s = r 1 (x) r 2 (x) w 1 (x) r (x) w (x) w 2 (y) c c 2 w 1 (y) c 1 - G(s) = - s = w 1 (x) r 1 (y) w 1 (y) w 2 (x) w 2 (y) c 1 - conf(s) = {(w 1 (x), w 2 (x)), (r 1 (y), w 2 (y)), (w 1 (y), w 2 (y))} Definition: Konfliktäquivalenz Schedules s und s sind konfliktäquivalent, ausgedrückt durch s c s, wenn op(s) = op(s ) und conf(s) = conf(s ) Definition: Konfliktserialisierbarkeit Historie s ist konfliktserialisierbar, wenn serielle Historie s mit s c s existiert Serialisierbarkeitstheorem Sei s eine Historie; dann gilt: s CSR gdw G(s) azyklisch - s = r 1 (y) r (w) r 2 (y) w 1 (y) w 1 (x) w 2 (x) w 2 (z) w (x) c 1 c c 2 G(s) = - s 1 = r 1 (x) r 2 (x) r 1 (z) w 1 (x) w 2 (y) r (z) w (y) c 1 c 2 w (z) c r 2 (x) ---> w 1 (x) r 1 (z) ---> w (z) w 2 (y) ---> w (y) - s 1 = r 2 (x) w 2 (y) c 2 r 1 (x) r 1 (z) w 1 (x) c 1 r (z) w (y) w (z) c s 1 CSR. CSR bezeichnet die Klasse aller konfliktserialisierbaren Historien 6-9 Korollar Mitgliedschaft in CSR lässt sich in polynomialer Zeit in der Menge der am betreffenden Schedule teilnehmenden TAs testen 6-10

Klasse CSR () Klasse CSR (4) Ziel: s soll mit Hilfe von Kommutativitätsregeln schrittweise so transformiert werden, dass eine serielle Historie entsteht Kommutativitätsregeln - ~ bedeutet, dass die geordneten Paare von Aktionen gegenseitig ersetzt werden können C1: r i (x) r j (y) ~ r j (y) r i (x), wenn i j C2: r i (x) w j (y) ~ w j (y) r i (x), wenn i j, x y C: w i (x) w j (y) ~ w j (y) w i (x), wenn i j, x y Blindes Schreiben - Ein blindes Schreiben eines Datenelements x liegt vor, wenn eine TA ein Write(x) ohne ein vorhergehendes Read(x) durchführt - Wenn wir blindes Schreiben für TAs verbieten, verschärft sich die Definition einer TA um die Bedingung: Wenn w i (x) T i, dann gilt r i (x) T i und r i (x) < w i (x) - Dann gilt: Eine Historie ist view-serialisierbar gdw sie konfliktserialisierbar ist! - Ordnungsregel bei partiell geordneten Schedules C4: o i (x), p j (y) ungeordnet o i (x) p j (y), wenn x y (o = r p = r) besagt, dass zwei ungeordnete Operationen beliebig geordnet werden können, wenn sie nicht in Konflikt stehen s = w 1 (x) r 2 (x) w 1 (y) w 1 (z) r (z) w 2 (y) w (y) w (z) (C2) w 1 (x) w 1 (y) r 2 (x) w 1 (z) w 2 (y) r (z) w (y) w (z) (C2) w 1 (x) w 1 (y) w 1 (z) r 2 (x) w 2 (y) r (z) w (y) w (z) = t 1 t 2 t 6-11 6-12

Klasse OCSR Klasse OCSR (2) Einschränkungen der Konflikt-Serialisierbarkeit - Historien/Schedules aus VSR und FSR lassen sich praktisch nicht nutzen! - Weitere Einschränkungen von CSR dagegen sind in manchen praktischen Anwendungen sinnvoll! - s 12 = w 1 (x) r 2 (x) c 2 w (y) c w 1 (y) c 1 Definition: Ordnungserhaltende Konfliktserialisierbarkeit Eine Historie s heißt ordnungserhaltend konfliktserialisierbar (order-preserving serializable), wenn - sie konfliktserialisierbar ist, d.h., es existiert ein s, so dass op(s) = op(s ) und s c s gilt und - wenn zusätzlich Folgendes für alle t i, t j trans(s) gilt: Wenn t i vollständig vor t j in s auftritt, dann gilt dasselbe auch für s Theorem OCSR bezeichne die Klasse aller ordnungserhaltenden konfliktserialisierbaren Historien: OCSR CSR Beweisskizze - G(s 12 ) = - Aus der Definition folgt: OCSR CSR - s 12 = w 1 (x) r 2 (x) c 2 w (y) c w 1 (y) c 1 Kontrast zwischen Serialisierungs- und tatsächlicher Ausführungsreihenfolge möglicherweise unerwünscht! Situation lässt sich durch Ordnungserhaltung vermeiden - s 12 zeigt, dass die Inklusionsbeziehung echt ist: s 12 CSR OCSR Weitere Einschränkung von CSR - nützlich für verteilte und möglicherweise heterogene Anwendungen - Beobachtung: Für Konflikt-Serialisierbarkeit ist es hinreichend, wenn in Konflikt stehende TAs ihr Commit in Konfliktreihenfolge ausführen 6-1 6-14

Klasse COCSR Die ganze Wahrheit Definition: Einhaltung der Commit-Reihenfolge Eine Historie s hält die Commit-Reihenfolge ein (commit order-preserving conflict serializable), wenn folgendes gilt: Für alle t i, t j commit(s), i j: Wenn (p, q) conf(s) für p t i, q t j, dann c i < c j in s Definition: Commit-Serialisierbarkeit Ein Schedule s heißt commit-serialisierbar, wenn CP(s) serialisierbar ist für jeden Präfix s von s. (CP: Präfix-Commit-Abgeschlossenheit) Klassen commit-serialisierbarer Schedules Die Reihenfolge der Konfliktoperationen bestimmt die Reihenfolge der zugehörigen Commit-Operationen - CMFSR : commit final state serializable histories - CMVSR: commit view serializable histories Theorem COCSR bezeichne die Klasse aller Historien, die commit order-preserving conflict serializable sind; es gilt COCSR CSR Beweisskizze - CMCSR: commit conflict serializable histories Alle Klassen im Überblick Full FSR VSR s 4 s 2 s 1 - s = r 1 (x) w 2 (x) c 2 c 1 - s CSR COCSR (die Inklusion ist also echt) Theorem Sei s eine Historie: s COCSR gdw s CSR und es existiert eine serielle Historie s, CMFSR Full s CMVSR Full CSR OCSR s 8 COCSR s 9 s 10 seriell s 7 s 6 so dass s c s und für alle t i, t j trans(s), t i < s t j c ti < s c tj s 5 Theorem: COCSR OCSR 6-15 s7 = w1(x) w2(x) w2(y) c2 w1(z) c1 s8 = w(y) c w1(x) r2(x) c2 w1(y) c1 s9 = w(y) c w1(x) r2(x) w1(y) c1 c2 s10 = w1(x) w1(y) c1 w2(x) w2(y) c2 6-16

Zusammenfassung Klasse FSR Beim ungeschützten und konkurrierenden Zugriff von Lesern und Schreibern auf gemeinsame Daten können Anomalien auftreten Korrektheitskriterium der Synchronisation: Serialisierbarkeit (gleicher DB-Zustand, gleiche Ausgabewerte wie bei seriellem Ablaufplan) Theorie der Serialisierbarkeit - FSR erfüllt nicht einmal Minimalbedingungen - Testen der VSR-Mitgliedschaft ist NP-vollständig! - Im Gegensatz zur Final-State-Serialisierbarkeit und View-Serialisierbarkeit ist CSR (Konflikt-Serialisierbarkeit) für praktische Anwendungen die wichtigste. Sie ist effizient überprüfbar Es gilt: CSR VSR FSR - Konfliktoperationen: Kritisch sind Operationen verschiedener Transaktionen auf denselben DB-Daten, wenn diese Operationen nicht reihenfolgeunabhängig sind! - Serialisierbarkeitstheorem: Sei s eine Historie; dann gilt: s CSR gdw G(s) azyklisch - Verschärfung des Serialisierbarkeitsbegriffs durch OCSR und COCSR Achtung: Bisher wurde der Fehlerfall ausgeschlossen - Praktische Anwendungen erfordern deshalb weitere Einschränkungen - Schedules müssen recoverable (RC) sein und die Eigenschaft avoiding cascading aborts (ACA) besitzen Serialisierbare Abläufe - gewährleisten automatisch Korrektheit des Mehrbenutzerbetriebs - Anzahl der möglichen Historien (Schedules) bestimmt erreichbaren Grad an Parallelität 6-17 Definition: Final-State-Serialisierbarkeit 4 Eine Historie s ist final-state-serialisierbar, wenn eine serielle Historie s existiert, so dass s f s. FSR bezeichnet die Klasse aller final-state-serialisierbaren Historien Final-State-Serialisierbarkeit - Final-State-Äquivalenz: s f s, wenn sie ausgehend vom selben Ausgangszustand denselben Endzustand der DB erzeugen - Konsistenter DB-Zustand wird nur am Ende der Historie gewährleistet. FSR macht deshalb nur Sinn für Historien (vollständige Schedules) - Ist Historie s FSR, die einen Zyklus enthält, final-state-serialisierbar? s FSR = w 1 (x) r 2 (x) w 2 (y) c 2 r 1 (y) w 1 (y) c 1 w (x) w (y) c e mit konkreten Werten - Annahmen: initiale DB = {x = 0, y = 0} r liest aktuellen Wert a r vor w: w schreibt a+1 blindes w: w schreibt irgendeinen Wert s FSR =w 1 (x = 5) r 2 (x = 5) w 2 (y = 7) c 2 r 1 (y = 7) w 1 (y = 8) c 1 w (x = 1) w (y = 1) c s = w 1 (x = 5) r 1 (y = 0) w 1 (y = 1) c 1 r 2 (x = 5) w 2 (y = 7) c 2 w (x = 1) w (y = 1) c s FSR f s = t 1 t 2 t 4. Beachte: f und v sind hier nicht definiert! Die Definition der Final-State- und View-Äquivalenz erfordert eine komplexe Einführung der Herbrand-Semantik und wird deshalb hier weggelassen 6-18

Klasse FSR (2) Klasse VSR Plausibilitätstest: FSR ist nicht ausreichend! Lost Update L = r 1 (x) r 2 (x) w 1 (x) w 2 (x) c 1 c 2 mit konkreten Beispielwerten: L = r 1 (x = 0) r 2 (x = 0) w 1 (x = 1) w 2 (x = 1) c 1 c 2 - L FSR, da t 1 t 2 oder t 2 t 1 andere Endzustände erzeugen würden t 1 t 2 r 1 (x = 0) w 1 (x = 1) c 1 r 2 (x = 1) w 2 (x = 2) c 2 t 2 t 1 r 2 (x = 0) w 2 (x = 1) c 2 r 1 (x = 1) w 1 (x = 2) c 1 Definition: View-Serialisierbarkeit Ein Schedule s ist view-serialisierbar, wenn ein serieller Schedule s existiert, so dass s v s. VSR bezeichnet die Klasse aller view-serialisierbaren Historien View-Serialisierbarkeit - s erfüllt VSR, wenn eine view-äquivalente serielle Historie erzeugt werden kann und - die gesamte Historie einen konsistenten DB-Zustand hinterlässt - Neues Konzept der View-Serialisierbarkeit verhindert inkonsistentes Lesen; sie gewährleistet, dass die Sicht jeder TA konsistent ist - Ist Historie s VSR, die einen Zyklus enthält, view-serialisierbar? s VSR = r 1 (x) w 1 (x) w 2 (x) w 2 (y) c 2 w 1 (y) c 1 w (x) w (y) c Inconsistent Read I = r 2 (x) w 2 (x) r 1 (x) r 1 (y) r 2 (y) w 2 (y) c 1 c 2 mit konkreten Beispielwerten I = r 2 (x = 0) w 2 (x = 1) r 1 (x = 1) r 1 (y = 0) r 2 (y = 0) w 2 (y = 1) c 1 c 2 - I FSR, da t 1 t 2 oder t 2 t 1 denselben Endzustand erzeugen, obwohl t 1 inkonsistente Werte liest. Final-State-Serialisierbarkeit verhindert also nicht inkonsistentes Lesen View-äquivalent bedeutet, dass alle Leseoperationen Werte liefern wie in einem seriellen Schedule mit konkreten Werten - Annahmen wie bisher: initiale DB = {x = 0, y = 0} usw. s VSR =r 1 (x = 0) w 1 (x = 1) w 2 (x = 5) w 2 (y = 7) c 2 w 1 (y = ) c 1 w (x = 1) w (y = 1) c s = r 1 (x = 0) w 1 (x = 1) w 1 (y = ) c 1 w 2 (x = 5) w 2 (y = 7) c 2 t 2 t 1 r 2 (x = 0) w 2 (x = 1) r 2 (y = 0) w 2 (y = 1) c 2 r 1 (x = 1) r 1 (y = 1) c 1 t 1 t 2 r 1 (x = 0) r 1 (y = 0) c 1 r 2 (x = 0) w 2 (x = 1) r 2 (y = 0) w 2 (y = 1) c 1 w (x = 1) w (y = 1) c s VSR v s = t 1 t 2 t 6-19 6-20

Klasse VSR (2) CSR VSR Plausibilitätstest: Ist VSR ausreichend? Lost Update L= r 1 (x) r 2 (x) w 1 (x) w 2 (x) c 1 c 2 Lost Update - L = r 1 (x) r 2 (x) w 1 (x) w 2 (x) c 1 c 2 - conf(l) = {(r 1 (x), w 2 (x)), (r 2 (x), w 1 (x)), (w 1 (x), w 2 (x))} mit konkreten Beispielwerten: L = r 1 (x = 0) r 2 (x = 0) w 1 (x = 1) w 2 (x = 1) c 1 c 2 - L VSR, da keine view-äquivalente serielle Historie erzeugt werden kann t 1 t 2 r 1 (x = 0) w 1 (x = 1) c 1 r 2 (x = 1) w 2 (x = 2) c 2 t 2 t 1 r 2 (x = 0) w 2 (x = 1) c 2 r 1 (x = 1) w 1 (x = 2) c 1 Inconsistent Read I = r 2 (x) w 2 (x) r 1 (x) r 1 (y) r 2 (y) w 2 (y) c 1 c 2 mit konkreten Beispielwerten: I = r 2 (x = 0) w 2 (x = 1) r 1 (x = 1) r 1 (y = 0) r 2 (y = 0) w 2 (y = 1) c 1 c 2 - I VSR, da keine view-äquivalente serielle Historie erzeugt werden kann - L c t 1 t 2 und L c t 2 t 1 Inconsistent Read - I = r 2 (x) w 2 (x) r 1 (x) r 1 (y) r 2 (y) w 2 (y) c 1 c 2 - conf(i) = {(w 2 (x), r 1 (x)), (r 1 (y), w 2 (y))} - I c t 1 t 2 und I c t 2 t 1 Theorem: CSR VSR Korollar: CSR VSR FSR - s VSR = r 1 (x) w 1 (x) w 2 (x) w 2 (y) c 2 w 1 (y) c 1 w (x) w (y) c t 2 t 1 r 2 (x = 0) w 2 (x = 1) r 2 (y = 0) w 2 (y = 1) c 2 r 1 (x = 1) r 1 (y = 1) c 1 t 1 t 2 r 1 (x = 0) r 1 (y = 0) c 1 r 2 (x = 0) w 2 (x = 1) r 2 (y = 0) w 2 (y = 1) c 1 - VSR bestätigt unsere Erwartung: konsistente Sicht jeder TA. Neben der Recovery ist für VSR aber auch Komplexität zu berücksichtigen! Theorem Das Entscheidungsproblem, ob für einen gegebenen Schedule s VSR gilt, ist NP-vollständig 6-21 - s c t 1 t 2 t und s CSR, aber s v t 1 t 2 t und damit s VSR Theorem - CSR ist monoton - s CSR T (s) VSR für alle T trans(s) (d.h., CSR ist die größte monotone Teilmenge von VSR) 6-22