Isolation: Serializability

Ähnliche Dokumente
Algorithmic Bioinformatics III Graphs, Networks, and Systems SS2008 Ralf Zimmer

Musterlösung 3. D-MATH Algebra I HS 2015 Prof. Richard Pink. Faktorielle Ringe, Grösster gemeinsamer Teiler, Ideale, Faktorringe

Unterspezifikation in der Semantik Hole Semantics

3.1 Schedules und Histories

VGM. VGM information. HAMBURG SÜD VGM WEB PORTAL - USER GUIDE June 2016

4. Bayes Spiele. S i = Strategiemenge für Spieler i, S = S 1... S n. T i = Typmenge für Spieler i, T = T 1... T n

p^db=`oj===pìééçêíáåñçêã~íáçå=

1. General information Login Home Current applications... 3

KURZANLEITUNG. Firmware-Upgrade: Wie geht das eigentlich?

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Hazards and measures against hazards by implementation of safe pneumatic circuits

Algorithms & Datastructures Midterm Test 1

Geometrie und Bedeutung: Kap 5

Level 1 German, 2012

ReadMe zur Installation der BRICKware for Windows, Version ReadMe on Installing BRICKware for Windows, Version 6.1.2

There are 10 weeks this summer vacation the weeks beginning: June 23, June 30, July 7, July 14, July 21, Jul 28, Aug 4, Aug 11, Aug 18, Aug 25

Falko. Error annotations in Falko 2.x. Marc Reznicek & Cedric Krummes

Algorithms for graph visualization

Level 2 German, 2013

Statistics, Data Analysis, and Simulation SS 2015

HIR Method & Tools for Fit Gap analysis

Worx Landroid - Software Update

Anleitung für den Desigo Würfel

DAS ZUFRIEDENE GEHIRN: FREI VON DEPRESSIONEN, TRAUMATA, ADHS, SUCHT UND ANGST. MIT DER BRAIN-STATE-TECHNOLOGIE DAS LEBEN AUSBALANCIEREN (GE

Thema: Sonnenuhren (7.Jahrgangsstufe)

ONLINE LICENCE GENERATOR

AS Path-Prepending in the Internet And Its Impact on Routing Decisions

WAS IST DER KOMPARATIV: = The comparative

CABLE TESTER. Manual DN-14003

Mitglied der Leibniz-Gemeinschaft

USBASIC SAFETY IN NUMBERS

Rätsel 1: Buchstabensalat klassisch, 5 5, A C (10 Punkte) Puzzle 1: Standard As Easy As, 5 5, A C (10 points)

How to access licensed products from providers who are already operating productively in. General Information Shibboleth login...

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

ETHISCHES ARGUMENTIEREN IN DER SCHULE: GESELLSCHAFTLICHE, PSYCHOLOGISCHE UND PHILOSOPHISCHE GRUNDLAGEN UND DIDAKTISCHE ANSTZE (GERMAN

2 German sentence: write your English translation before looking at p. 3

SELF-STUDY DIARY (or Lerntagebuch) GER102

Parameter-Updatesoftware PF-12 Plus

II. Matching. What answers listed below would be logical answers for the following There may be more than one answer for each:

Einführung in die Computerlinguistik reguläre Sprachen und endliche Automaten

Abschlussklausur des Kurses Portfoliomanagement

CNC ZUR STEUERUNG VON WERKZEUGMASCHINEN (GERMAN EDITION) BY TIM ROHR

Einsatz einer Dokumentenverwaltungslösung zur Optimierung der unternehmensübergreifenden Kommunikation

Context-adaptation based on Ontologies and Spreading Activation

p^db=`oj===pìééçêíáåñçêã~íáçå=

Franke & Bornberg award AachenMünchener private annuity insurance schemes top grades

ACDEFG. Hotmetal Borders

IDS Lizenzierung für IDS und HDR. Primärserver IDS Lizenz HDR Lizenz

After sales product list After Sales Geräteliste

Transaktionen in der Praxis. Dr. Karsten Tolle

Fakultät III Univ.-Prof. Dr. Jan Franke-Viebach

Prediction Market, 28th July 2012 Information and Instructions. Prognosemärkte Lehrstuhl für Betriebswirtschaftslehre insbes.

Cameraserver mini. commissioning. Ihre Vision ist unsere Aufgabe

The English Tenses Die englischen Zeitformen

Fundamentals of Electrical Engineering 1 Grundlagen der Elektrotechnik 1

Patentrelevante Aspekte der GPLv2/LGPLv2

DIE NEUORGANISATION IM BEREICH DES SGB II AUSWIRKUNGEN AUF DIE ZUSAMMENARBEIT VON BUND LNDERN UND KOMMUNEN

Ergänzungsmaterial g zum Kapitel. Die Unified Modeling Language (UML) Aggregation versus Komposition

J RG IMMENDORFF STANDORT F R KRITIK MALEREI UND INSPIRATION ERSCHEINT ZUR AUSSTELLUNG IM MUSEUM LU

VII.3 Assoziationsregeln

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

GRIPS - GIS basiertes Risikoanalyse-, Informations- und Planungssystem

Automaten und Formale Sprachen Endliche Automaten und Reguläre sprachen

Der Adapter Z250I / Z270I lässt sich auf folgenden Betriebssystemen installieren:

MATLAB driver for Spectrum boards

Release Notes BRICKware Copyright 23. March 2010 Funkwerk Enterprise Communications GmbH Version 1.0

XV1100K(C)/XV1100SK(C)

Extract of the Annotations used for Econ 5080 at the University of Utah, with study questions, akmk.pdf.

Technical Support Information No. 123 Revision 2 June 2008

Der Wetterbericht für Deutschland. Read the weather reports and draw the correct weather symbols for each town.

eurex rundschreiben 094/10

Therefore the respective option of the password-protected menu ("UPDATE TUBE DATA BASE") has to be selected:

STRATEGISCHES BETEILIGUNGSCONTROLLING BEI KOMMUNALEN UNTERNEHMEN DER FFENTLICHE ZWECK ALS RICHTSCHNUR FR EIN ZIELGERICHTETE

Level 2 German, 2011


Notice: All mentioned inventors have to sign the Report of Invention (see page 3)!!!

Sprachen/Grammatiken eine Wiederholung

NEWSLETTER. FileDirector Version 2.5 Novelties. Filing system designer. Filing system in WinClient

Field Librarianship in den USA

Kybernetik Intelligent Agents- Decision Making

Exercise (Part VIII) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Correspondence between initialisation table and Common Criteria Evaluation

Im Original veränderbare Word-Dateien

Frequently asked Questions for Kaercher Citrix (apps.kaercher.com)

Yealink W52 DECT IP Telefon

Selbstlernmodul bearbeitet von: begonnen: Inhaltsverzeichnis:

Labour law and Consumer protection principles usage in non-state pension system

Prof. S. Krauter Kombinatorik. WS Blatt03.doc

Snom 3xx/7xx Serie. Manuelle Neukonfiguration. Dokumentenversion 1.0

RS232-Verbindung, RXU10 Herstellen einer RS232-Verbindung zwischen PC und Messgerät oder Modem und Messgerät

XONTRO Newsletter. Financial Institutes. No. 70

USB Treiber updaten unter Windows 7/Vista

Software-Engineering und Datenbanken

Aber genau deshalb möchte ich Ihre Aufmehrsamkeit darauf lenken und Sie dazu animieren, der Eventualität durch geeignete Gegenmaßnahmen zu begegnen.

Mathematics (M4) (English version) ORIENTIERUNGSARBEIT (OA 11) Gymnasium. Code-Nr.:

The process runs automatically and the user is guided through it. Data acquisition and the evaluation are done automatically.

Kapitel 4: Synchronisation: Scheduler

Instruktionen Mozilla Thunderbird Seite 1

Titelbild1 ANSYS. Customer Portal LogIn

Transkript:

Universität Karlsruhe (TH) Chapter 5 Isolation: Serializability

Agenda 2 Conflict serializability Order preservation View serializability Final-state serializability Commit serializability

3 Conflict serializability

Conflict equivalence 4 Remember: We study histories, and we ignore aborted transactions. Definition 5.1 (Conflict equivalence) (Def. 4.23 specialised) Two histories h und h' are conflict equivalent (h C h') op(h) = op(h') conf(h) = conf(h')

Conflict equivalence Example 5.2 Histories over two transactions: h 2 w 1 (y) 5 r 1 (x) r 1 (y) c 1 w 1 (x) r 2 (z) w 2 (y) w 2 (x) c 2 h r 3 1 (x) r 1 (y) w 1 (x) w 1 (y) c 1 r 2 (z) w 2 (y) w 2 (x) c 2 h 4 w 1 (x) r 1 (x) r 1 (y) c 1 w 1 (y) r 2 (z) w 2 (y) w 2 (x) c 2 r 1 (x) r 1 (y) h 2 h 3 h 4 r 2 (z) h 2 h 4 h 3 w 1 (x) w 1 (y) w 2 (y) w 2 (x) c 1 c 2

Conflict serializability Definition 5.3 6 Conflict serializability: A history h is conflict serializable if there exists a conflict equivalent serial history h s : h s serial: CP(h) C h s A schedule s is conflict serializable if there exists a serial history h s s.t. h s serial: CP(s) C h s Corollary 5.4 A history h is conflict serializable if h s serial: CP(h) C h s pf conf(h) = conf(h s ). Definition 5.5 CSR ::= Set of all conflict serializable histories. Remember: conf(s) ignores aborted transactions

Proving conflict serializability 7 Idea: Find a good characterization for conf(h s ). Then, for h serializable the same characterization should hold for conf(h). Needed: Efficient proof procedure. Standard approach: Try a graph.

Conflict graph 8 Definition 5.6 (Conflict Graph): Let h be a history. The conflict graph G(h) = (V, E) is a directed graph with vertices V := commit(s) and edges E := {(t, t ) t t and there are operations p t, q t with (p, q) conf(h)}. h 2 w 1 (y) r 1 (x) r 1 (y) c 1 w 1 (x) r 2 (z) w 2 (y) w 2 (x) c 2 G(h 2 ) = t 1 t 2

Conflict graph 9 Definition 5.6 (Conflict Graph): Let h be a history. The conflict graph G(h) = (V, E) is a directed graph with vertices V := commit(s) and edges E := {(t, t ) t t and there are operations p t, q t with (p, q) conf(h)}. An edge t t indicates that at least one operation in t precedes an operation in t and the two are in conflict. In a serial history: All operations in t precede those in t. G(h s ), h s serial, is acyclic. Failure if G(h) contains a cycle.

Correctness proof 10 From intuition to proof: Theorem 5.7: Let h be a history. Then h CSR pf G(h ) is acyclic.

(i) Correctness proof h CSR pf G(h ) is acyclic Let h be a history in CSR. So there is a serial history h with conf(h) = conf(h ). Now assume that G(h) has a cycle t 1 t 2... t k t 1. This implies that there are pairs (p 1, q 2 ), (p 2, q 3 ),..., (p k, q 1 ) with p i t i, q i t i, p i < h q (i+1), and p i in conflict with q (i+1). Because h c h, it also implies that p i < h q (i+1). Because h is serial, we obtain t i < h t (i+1) for i=1,..., k-1, and t k < h t 1. By transitivity we infer t 1 < h t 2 and t 2 < h t 1, which is impossible. The initial assumption is wrong. So G(h) is acyclic. 11 (ii) h CSR pf G(h ) is acyclic Let G(h) be acyclic. So it must have at least one source node. The following topological sort produces a total order < of transactions: a) start with a source node (i.e., a node without incoming edges), b) remove this node and all its outgoing edges, c) iterate a) and b) until all nodes have been added to the sorted list. The total transaction ordering order < preserves the edges in G(h); therefore it yields a serial schedule h for which h C h.

Efficient correctness proof From proof (ii) we conclude that if for a history h, G(h) is acyclic, h is equivalent to every serial history that is a topological order of G(h). Since in general there are several such orders, there may be several serial histories that are equivalent to h. Conflict serializability can be computed in polynomial time in fact in square time because of the simple test on acyclicity. 12

Efficient correctness proof: Illustration 13 Example 5.8: Take earlier history that was view serializable but not conflict serializable: r 1 (h) r 2 (a) r 1 (f) r 2 (e) w 2 (h) r 3 (a) r 1 (i) r 1 (d) w 1 (d) w 1 (f) r 1 (b) r 2 (g) w 1 (h) r 2 (d) w 1 (c) w 2 (c) r 1 (e) w 1 (i) c 1 w 3 (h) c 2 c 3. data elements i h g f e d c b a Legend: Read by t1 Write by t1 Read by t2 Write by t2 Read by t3 Write by t3 time

Efficient correctness proof: Illustration 14 Example 5.8 cont d: Conflict graph: t2 t1 t3 data elements i h g f e d c b a Legend: Read by t1 Write by t1 Read by t2 Write by t2 Read by t3 Write by t3 time

Efficient correctness proof: Illustration 15 Example 5.9: Histories in the booking example: h1: r 1 (B) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 1 (T) c 1 h2: r 2 (B) r 2 (T) r 1 (B) r 1 (T) c 1 w 2 (T) w 2 (B) c 2 h3: r 2 (B) r 2 (T) w 2 (T) r 1 (B) r 1 (T) c 1 w 2 (B) c 2 h4: r 2 (B) r 2 (T) w 2 (T) w 2 (B) r 1 (B) r 1 (T) a 2 c 1 only t1 to consider! h5: r 3 (T) w 3 (T) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 3 (B) w 3 (B) c 3 h6: r 2 (B) r 2 (T) r 3 (T) w 3 (T) r 3 (B) w 3 (B) c 3 w 2 (T) w 2 (B) c 2 h1: t1 t2 h2: t1 t2 h3: t1 t2 h5: t2 t3 h6: t2 t3

Efficient correctness proof: Illustration Example 5.10: 16 r 3 (x) w 3 (x) c 3 h 5 = r 1 (x) w 1 (x) w 1 (y) c 1 r 2 (x) w 2 (y) c 2 G(h 5 ) = t 2 t 1 t 3 Equivalent serial history: t 2,t 1,t 3

Efficient correctness proof: Illustration Example 5.10 modified: z r 3 (x) w 3 (x) / c 3 17 h 5 = r 1 (x) w 1 (x) w 1 (y) c 1 r 2 (x) w 2 (y) c 2 X G(h 5 ) = t 2 t 1 t 3 Equivalent serial history: t 2,t 1,t 3 Note: In general t i t j, t j t k f t i t k.

Efficient correctness proof: Illustration Example 5.11: 18 h 6 = w 1 (x) w 1 (y) c 1 r 2 (x) r 3 (y) w 2 (x) c 2 w 3 (y) c 3 G(h 6 ) = t 1 t 2 t 3 Equivalent serial histories: t 1,t 2,t 3 t 1,t 3,t 2

Serialization by reordering Remember our examples with serialization by reordering of operations. Is there a relationship between CSR and reordering? Formalize: 19 Commutativity rules: C1: r i (x) r j (y) ~ r j (y) r i (x) if i j C2: r i (x) w j (y) ~ w j (y) r i (x) if i j and x y C3: w i (x) w j (y) ~ w j (y) w i (x) if i j and x y Ordering rule: C4: o i (x), p j (y) unordered ~ o i (x) p j (y) if x y or both o and p are reads B.t.w: from C2: r i (x), w j (y) unordered ~ r i (x) w j (y) from C3: w i (x), w j (y) unordered ~ w i (x) w j (y) Weikum, Vossen, 2002

Serialization by reordering Commutativity rules: C1: r i (x) r j (y) ~ r j (y) r i (x) if i j C2: r i (x) w j (y) ~ w j (y) r i (x) if i j and x y C3: w i (x) w j (y) ~ w j (y) w i (x) if i j and x y 20 Ordering rule: C4: o i (x), p j (y) unordered ~ o i (x) p j (y) if x y or both o and p are reads Example for transformations of schedules: s = w 1 (x) r 2 (x) w 1 (y) w 1 (z) r 3 (z) w 2 (y) w 3 (y) w 3 (z) ~ (C2) w 1 (x) w 1 (y) r 2 (x) w 1 (z) w 2 (y) r 3 (z) w 3 (y) w 3 (z) ~ (C2) w 1 (x) w 1 (y) w 1 (z) r 2 (x) w 2 (y) r 3 (z) w 3 (y) w 3 (z) r 2 (x) and r 3 (z) can be delayed = t 1 t 2 t 3 Weikum, Vossen, 2002

Commutativity-based reducibility 21 Definition 5.12 (Commutativity Based Equivalence): Schedules s and s s.t. op(s)=op(s ) are commutativity based equivalent, denoted s ~* s, if s can be transformed into s by applying rules C1, C2, C3, C4 finitely many times. Theorem 5.13: Let s and s be schedules s.t. op(s)=op(s ). Then s c s iff s ~* s. Definition 5.14 (Commutativity Based Reducibility): Schedule s is commutativity-based reducible if there is a serial schedule s s.t. s ~* s. Corollary 5.15: Schedule s is commutativity-based reducible iff s CSR. Weikum, Vossen, 2002

Commutativity-based reducibility 22 Practical value? Scheduler may control the sequence of operations solely based on observing/recognizing conflicts but not on the type of operations involved

23 Order preservation

Order preserving conflict serializability Example 5.16 Take history 24 h = w 1 (x) r 2 (x) c 2 w 3 (y) c 3 w 1 (y) c 1 G(h) = t 3 t 1 t 2 Unpleasant because t 2 was committed by the time t 3 starts.

Order preserving conflict serializability Definition 5.17 History h (or the committed projection h=cp(s) of schedule s) is order preserving conflict serializable if h is conflict equivalent to a serial history h s where t,t' h: if t occurs completely before t' in h 25 Definition 5.18 then the same holds in h s OCSR ::= Set of all order preserving conflict serializable histories. In OCSR histories, temporally non-overlapping transactions cannot commute.

Order preserving conflict serializability Corollary 5.19 OCSR CSR by Def. 5.17. See example 5.16 for proper inclusion : G(h) OCSR, because t 3 t 1 t 2 does not preserve the order of the non-overlapping transactions t 2, t 3. 26

Commit-Order Preservation (1) Definition 5.20 (Commit-Order Preservation ) 27 History h is commit-ordered if: t i,t j h, i j, p op i, q op j : (p,q) conf(h) f c i < h c j Definition 5.21 COCSR ::= Set of all commit-ordered histories. The order of two operations that are in conflict agrees with the order of the commit operations of their respective transactions.

Commit-Order Preservation (2) Theorem 5.22 COCSR CSR Proof: Let h COCSR und (t i,t j ) G(h). (definition COCSR ) f c i < h c j. By induction: for all paths (t 1,,t n ) G(h): c i < h c i+1 for 1 i < n. 28 COCSR CSR: Let h CSR f G(h) cyclic. Let (t 1,,t n,t 1 ) be a cycle. f c 1 < h c 1 (contradiction). CSR COCSR: h = r 1 (x) w 2 (x) c 2 c 1 is CSR but not COCSR.

Commit-Order Preservation (3) 29 Theorem 5.23 COCSR OCSR Example 5.24 h 1 = w 1 (x) r 2 (x) c 2 w 3 (y) c 3 w 1 (y) c 1 h 2 = w 3 (y) c 3 w 1 (x) r 2 (x) c 2 w 1 (y) c 1 h 3 = w 3 (y) c 3 w 1 (x) r 2 (x) w 1 (y) c 1 c 2 CSR, not OCSR, COCSR OCSR, not COCSR COCSR

CSR restrictions 30 Summary CSR OCSR COCSR

31 View serializability

View equivalence Remember: Definition 5.25 Two histories h and h' are view equivalent (h V h'): pf 32 op(h)=op(h') RF(h)=RF(h') x FIN h (x) = FIN h' (x)

View equivalence How to use solely RF: Definition 5.26 (History completion) Let h be a history over T = {t 1,,t n }. We complete h to history ĥ over t {t 0,t }: t 0 is fictitious first transaction initializing all database elements x 1,,x k that are referenced by h: t 0 = w 0 (x 1 ) w 0 (x k ) c 0, t is fictitious last transaction with operations r (x) for all data elements x appearing in h: p h, x h p < h r (x) 33

View serializability Definition 5.27 Two histories h und h' are view equivalent (h V h'): pf 34 RF(ĥ)=RF(ĥ') Definition 5.28 A history h is view serializable if there exists a view equivalent serial history h s : h s serial: CP(h) V h s Corollary 5.29 A history h is view serializable if h s serial: CP(h) v h s pf RF(ĥ)=RF(ĥ s ) Definition 5.30 VSR ::= Set of all view serializable histories.

Proving view serializability (1) 35 Idea: Find a good characterization for RF(h s ). Then, if h is serializable the same characterization should hold for RF(h). Needed: Efficient proof procedure. Standard approach: Try a graph. Remember: RF(h) := {(t i,x,t j ) t j h (x) t i } where t j h (x) t i ( t j reads x from t i ): w i (x)< r h j (x), a i h r j (x) k i,j w i (x) < h w k (x) < h r j (x) a k < h r j (x)

Proving view serializability (2) Base proof again on CP(h): t j h (x) t i : w i (x) < r h j (x), a i h r j (x) t j CP(h) (x) t i : k i,j w i (x) < h w k (x) < h r j (x) a k < h r j (x) w i (x) < CP(h) r j (x) und w / k (x) w i (x) < CP(h) w k (x) < CP(h) r j (x) The reads-from relation must not be broken up by a write operation of some other transaction. All such write operations must appear before the write or after the read. More complicated than conf(h), conflict graph may be insufficient. 36

Proving view serializability 37 Conflict graph is insufficient!. Example 5.31 Take h 12 = w 1 (x) w 2 (x) w 2 (y) c 2 w 1 (y) c 1 w 3 (x) w 3 (y) c 3 G(h 12 ) = t 1 t 2 t 3 Not conflict serializable! But view serializable: t 1 t 2 t 3 or t 2 t 1 t 3

Sichtserialisierbarkeit Da in CSR für alle i, jw i (x) w j (x) gilt und beide Satz 5.32 CSRHistorien VSR CP(h) und h s unverträgliche Beweis: Operationen in der gleichen Reihenfolge ordnen, h CSR f h s sind seriell ihre CP(h) letzten C Schreiboperationen h s identisch. Zu zeigen: CP(h) V h s. t i > CP(h) (x) t j Die Echtheit der f w j (x) < CP(h) r i (x) und Teilmengenbeziehung w / k (x) w j (x) < CP(h) w k (x) < CP(h) r i (x) folgt aus Historie h 12. f (CSR) w j (x) < hs r i (x) und w / k (x) w j (x) < hs w k (x) < hs r i (x) Zwei Historien h und h' sind f sichtäquivalent t i > hs (x) t j (h V h'): pf op(h)=op(h') t i,t j T x a i,a j h, t i > h (x) t j pf t i > h' (x) t j x FIN h (x) = FIN h' (x) 38

Nachweis der Serialisierbarkeit (3) Zur Erinnerung: Die liest-von-beziehung darf nicht durch die Schreibaktion einer anderen Transaktion aufgebrochen werden. Alle derartigen Schreiboperationen müssen entweder vor dem Schreiben oder nach dem Lesen auftauchen. Um diesen Sachverhalt erfassen zu können, benötigen wir einen verallgemeinerten Graphenbegriff. 39

Nachweis der Serialisierbarkeit (4) Definition 5.33 (Polygraph) Ein Polygraph ist ein Tripel P = (V,E,C) mit (V,E) ist ein gerichteter Graph und C V V V mit (u,v,w) C u v, u w, v w, (w,u) E. 40

Veranschaulichung (V,E) ist ein gerichteter Graph und C V V V mit (u,v,w) C u v, u w, v w, (w,u) E. Darstellung von (u,v,w) als zwei gerichtete Kanten (Bipfad) (u,v),(v,w), die über Kreissegment verbunden sind. 41 vereinfacht

Nachweis der Serialisierbarkeit (5) Definition 5.34 (kompatibel) Sei P = (V,E,C) ein Polygraph und G = (V, E') ein Graph mit den selben Knoten. G ist kompatibel zu P, wenn E' eine minimale Menge von Kanten mit den folgenden Eigenschaften ist: E E' G enthält mindestens alle Kanten aus E. (u,v,w) C: (u,v,w) C f ( (u,v) E' (v,w) E' ) (u,v,w) C: (u,v) E' f (v,w) E', (u,v) E' f (v,w) E' Jeder Bipfad aus P ist in G durch genau eine Kante repräsentiert 42 Daher: C steht für Choice Ein Polygraph kann als Familie D(V,E,C) von gerichteten Graphen (V,E') gedeutet werden.

Beispiel zur Kompatibilität 43

Nachweis der Serialisierbarkeit (6) Definition 5.35 (P(h)) Gegeben sei eine Historie h über der Transaktionsmenge T = {t 1,,t n }. Wir definieren P(h) = (V,E,C) mit V = T {t 0, t } E = { (t j,t i ) t i > ĥ (x) t j } C = { ((t i,t k,t j )) t i > ĥ (x) t j, w k (x) h } mit i j k 44 w j (x) < r i (x) und / w k (x) w j (x) < w k (x) < r i (x) Eine Kante (t j,t i ) drückt aus, dass t j vor t i stattfinden muss. Eine Choice (t i, t k, t j ) drückt aus, dass t k entweder nach t i oder vor t j stattfinden muss.

Nachweis der Serialisierbarkeit (7) Beispiel: h 1 = w 0 (x) w 0 (y) r 1 (x) w 2 (y) w 1 (y) r 3 (y) w 2 (x) r (x) r (y) 45 t 2 t 0 t t1 t 3 Anmerkung: Die trivialen Bipfade mit t k =t 0 sind nicht dargestellt.

Nachweis der Serialisierbarkeit (8) Definition 5.36 (azyklischer Polygraph) Ein Polygraph P = (V,E,C) heißt azyklisch, falls mindestens ein azyklischer gerichteter Graph (V,E') in D(V,E,C) existiert. 46 Indiz für Komplexität!

Nachweis der Serialisierbarkeit (9) Voriges Beispiel: Zwei gerichtete Graphen aus der Familie 47 t 2 t 0 t zyklenbehaftet zyklenfrei t1 t 3 t 2 t 0 t t1 t 3

Nachweis der Serialisierbarkeit (10) Lemma 5.37 Seien h und h' zwei Historien. Dann gilt: h V h' pf P(h) = P(h'). Intuitiver Beweis: Beide setzen gleiche Operationen und gleiche Relation RF voraus. 48 Lemma 5.38 Sei h Historie. Dann: h seriell pf P(h) azyklisch.

Nachweis der Serialisierbarkeit (11) Beweis zu 5.38: Konstruiere G = (V,E') kompatibel zu P: Knoten V = T {t 0, t } übernehmen Kanten: (t,t') E übernehmen f t < t' (sonst könnte t' nicht von t lesen) Choices: (t,t',t'') C (d.h. Operation p von Transaktion t' schreibt Element, das t von t'' liest: p vor dem Schreiben von t'': t' vor t'': (t',t'') E' p nach dem Lesen von t: t' nach t: (t,t') E' Somit E' ={(t, t') t, t' V t < t'} (V,E') azyklisch, weil h seriell 49

Nachweis der Serialisierbarkeit (12) Satz 5.39 50 h sichtserialisierbar pf P(h) azyklisch (Analogon zum Serialisierbarkeitstheorem für Konfliktserialisierbarkeit.) Beweis: h sichtserialisierbar pf P(h) azyklisch f h s seriell h V h s P(h) = P(h s ) nach 5.37 P(h s ) azyklisch nach 5.38 f P(h) azyklisch

Nachweis der Serialisierbarkeit (13) 51 Beweis: h sichtserialisierbar pf P(h) azyklisch Sei G kompatibler Graph. Sei h s eine topologische Ordnung von G. Zu zeigen: h s V h. Widerspruchsbeweis: RF sei verschieden, d.h. es gibt r t (x) mit r t (x) h w i (x), r t (x) hs w j (x) f (t, j, i) P(h) f (i, t) G und damit i<t h s außerdem: i<j h s und damit (i, j) G Widerspruch zu (t, j, i)

Entscheidbarkeit der Serialisierbarkeit Zur Erinnerung: Das Entscheidungsproblem, ob eine Historie konfliktserialisierbar ist oder nicht, kann in polynomieller Zeit berechnet werden. Man konnte bisher nur zeigen, dass das entsprechende Entscheidungsproblem für Sichtserialisierbarkeit NPvollständig ist. Siehe dazu C.H.Papadimitriou: The Serializability of Concurrent Database Updates, JACM 46(4), 631ff, Oct. 79. 52

53 Final-State Serializability (für Interessierte)

Final-state equivalence Remember: Definition 5.40 Two histories h and h' are final-state equivalent (h F h') pf op(h)=op(h') x D FIN h (x) = FIN h' (x) (D database) 54 Compare to: Two histories h and h' are view equivalent (h V h'): pf op(h)=op(h') RF(h)=RF(h') x D FIN h (x) = FIN h' (x) (D database)

Herbrand-Semantik von Historien (1) Consequence: Unlike before, there is no defined relationship to start from. All we can do is take a snapshot and characterize the current state. The characterization should take the past actions into account: semantic characterization of a history. Approach to semantics in mathematical logic: Construct a domain as a set of (syntactic) terms, each for a specific individual (Herbrand domain). 55

Herbrand-Semantik von Historien (2) Interpretation of j th step, p j, of t: If p j =r(x), then interpretation is assignment v j := x to local variable v j If p j =w(x) then interpretation is assignment x := f j (v j1,..., v jk ) with unknown function f j and j 1,..., j k denoting t s prior read steps. Beispiel t = w(u) r(x) w(v) r(y) w(w) Die Werte der geschriebenen Elemente sind abhängig von allen vorher gelesenen Elementen. Also: u = f 1 () v = f 2 (x) w = f 3 (x,y) 56

Herbrand-Semantik von Historien (3) Definition 5.41 (Herbrand- Semantik) Sei h eine Historie. Die Herbrand-Semantik H h der Schritte r i (x),w i (x) op(h) wird rekursiv wie folgt definiert: H h (r i (x)) := H h (w j (x)) wobei r i (x) > h w j (x) (also j i) H h (w i (x)) := f i,x (H h (r i (y 1 )),,H h (r i (y m ))), wobei Wir machen also Gebrauch von der liest von-beziehung, aber nur zur Berechnung der formalen Semantik! die r i (y j )(1 j m) sämtliche Leseschritte von t i sind, welche in h vor w i (x) stehen, und f i,x ein uninterpretiertes m-stelliges Funktionssymbol ist. Anmerkung: Wir benötigen initiales Schreiben. Daher vervollständigen wir die Historie wie bei Sicht- Serialisierbarkeit um Transaktionen t 0,t. 57

Herbrand-Semantik von Historien (4) Beispiel 5.42: Für die Historie 58 h =w 0 (x) w 0 (y) c 0 r 1 (x) r 2 (y) w 2 (x) w 1 (y) c 2 c 1 gilt für H h : H h (w 0 (x)) = f 0,x () H h (w 0 (y)) = f 0,y () H h (r 1 (x)) = f 0,x () H h (r 2 (y)) = f 0,y () H h (w 2 (x)) = f 2,x (f 0,y ()) H h (w 1 (y)) = f 1,y (f 0,x ())

Herbrand-Semantik von Historien (5) Definition 5.43 (Herbrand-Universum) Das Herbrand-Universum HU für Transaktionen t i, i > 0, ist die kleinste Menge von Symbolen, für die gilt: f 0,x () HU für jedes x D (D Datenbasis), wobei f 0,x ein 0- stelliges Funktionssymbol ist. f i,x (v 1,,v m ) HU (f i,x ein m-stelliges Funktionssymbol ) falls w i (x) op(t i ), mit m = r i (y) y D r i (y) < t i v i { r i (y) y D r i (y) < t i w i (x) w i (x) } HU, 1 i m 59

Herbrand-Semantik von Historien (6) Definition 5.44 (Semantik einer Historie) Die Semantik einer Historie h ist die Abbildung definiert durch H(h) :D HU H(h)(x) := H h (FIN s (x)) (x D). Die Semantik eines Schedules ist also die Menge derjenigen Werte, die von nicht-abgebrochenen Transaktionen als letzte geschrieben werden. 60

Herbrand-Semantik von Historien (7) Beispiel 5.45 Für die Historie Beispiel 5.42 h =w 0 (x) w 0 (y) c 0 r 1 (x) r 2 (y) w 2 (x) w 1 (y) c 2 c 1 gilt für H h H h (w 0 (x)) = f 0,x () H h (w 0 (y)) = f 0,y () H h (r 1 (x)) = f 0,x () H h (r 2 (y)) = f 0,y () H h (w 2 (x)) = f 2,x (f 0,y ()) H h (w 1 (y)) = f 1,y (f 0,x ()) und somit für H(h) H(h)(x) = H h (w 2 (x)) = f 2,x (f 0,y ()) H(h)(y) = H h (w 1 (y)) = f 1,y (f 0,x ()) 61

Final-State-Äquivalenz (1) Definition 5.46 (final-state-äquivalent) 62 Zwei Historien h und h' heißen final-state-äquivalent (h F h') pf op(h) = op(h') H(h) = H(h') Zwei Schedules sind also final-state-äquivalent gdw. sie beide die gleichen Operationen umfassen und den gleichen Endzustand erzeugen.

Final-State-Äquivalenz (2) Beispiel 5.47 Gegeben seien die folgenden Schedules: 63 h = r 1 (x) r 2 (y) w 1 (y) r 3 (z) w 3 (z) r 2 (x) w 2 (z) w 1 (x) c 1 c 2 c 3 h'= r 3 (z) w 3 (z) c 3 r 2 (y) r 2 (x) w 2 (z) c 2 r 1 (x) w 1 (y) w 1 (x) c 1 Dann gilt op(h) = op(h') und H(h)(x) = H h (w 1 (x)) = f 1,x (f 0,x ()) =H h' (w 1 (x)) = H(h')(x) H(h)(y) = H h (w 1 (y)) = f 1,y (f 0,x ()) =H h' (w 1 (y)) = H(h')(y) H(h)(z) = H h (w 2 (z)) = f 2,z (f 0,x (), f 0,y ()) =H h' (w 2 (z)) = H(h')(z) also insgesamt h F h'.

Final-State-Äquivalenz (3) Beispiel 5.48 Gegeben seien die folgenden Schedules: 64 h = r 1 (x) r 2 (y) w 1 (y) w 2 (y) c 1 c 2 h'= r 1 (x) w 1 (y) c 1 r 2 (y) w 2 (y) c 2 Dann gilt op(h) = op(h') und H(h)(y) = H h (w 2 (y)) = f 2,y (f 0,y ()) H(h')(y) = H h' (w 2 (y)) = f 2,y (H h' (r 2 (y))) = f 2,y (H h' (w 1 (y))) =f 2,y (f 1,y (f 0,x ())) also insgesamt h F h'. Dieses Beispiel zeigt: Nicht allein das letzte Schreiben ist entscheidend, sondern auch die Vorgeschichte.

Final-State-Äquivalenz (4) Aufgabe: Erfassen der einflussreichen Vorgeschichte. Definition 5.49 Eine Operation p ist in h direkt nützlich für eine Operation q (p a h q), falls q ist Leseoperation und liest von fremdem Schreiber p q > h p q ist Schreiboperation und p geht als eigener Leser voran p = r i (x), q = w i (y) und p < h q. a* (nützlich) bezeichne die reflexive, transitive Hülle von a. 65

Final-State-Äquivalenz (5) Definition 5.50 66 Eine Operation p heißt lebendig in h pf q t p a* q d.h., ihr Ergebnis trägt zum Endergebnis bei. Sie heißt tot sonst.

Final-State-Äquivalenz (6) Grundgedanke: Von der Liest-von-Relation interessieren nur die Operationen mit einem Beitrag zum Endergebnis. Definition 5.51 Die Lebendig-Liest-von-Relation (live-reads-from) vonh ist definiert durch LRF(h) := {(t i,x,t j ) r j (x) lebendig, r j (x) > h w i (x)} Anmerkung: Alle (Lese-)Operationen aus t gelten als lebendig. (Also (t i,x,t ) immer in LRF). 67

Final-State-Äquivalenz (8) Beispiel 5.52 Nach vervollständigtem Beispiel 5.48 68 h = w 0 (x) w 0 (y) c 0 r 1 (x) r 2 (y) w 1 (y) w 2 (y) c 1 c 2 r (x) r (y) c h'= w 0 (x) w 0 (y) c 0 r 1 (x) w 1 (y) c 1 r 2 (y) w 2 (y) c 2 r (x) r (y) c Dann gilt: RF(h) = {(t 0,x,t 1 ), (t 0,y,t 2 ), (t 2,x,t ), (t 2,y,t )} RF(h') = {(t 0,x,t 1 ), (t 1,y,t 2 ), (t 2,x,t ), (t 2,y,t )} In h und h': In h: In h': w 0 (x) a r 1 (x) a w 1 (y) f w 0 (x) a* w 1 (y) r 2 (y) a w 2 (y) a r (y) f r 2 (y) a* r (y) w 0 (y) a h r 2 (y) f w 0 (y) a h * r (y) w 1 (y) a h' r 2 (y) f w 1 (y) a h' * r (y), r 1 (x) a h' * r (y), w 0 (x) a h' * r (y)

Final-State-Äquivalenz (8) RF(h) = {(t 0,x,t 1 ), (t 0,y,t 2 ), (t 2,x,t ), (t 2,y,t )} RF(h') = {(t 0,x,t 1 ), (t 1,y,t 2 ), (t 2,x,t ), (t 2,y,t )} 69 In h und h': In h: In h': w 0 (x) a r 1 (x) a w 1 (y) f w 0 (x) a* w 1 (y) r 2 (y) a w 2 (y) a r (y) f r 2 (y) a* r (y) w 0 (y) a h r 2 (y) f w 0 (y) a h * r (y) w 1 (y) a h' r 2 (y) f w 1 (y) a h' * r (y), r 1 (x) a h' * r (y), w 0 (x) a h' * r (y) LRF wird aus RF gewonnen, indem für jedes Tupel (t j,x,t i ) betrachtet wird, ob r j (x) lebendig, d.h. nützlich für eine Operation in t, ist. Also: LRF(h) = {(t 0,y,t 2 ), (t 0,x,t ), (t 2,y,t )} LRF(h') = {(t 0,x,t 1 ), (t 1,y,t 2 ), (t 2,x,t ), (t 2,y,t )}

Final-State-Äquivalenz (9) Die obigen Überlegungen legen den folgenden Satz nahe: Satz 5.53 Seien h und h' zwei Historien mit op(h) = op(h'). Dann gilt: h F h'pf LRF(h) =LRF(h') 70 Wieder gesucht: Graphbasierte Lösung Graph muss auf LRF aufbauen.

Final-State-Äquivalenz (10) Definition 5.54 (Schrittgraph) Der Schrittgraph D(h) = (V,E) einer Historie h ist definiert durch V := op(h) E :={ (p,q) p a h q } Der reduzierte Schrittgraph D 1 (h) entsteht aus D(h) durch Weglassen aller toten Knoten und deren inzidenten Kanten. Beweis-Skizze für Äquivalenz: Zeige h F h'pf D 1 (h) = D 1 (h') D 1 (h) = D 1 (h') pf LRF(h) = LRF(h') 71

Final-State-Äquivalenz (11) Beispiel 5.55 Betrachte die Schedules aus Beispiel 5.47 (op(h) = op(h'), h' seriell): 72 h = w 0 (x,y,z) c 0 r 1 (x) r 2 (y) w 1 (y) r 3 (z) w 3 (z) r 2 (x) w 2 (z) w 1 (x) c 1 c 2 c 3 h' = w 0 (x,y,z) c 0 r 3 (z) w 3 (z) c 3 r 2 (y) r 2 (x) w 2 (z) c 2 r 1 (x) w 1 (y) w 1 (x) c 1 Für diese hatten wir anhand gleicher Endzustände bereits gezeigt: h F h'. LRF(h) = {(t 0,x,t 1 ),(t 0,x,t 2 ),(t 0,y,t 2 ),(t 1,x,t ),(t 1,y,t ),(t 2,z,t )} = LRF(h')

Final-State-Äquivalenz (12) h = w 0 (x,y,z) c 0 r 1 (x) r 2 (y) w 1 (y) r 3 (z) w 3 (z) r 2 (x) w 2 (z) w 1 (x) c 1 c 2 c 3 73 h' = w 0 (x,y,z) c 0 r 3 (z) w 3 (z) c 3 r 2 (y) r 2 (x) w 2 (z) c 2 r 1 (x) w 1 (y) w 1 (x) c 1 w 0 (x) w 0 (y) w 0 (z) r 1 (x) r 2 (y) r 3 (z) w 0 (x) w 0 (y) w 0 (z) r 2 (x) r 2 (y) r 3 (z) w 1 (y) w 3 (z) r 1 (x) w 1 (y) w 3 (z) r 2 (x) w 2 (z) w 1 (x) w 2 (z) w 1 (x) r (x) r (y) r (z) r (x) r (y) r (z) h und h' final-state-äquivalent

Final-State-Äquivalenz (13) 74 Beispiel 5.56 Betrachte die Historien aus Beispiel 5.52 (h' seriell): h = w 0 (x) w 0 (y) c 0 r 1 (x) r 2 (y) w 1 (y) w 2 (y) c 1 c 2 r (x) r (y) c h'= w 0 (x) w 0 (y) c 0 r 1 (x) w 1 (y) c 1 r 2 (y) w 2 (y) c 2 r (x) r (y) c h und h' sind nicht final-state-äquivalent: LRF(h) = {(t 0,y,t 2 ), (t 0,x,t ), (t 2,y,t )} LRF(h') = {(t 0,x,t 1 ), (t 1,y,t 2 ), (t 2,x,t ), (t 2,y,t )}

Final-State-Äquivalenz (14) h = w 0 (x) w 0 (y) c 0 r 1 (x) r 2 (y) w 1 (y) w 2 (y) c 1 c 2 r (x) r (y) c 75 h'= w 0 (x) w 0 (y) c 0 r 1 (x) w 1 (y) c 1 r 2 (y) w 2 (y) c 2 r (x) r (y) c w 0 (x) w 0 (y) w 0 (x) w 0 (y) r 2 (y) r 1 (x) w 1 (y) r 1 (x) w 1 (y) r 2 (y) w 2 (y) w 2 (y) r (x) r (y) r (x) r (y) h und h' nicht final-state-äquivalent

Final-State-Serialisierbarkeit Korollar 5.57 Die Final-State-Äquivalenz zweier Schedules h und h' kann in polynomieller Zeit entschieden werden. Definition 5.58 (Final-State-Serialisierbar) Eine Historie h heißt final-state-serialisierbar, falls es eine seriellen Historie h' gibt, mit h F h'. FSR = Menge aller final-state-serialisierbaren Historien. Test auf Final-State-Serialisierbarkeit: Teste für alle (seriellen) Permutationen h' von h: h F h'. Vermutung: Exponentielle Komplexität. Vermutung gestützt auf gleichartige Komplexität der bereits eingeschränkten Sichtserialisierbarkeit. 76

77 Commit Serializability

Prefix commit closure (1) 78 Remember: A schedule s is X-serializable if there exists a serial history h s s.t. h s serial: CP(s) X h s. Problem: The outcome of active transactions is unknown. They may abort at any time. In this case: The abort should not invalidate the correctness of already committed transactions. Formally: All committed prefixes of correct schedules are correct.

Prefix commit closure (2) Definition 5.59: Prefix commit closure class of schedules: s: s X-serializable f s' s: h s serial: CP(s') X h s. Importance: The complete past is correct! The schedule can progress without any concern for the past! Definition 5.60 A schedule s is commit serializable (CM) if the prefix commit closure property holds for s. Special classes: CMVSR = commit view serializable CMCSR = commit conflict serializable 79

Prefix commit closure (3) 80 Theorem 5.61 Membership in class CSR is prefix commit closed: CMCSR = CSR Membership in class VSR (set of all view serializable histories) is generally not prefix commit closed. CMVSR VSR Remark CMVSR needs a stronger definition: h' h h s serial: CP(h') V h s (so far only: h s serial: CP(h) V h s )

Commit Serializability (1) Example 5.62 81 h 12 = w 1 (x) w 2 (x) w 2 (y) c 2 w 1 (y) c 1 w 3 (x) w 3 (y) c 3 CP(h 12 ) = h 12. View equivalences (solely writes!) h 12 V t 1 t 2 t 3 and h 12 V t 2 t 1 t 3 However, prefix h' 12 = w 1 (x) w 2 (x) w 2 (y) c 2 w 1 (y) c 1 is equivalent neither to t 1 t 2 nor to t 2 t 1 (in both cases the final state differs from that for h' 12 ). h' 12 is not in CMVSR.

Commit Serializability (2) 82 Theorem 5.63 CMCSR CMVSR

Commit Serializability (3) All Schedules (Full) 83 CMVSR (CM)CSR CMFSR OCSR COCSR Serial Schedules VSR FSR