5 Mehrversionen-Concurrency Control

Größe: px
Ab Seite anzeigen:

Download "5 Mehrversionen-Concurrency Control"

Transkript

1 5 Mehrversionen-Concurrency Control 5.1 Motivation Bislang sind wir davon ausgegangen, dass jedes Datenobjekt genau einmal im Data Manager zur Verfügung steht, so dass sich parallele Transaktionen bei im Konflikt stehenden Operationen gegenseitig behindern, Schreiboperationen die bisherigen Zustände von Objekten überschreiben und die liest-von-relation zwischen verschiedenen Transaktionen die Isolationsbedingung verletzen kann. Jetzt untersuchen wir, wie sich das Bild ändert, wenn wir mehrere Kopien von Objekten vorhalten. Dies erlaubt es z.b., die alte Version eines Objektes bei Schreiboperationen aufzuheben, mindesten solange bis die ändernde Transaktion ihre neue Kopie (durch ihr commit) freigegeben hat. Allgemeiner können verschiedene Transaktionen verschiedene Versionen desselben Datenobjektes gleichzeitig bearbeiten. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-1

2 Übersicht Wir untersuchen die sog. Mehrversionen-Concurrency Control (Multi-Version CC, MVCC) bzgl. Serialisierbarkeit, Scheduling-Algorithmen, Protokollen. Wir werden später sehen, dass Transaktionssysteme wegen der Fehlerbehandlung (Recovery) oft ohnehin Versionen von Datenobjekten führen ( Before oder After Images oder beide), so dass auch hier eine enge Verknüpfung mit dieser TXS-Komponente vorliegt. Die Speicherung mehrerer Versionen des gleichen Objektes erhöht den Speicherplatzbedarf deutlich. In der Theorie werden wir dies zunächst unberücksichtigt lassen, dann aber untersuchen, welche Auswirkungen es hat, wenn wir die Zahl der verfügbaren Versionen einschränken. Wir nehmen hier an, dass die Versionierung transparent ist, d.h. dass Anwendungen nichts davon wissen, dass u.u. mehrere Versionen der Objekte existieren. (Im Unterschied zu vielen anderen Szenarios, in denen die Anwendungssicht die Versionierung nutzt, z.b. zum Configuration Management). Wir werden schrittweise unsere bisherigen Definitionen und Ergebnisse erweitern. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-2

3 5.2 Mehrversionen-Schedules Zunächst beobachten wir den Effekt der Versionierung anhand eines Beispiels: Beispiel 5-1: Wir betrachten die History s = r 1 (x)w 1 (x)r 2 (x)w 2 (y)r 1 (y)w 1 (z)c 1 c 2. Offenbar ist s / CSR, da es einen zyklischen Konflikt zwischen t 1 unf t 2 gibt. Intuitiv: Objekt y wurden bereits von t 2 überschrieben, als t 1 im Schritt r 1 (y) lesend zugriff, mit anderen Worten, der Schritt r 1 (y) kommt zu spät als dass der Schedule, der bereits einen Konflikt zwischen t 1 unf t 2 (auf x) ergeben hat, noch korrekt sein könnte. Wenn nun aber zum Zeitpunkt des Lesezugriffs von t 1 auf y dessen alte Version, in diesem Fall also der Ausgangszustand von y, noch verfügbar wäre, dann könnte t 1 diesen lesen, was einen Schedule ergäbe, der dem folgenden äquivalent wäre: s = r 1 (x)w 1 (x)r 1 (y)r 2 (x)w 2 (y)w 1 (z)c 1 c 2. Dieser Schedule ist serialisierbar: s c t 1 t 2 und damit s CSR. Wenn ein TXS beim Schreiben von Objekten keinen Update-in-Place durchführt, sondern eine neue Version (Kopie) erzeugt, dann muss offenbar der Scheduler bei jedem Datenzugriff entscheiden, welche Version eine Transaktion nutzen soll! c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-3

4 Formalisierung Leseschritte r(x) lesen eine existierende Version des Objektes x, Schreibschritte w(x) erzeugen immer eine neue Version von x. Definition 5-1: (Versionierungsfunktion) Sei s eine History mit Initialisierungstransaktion t 0 und abschließender Lesetransaktion t. Eine Versionierungsfunktion h für s ist eine Funktion h, die jedem Leseschritt von s einen Schreibschritt auf demselben Objekt in s zuordnet. h(r i (x)) bezeichnet die Version von x, die dem Leseschritt r i (x) durch h in s zugeordnet wird. Die Version, die in einem Schreibschritt w j (x) erzeugt wird, bezeichnen wir mit x j. Folglich können wir Schreibschritte mit w j (x j ) und Leseschritte mit r i (x j ) qualifizieren, wenn dem Leseschritt r i (x) durch h der Schreibschritt w j (x j ) zugeordnet wird. Wir schreiben dann: h(r i (x)) = r i (x j ), und zur Vereinfachung der Notation auch h(w j (x)) = w j (x j ). Die Versionierungsfunktion übersetzt also jede Schreiboperation in einen Versions- Erzeugungsschritt und jede Leseoperation in einen Versions-Leseschritt. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-4

5 Ein Mehrversionen-Schedule ist nun einfach ein (bisher bekannter) Schedule mit einer Versionierungsfunktion: Definition 5-2: (Mehrversionen-Schedule) Sei T = {t 1,..., t n } eine (endliche) Menge von Transaktionen. 1. Eine Mehrversionen-History (oder ein vollständiger Mehrversionen-Schedule) für T ist ein Paar m = (op(m), < m ), mit < m einer Obermenge der Menge aller möglichen Transaktionsordnungen und (a) op(m) = h( n i=1 op(t i)) für eine Versionierungsfunktion h (wir nehmen an, dass h kanonisch von einzelnen Operationen auf Operationsmengen erweitert wurde), (b) für alle t T und alle Operationen p, q op(t) gilt: p < t q h(p) < m h(q), (c) wenn h(r j (x)) = r j (x i ), i j, und c j in m, dann c i < m c j. 2. Ein Mehrversionen-Schedule ist ein Präfix einer Mehrversionen-History. Bemerkung: Die Bedingung 1c stellt sicher, dass CP(m), die committed projection von m, vollständig ist. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-5

6 Beispiel 5-2: Das folgende ist eine Mehrversionen-History, in der die Versionierungsfunktion h dem Schritt r 1 (y) die Version y 0 (den Initialzustand, der durch die hier nicht gezeigte Transaktion t 0 geschrieben wurde) zuordnet: m = r 1 (x 0 )w 1 (x 1 )r 2 (x 1 )w 2 (y 2 )r 1 (y 0 )w 1 (z 1 )c 1 c 2. Herkömmliche Schedules sind nun ein Spezialfall, in dem jedem Leseschritt die letzte vorangegangenen Schreiboperation zugeordnet wird, in dem es also in anderen Worten nur eine Version jedes Datenobjektes gibt: Definition 5-3: (Einversionen-Schedule) Ein Mehrversionen-Schedule heißt Einversionen- Schedule, wenn die Versionierungsfunktion jedem Leseschritt die letzte vorangegangene Schreiboperation zuordnet. Beispiel 5-3: Ein Beispiel für einen Einversionen-Schedule ist etwa m = r 1 (x 0 )w 1 (x 1 )r 2 (x 1 )w 2 (y 2 )r 1 (y 2 )w 1 (z 1 )c 1 c 2. Der einzige Unterschied zum vorherigen Beispiel ist die Zuordnung h(r 1 (y)) = w 2 (y 2 ). Im folgenden werden wir mitunter Einversionen-Schedules im bisherigen Sinne wie auch solche im eben definierten Sinne verwenden. Wir werden die erstgenannten weiterhin mit s, s,... und die letzteren mit m, m,... bezeichnen. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-6

7 5.3 Mehrversionen-Serialisierbarkeit Versionierung soll hier transparent sein, daher muss ein korrekter MV-Schedule äquivalent zu einem gewöhnlichen seriellen Schedule ohne Versionen sein! Mehrversionen-View-Serialisierbarkeit Die Konflikt-Äquivalenz im bekannten Sinne ist nicht adäquat, wie das folgende Beispiel zeigt: Beispiel 5-4: Wir betrachten den seriellen (Einversionen-) Schedule s = w 0 (x)c 0 w 1 (x)c 1 r 2 (x)w 2 (y)c 2. Ein MV-Schedule mit der gleichen Schritt-Folge ist etwa m = w 0 (x 0 )c 0 w 1 (x 1 )c 1 r 2 (x 0 )w 2 (y 2 )c 2. Während s drei Konflikte (w 0 (x) w 1 (x), w 0 (x) r 2 (x) und w 1 (x) r 2 (x)) enthält, gibt es in m nur noch einen Konflikt (w 0 (x 0 ) r 2 (x 0 )), da t 1 nun eine neue Version von x schreibt. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-7

8 Man kann Konflikt-Äquivalenz so definieren (s. unten), dass ein MV-Schedule m äquivelent zu einem EV-Schedule s ist, wenn alle Konfliktpaare in m in der gleichen Reihenfolge wie in s auftreten (so dass hier beide Schedules äquivalent wären). Es bleibt jedoch das Problem bestehen, dass beide unterschiedliche liest-von-relationen haben, was intuitiv unerwünscht ist: in s liest t 2 x von t 1, in m dagegen von t 0. Wir würden also erwarten, dass i.a. t 2 in beiden Schedules verschiedene Werte von x liest! Das Beispiel zeigt, dass View-Serialisierbarkeit in diesem Kontext angestrebt werden sollte, dazu sind jedoch Anpassungen erforderlich. Definition 5-4: (Liest-von-Relation) Seien m ein MV-Schedule und t i, t j trans(m). Die liest-von-relation von m ist definiert durch RF(m) := {(t i, x, t j ) r j (x i ) op(m)}. Hierauf basierend definieren wir wieder wie gewohnt: Definition 5-5: (View-Äquivalenz) Seien m und m MV-Schedules mit trans(m ) = trans(m). Die Schedules m und m sind view-äquivalent, m v m, wenn RF(m) = RF(m ). c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-8

9 Beispiel 5-5: Seien Es gilt m v m. Anmerkungen m = w 0 (x 0 )w 0 (y 0 )c 0 r 3 (x 0 )w 3 (x 3 )c 3 w 1 (x 1 )c 1 r 2 (x 1 )w 2 (y 2 )c 2 m = w 0 (x 0 )w 0 (y 0 )c 0 w 1 (x 1 )c 1 r 2 (x 1 )r 3 (x 0 )w 2 (y 2 )w 3 (x 3 )c 3 c 2 Die Definition der Liest-von-Relation ist nun wesentlich einfacher als im Kapitel 3. Im Unterschied zur Definition der View-Serialisierbarkeit in Kapitel 3 muss hier nicht betrachtet werden, ob von Schreiboperationen gelesen wird oder nicht, da immer neue Versionen erzeugt werden. Dies ändert sich, wenn wir nur beschränkt viele Versionen zulassen. Es genügt nicht, dass ein MV-Schedule view-äquivalent zu einem seriellen MV-Schedule ist, da auch dieser nicht zwingend eine zu einem seriellen EV-Schedule kompatible Liest-von-Relation haben muss. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-9

10 Beispiel 5-6: Sei m = w 0 (x 0 )w 0 (y 0 )c 0 r 1 (x 0 )r 1 (y 0 )w 1 (x 1 )w 1 (y 1 )c 1 r 2 (x 0 )r 2 (y 1 )c 2. Wenn jeder Leseschritt r i (x j ) durch r i (x) und jeder Schreibschritt w i (x i ) durch w i (x) ersetzt wird, so entsteht der folgende EV-Schedule: s = w 0 (x)w 0 (y)c 0 r 1 (x)r 1 (y)w 1 (x)w 1 (y)c 1 r 2 (x)r 2 (y)c 2. Beide Schedules sind seriell, jedoch liest t 2 in s das Objekt x von t 1, in m dagegen von t 0. Bei der Definition von View-Serialisierbarkeit von MV-Schedules verwenden wir die folgende Definition 5-6: (Standard Mehrversionen-Schedule) Sei m ein MV-Schedule. 1. Die Standard-liest-von-Relation von m ist definiert durch SRF(m) := {(t i, x, t j ) r j (x i ) op(m) x i ist die vor r j (x i ) zuletzt geschriebene Version von x} 2. m heißt Standard-Mehrversionen-Schedule (SMV-Schedule), wenn RF(m) = SRF(m). Schedule m im Beispiel oben ist offensichtlich kein SMV-Schedule! c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-10

11 View-Serialisierbarkeit SMV-Schedules haben nun Liest-von-Relationen, die mit denen von seriellen EV-Schedules kompatibel sind. Daher folgende Definition 5-7: (Mehrversionen-View-Serialisierbarkeit I) Sei m eine MV-History. m heisst mehrversionen-view-serialisierbar, wenn es eine serielle SMV-History m mit der gleichen Transaktionenmenge gibt, so dass m v m. Mit MVSR bezeichnen wir die Klasse aller mehrversionen-view-serialisierbaren Histories. Für eine History m MVSR gibt es also stets eine serielle EV-History s mit m v s, wobei v nun wohldefiniert ist. Beispiel 5-7: Seien m = w 0 (x 0 )w 0 (y 0 )c 0 w 1 (x 1 )c 1 r 2 (x 1 )r 3 (x 0 )w 3 (x 3 )c 3 w 2 (y 2 )c 2 m = w 0 (x 0 )w 0 (y 0 )c 0 r 3 (x 0 )w 3 (x 3 )c 3 w 1 (x 1 )c 1 w 2 (y 2 )c 2 Es gilt m v m und m ist view-äquivalent zur seriellen EV-History s = w 0 (x)w 0 (y)c 0 r 3 (x)w 3 (x)c 3 w 1 (x)c 1 w 2 (y)c 2 Die vorige Definition kann auf beliebige Schedules verallgemeinert werden: c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-11

12 Definition 5-8: (Mehrversionen-View-Serialisierbarkeit II) Eine MV-History m ist mehrversionen-view-serialisierbar, wenn es eine serielle SMV-History m gibt, so dass CP(m) v m. Eine MV-History verhält sich wie eine eine serielle EV-History, genau dann, wenn sie in MVSR liegt: Satz 5-1: Seien m eine MV-History und s eine serielle EV-History mit der gleichen Transaktionenmenge. Es gilt: RF(CP(m)) = RF(s) m MVSR. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-12

13 Zur Komplexität Wir erwarten nicht, dass der Test auf Mitgliedschaft in MVSR effizienter ist, als der für VSR, denn es gilt: Satz 5-2: VSR MVSR. Die strikte Inklusion kann mit dem Schedule m = w 0 (x 0 )c 0 r 1 (x 0 )w 1 (x 1 )c 1 r 2 (x 0 )c 2 gezeigt werden, der seriell und in MVSR ist. Die Reihenfolge der Transaktionen t 1 und t 2 ist in m beliebig, da beide von t 0 lesen. In einem aus m abgeleiteten EV-Schedule liest t 2 jedoch von t 1, so dass die Reihenfolge nicht mehr beliebig ist. Man kann tatsächlich zeigen: Satz 5-3: Das Problem zu entscheiden, ob eine gegebene MV-History in MVSR liegt, ist N P-vollständig. Beweis.... über eine Reduktion von VSR auf MVSR. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-13

14 MV-Konfliktgraph Anders als im Fall von EV-Schedules, können wir eine graphentheoretische Charakterisierung von MVSR-Schedules angeben. Wir nutzen einen Konfliktgraphen für MV-Schedules. Die Definition aus Kapitel 3 vereinfacht sich hier, da alle Konflikte nur noch die Form (w i (x i ), r j (x i )), i j haben können. Der Konfliktgraph G(m) eines MV-Schedules hat also eine Kante der Form t i t j zwischen den Knoten von (committeten) Transaktionen t i, t j genau dann, wenn r j (x i ) in m vorkommt. Offensichtlich gilt dann: Satz 5-4: Für zwei MV-Schedules m, m gilt: m v m = G(m) = G(m ). Wir vervollständigen nun den Konfliktgraphen für MV-Schedules. Für ein Datenobjekt x ist eine Versionsordnung eine nicht-reflexive, totale Ordnung aller Versionen von x, die in m geschrieben werden. Eine Versionsordnung << für m ist einfach die Vereinigung aller Versionsordnungen von Objekten, die in m geschrieben werden. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-14

15 Beispiel 5-8: Sei m =w 0 (x 0 )w 0 (y 0 )w 0 (z 0 )c 0 r 1 (x 0 )r 2 (x 0 )r 2 (z 0 )r 3 (z 0 ) w 1 (y 1 )w 2 (x 2 )w 3 (y 3 )w 3 (z 3 )c 1 c 2 c 3 r 4 (x 2 )r 4 (y 3 )r 4 (z 3 )c 4 Eine Versionsordnung für m könnte etwa sein: x 0 << x 2, y 0 << y 1 << y 3, z 0 << z 3. Definition 5-9: (MV-Serialisierungsgraph) Zu einem gegebenen MV-Schedule m und einer Versionsordnung << wird der Mehrversionen-Serialisierungsgraph MVSG(m, <<) zu m wie folgt aus dem Konfliktgraphen G(m) = (V, E) erzeugt: MVSG(m, <<) = (V, E ), wobei E aus E durch Hinzufügen der folgenden Kanten entsteht: Für alle paarweise verschiedenen Indices i, j, k mit r k (x j ), w i (x i ) CP(m): wenn x i << x j dann (t i, t j ) E, sonst (t k, t i ) E. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-15

16 Beispiel 5-9: Seien m und << wie im vorigen Beispiel. Der Graph MVSG(m, <<) entsteht aus G(m) durch Hinzufügen der Kanten (t 1, t 2 ): r 1 (x 0 ), w 2 (x 2 ) op(m), aber x 0 << x 2, (t 1, t 3 ): w 1 (y 1 ), r 4 (y 3 ) op(m), aber y 1 << y 3, (t 2, t 3 ): r 2 (z 0 ), w 3 (z 3 ) op(m), aber z 0 << z 3. t 1 t 0 t 3 t 4 t 2 c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-16

17 Resultat Wenn eine MV-History einen azyklischen Konfliktgraphen hat, dann können wir topologisch sortieren um eine äquivalente serielle MV-History zu erhalten, diese muss jedoch nicht viewäquivelent zu einer seriellen EV-History sein. Die Kanten aus der Versionsordnung sorgen erst dafür, dass die Liest-von-Relation unverändert bleibt. Die topologische Sortierung muss also noch möglich sein, wenn die Versionsordnungs-Kanten hinzugefügt worden sind: Satz 5-5: Es gilt m MVSR genau dann, wenn es eine Versionsordnung << gibt, für die MVSG(m, <<) azyklisch ist.... dadurch wird das Entscheidungsproblem nicht einfacher, denn es ist nicht klar, dass in polynomialer Zeit eine solche Ordnung << gefunden werden kann. Allerdings geben wir später MV-Scheduler an, die immer solche Ordnungen erzeugen, deren Korrektheit also mit diesem Satz gezeigt werden kann. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-17

18 5.3.2 Mehrversionen-Konfliktserialisierbarkeit Ziel: eine Subklasse von MVSR, für die ein effizienter Test (in Polynomialzeit) möglich ist. Definition 5-10: (Mehrversionen-Konflikt) Ein Mehrversionen-Konflikt in einem MV- Schedule m ist ein Paar von Schritten r i (x j ) und w k (x k ), für das gilt: r i (x j ) < m w k (x k ). Beobachtungen: offenbar werden jetzt nur noch Schrittfolgen rw als Konflikt bezeichnet; es ist klar, dass ww nicht als Konflikt gelten muss, da verschiedene Versionen geschrieben werden; Bei wr gilt: (Konflikt = Operationen dürfen nicht vertauscht werden!) wenn der r- vor den w-schritt vertauscht wird, so sind weniger Wahlmöglichkeiten für die zu lesende Objektversion übrig. Sollte der resultierende Schedule also serialisierbar sein, so war es der ursprüngliche sicher auch. Daher muss wr nicht als Konfliktpaar betrachtet werden. Bei rw ist es anders: würde hier vertauscht, so entstünden mehr Wahlmöglichkeiten, aus der Serialisierbarkeit des resultierenden Schedules ließe sich also nicht sicher auf die Serialisierbarkeit des Ausgangsschedules schließen! c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-18

19 Reduzierbarkeit... wegen der Asymmetrie in den Konfliktpaaren kann der MV-Konfliktbegriff nicht ohne weiteres für die Definition einer Äquivalenzrelation auf MV-Schedules verwendet werden. Stattdessen wird ein asymmetrischer Begriff der Transformation eines Schedules in einen anderen eingeführt, der durch wiederholtes Vertauschen von nicht im Konflikt stehenden Operationspaaren gesteuert wird (vgl. konfliktbasierte Reduzierbarkeit in Kapitel 3, hier jedoch mit einer asymmetrischen Konfliktrelation). Schlussfolgerung: wenn durch wiederholtes Vertauschen von konfliktfreien Operationen ein serieller SMV-Schedule entsteht (der also die Reihenfolge von rw-konfliktpaaren unverändert lässt), so ist der Ausgangsschedule sicher in MVSR (dies ist leider nur eine hinreichende, aber nicht notwendige Bedingung...). Definition 5-11: (Mehrversionen-Reduzierbarkeit) Eine MV-History m ist mehrversionen-reduzierbar, wenn sie durch eine endliche Anzahl von Transformationen in eine serielle SMV-History überführt werden kann, bei der nur rw-konfliktpaare, rr-paare oder Paare von Operationen auf verschiedenen Objekten vertauscht werden. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-19

20 MV-Konfliktserialisierbarkeit Definition 5-12: (Mehrversionen-Konfliktserialisierbarkeit) Eine MV-History m ist mehrversionen-konfliktserialiserbar, wenn es eine serielle SMV-History mit denselben Transaktionen gibt, in der alle Paare von Konfliktoperationen in der gleichen Reihenfolge auftreten wie in m. Die Klasse aller MV-konfliktserialisierbaren Histories bezeichnen wir mit MCSR. Aus den vorgenannten Überlegungen ergibt sich: Satz 5-6: Eine MV-History ist MV-konfliktserialisierbar genau dann, wenn sie MVreduzierbar ist. Satz 5-7: MCSR MVSR. Mitgliedschaft in der Klasse MCSR kann wieder mittels eines entsprechenden Konfliktgraphen gezeigt werden... c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-20

21 Mehrversionen-Konfliktgraph Definition 5-13: (Mehrversionen-Konfliktgraph) Sei m ein MV-Schedule. der Mehrversionen-Konfliktgraph von m hat die Transaktionen aus m als Knoten und eine Kante von t i nach t j, wenn es Schritte r i (x k ) und w j (x j ) auf einem Objekt x in m gibt, so dass r i (x k ) < m w j (x j ). Nun gilt der folgende Satz 5-8: Ein MV-Schedule ist in MCSR genau dann, wenn sein MV-Konfliktgraph azyklisch ist. Die Klasse MCSR kann also effizient entschieden werden. Alle praktischen MV-Concurrency Control Protokolle fallen in diese Klasse. Dennoch werden wir nachfolgend eine Graph-Charakterisierung der größeren Klasse MVSR mit einer entsprechenden Versionsordnung untersuchen. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-21

22 Zusammenfassung Das nachfolgende Bild zeigt alle hier behandelten Klassen in ihrer Beziehung zueinander. Die angegebenen Histories enthalten t 0 nicht explizit und sind als Einversionen-Schedules notiert. MVSR Alle Histories VSR s 3 s 5 CSR MCSR s 4 s 2 s 1 s 1 = r 1 (x)r 2 (x)w 1 (x)w 2 (x)c 1 c 2 s 2 = w 1 (x)c 1 r 2 (x)r 3 (y)w 3 (x)w 2 (y)c 2 c 3 s 3 = w 1 (x)c 1 r 2 (x)r 3 (y)w 3 (x)w 2 (y)c 2 c 3 w 4 (y)c 4 s 4 = r 1 (x)w 1 (x)r 2 (x)r 2 (y)w 2 (y)r 1 (y)w 1 (y)c 1 c 2 s 5 = r 1 (x)w 1 (x)r 2 (x)w 2 (y)c 2 w 1 (y)w 3 (x)c 1 c 3 c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-22

23 5.4 Beschränkte Anzahl von Versionen Bislang: keine Beschränkung der Anzahl verfügbarer Versionen. Diese Annahme ist nicht sehr realistisch, denn obwohl Speicherplatz nicht mehr sehr teuer ist, wird kein Daten-Server unbeschränkt viel Speicherplatz zur Verfügung haben, die Verwaltung einer unbeschränkten Anzahl Versionen wäre kaum effizient möglich. Wir werden jetzt also die Auswirkungen von Beschränkungen untersuchen. Dabei zeigt sich, dass Schedules, die mit unbeschränkter Anzahl Versionen serialisierbar sind, mit beschränkter Anzahl nicht-serialisierbar werden können. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-23

24 Zur Motivation Beispiel 5-10: Betrachte die SMV-History m = w 0 (x 0 )c 0 r 1 (x 0 )w 3 (x 3 )c 3 w 1 (x 1 )c 1 r 2 (x 1 )w 2 (x 2 )c 2. Es gibt 6 mögliche serielle SMV-Histories für die 3 Transaktionen in m, nämlich: m 1 =w 0 (x 0 )c 0 r 1 (x 0 )w 1 (x 1 )c 1 r 2 (x 1 )w 2 (x 2 )c 2 w 3 (x 3 )c 3 m 2 =w 0 (x 0 )c 0 r 1 (x 0 )w 1 (x 1 )c 1 w 3 (x 3 )c 3 r 2 (x 3 )w 2 (x 2 )c 2 m 3 =w 0 (x 0 )c 0 r 2 (x 0 )w 2 (x 2 )c 2 r 1 (x 2 )w 1 (x 1 )c 1 w 3 (x 3 )c 3 m 4 =w 0 (x 0 )c 0 r 2 (x 0 )w 2 (x 2 )c 2 w 3 (x 3 )c 3 r 1 (x 3 )w 1 (x 1 )c 1 m 5 =w 0 (x 0 )c 0 w 3 (x 3 )c 3 r 1 (x 3 )w 1 (x 3 )c 1 r 2 (x 1 )w 2 (x 2 )c 2 m 5 =w 0 (x 0 )c 0 w 3 (x 3 )c 3 r 2 (x 3 )w 2 (x 2 )c 2 r 1 (x 2 )w 1 (x 1 )c 1 Wegen m v m 1 gilt m MVSR. Sei nun die maximale Anzahl gleichzeitig verfügbarer Versionen auf k = 2 beschränkt. Da alle Transaktionen nur das Objekt x schreiben, bedeutet dies, dass nur die jeweils letzten 2 Versionen von x gespeichert werden können. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-24

25 Für m 1 heisst dies: t 0 und t 1 erzeugen x 0 und x 1, t 2 überschreibt die ältere Version x 0 mit x 2, und dann t 3 x 1 mit x 3. Am Ende sind x 2 und x 3 vorhanden. Der Ausgangsschedule m dagegen hinterlässt am Ende x 1 und x 2, da diese zuletzt geschrieben werden. Folglich kann m nun nicht mehr als äquivalent zu m 1 betrachtet werden! Eine genaue Analyse zeigt, dass m nun zu keinem der seriellen SMV-Schedules m 1 m 6 mehr äquivalent ist! Der MV-Schedule m ist also bei Beschränkung auf nur zwei Versionen pro Objekt nicht mehr Mitglied der Klasse MVSR! Zur Formalisierung: wie in Abschnitt 3.5 wird View-Äquivalenz über gleiche liest-von-relation und gleiche abschließende Schreiboperationen definiert. Die Beschränkung auf maximal k Versionen pro Objekt kann ebenfalls eingebaut werden, so dass wir von der k-versionen View-Serialisierbarkeit sprechen können. Die entsprechenden Klassen von Schedules werden dann mit kvsr, k > 0 bezeichnet. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-25

26 Ergebnisse Aus dem Beispielschedule m von oben ergibt sich sofort: m MVSR 2VSR. Offensichtlich ist VSR = 1VSR. Ferner gilt: MVSR = k>0 kvsr. Schließlich kann man zeigen, dass die Klassen der auf k Versionen beschränkten Schedules eine strikte Hierarchie bilden: VSR = 1VSR 2VSR 3VSR... MVSR. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-26

27 5.5 Mehrversionen-Concurrency Control-Protokolle Wir betrachten nun Protokolle für Mehrversionen Daten-Server, indem bekannte Protokolle auf mehrere Versionen erweitert werden. Alle betrachteten Protokolle erzeugen vollständige Versionenordnungen, so dass ihre Korrektheit aus der Mitgliedschaft in MVSR folgt. Sofern nicht anders vermerkt nehmen wir an, dass unbeschränkt viele Versionen gespeichert werden können Mehrversionen-Time Stamp Ordering Ein MV-Time Stamp Ordering-Scheduler verarbeitet alle ankommenden Operationen in Eingangsreihenfolge (FIFO, first-in-first-out). Er transformiert Datenoperationen in solche auf Versionen von Datenobjekten, so dass der resultierende Schedule äquivalent zu einem seriellen Einversionenschedule ist, bei dem alle Transaktionen in der Reihenfolge ihrer Zeitstempel (die bei BOT vergeben werden) ausgeführt wurden. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-27

28 MVTO-Scheduling Jede Version trägt den Zeitstempel ts(t i ) der Transaktion t i, von der sie geschrieben wurde. Der MVTO-Scheduler arbeitet wie folgt: Ein Leseschritt r i (x) wird transformiert in r i (x k ), wobei x k die Version von x ist mit dem größten Zeitstempel ts(t i ). Ein Schreibschritt w i (x) wird wie folgt behandelt: Wenn ein Leseschritt r j (x k ) mit ts(t k ) < ts(t i ) < ts(t j ) bereits ausgeführt wurde, so wird w i (x) zurückgewiesen und t i abgebrochen. Andernfalls wird w i (x) in w i (x i ) transformiert und ausgeführt. Ein Commit c i wird solange verzögert, bis alle c j von Transaktionen t j ausgeführt wurden, die Versionen von Objekten geschrieben haben, die von t i gelesen wurden. (Dieser Teil des Protokolls ist optional. Er wurde hier angefügt, damit korrekte Recovery möglich ist, wir kommen später darauf zurück.) c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-28

29 Zur Korrektheit Um zu zeigen, dass Gen(MVTO) MVSR können wir die Versionsordnung wie folgt definieren: Beispiel 5-11: x i << x j ts(t i ) < ts(t j ). r 1 (x 0 ) r 1 (y 0 ) r 2 (x 0 ) w 2 (x 2 ) t r 3 (x 2 ) r 3 (z 0 ) 5 r 4 (x 2 ) t 4 w 4 (x 4 ) r 4 (y 2 ) w 4 (y 4 ) abort t r 5 (y 2 ) r 5 (z 0 ) c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-29

30 5.5.2 Mehrversionen-Zwei-Phasen-Sperrprotokoll Wir betrachten einen Strong 2PL Scheduler (SS2PL) und nehmen zunächst unbeschränkte Versionenanzahl an. Wir unterscheiden committete Versionen: solche, die von bereits abgeschlossenen Transaktionen geschrieben wurden, aktuelle Versionen von Datenobjekten: diejenige, die von der zuletzt abgeschlossenen Transaktion geschrieben wurde, nicht committete Versionen: alle übrigen (die von noch laufenden Transaktionen geschrieben wurden). Ein MV2PL-Scheduler stellt sicher, dass zu jedem Zeitpunkt höchstens eine nicht committete Version jedes Datenobjektes existiert. Je nachdem, ob Leseoperationen nur auf der aktuellen oder auch auf nicht committeten Versionen erlaubt werden, können verschiedene Varianten des Protokolls unterschieden werden. Der Scheduler behandelt ferner den jeweils letzten Schritt einer Transaktion (entweder die letzte Datenoperation vor dem commit oder der commit selbst; in den nachfolgenden Beispielen: die letzte Datenoperation vor dem commit) anders als die anderen Schritte. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-30

31 MV2PL-Protokoll Einzelne Schritte werden wie folgt bearbeitet: Sofern es nicht der letzte Schritt einer Transaktion ist: Ein Leseschritt r(x) wird sofort mit der aktuellen (zuletzt comitteten) oder der noch nicht committeten Version des Objektes x ausgeführt. Ein Schreibschritt w(x) wird nur dann ausgeführt, wenn die Transaktion, die x zuletzt geschrieben hat, bereits committet wurde, so dass keine weiteren nicht committeten Versionen von x bestehen. Der jeweils letzte Schritt einer Transaktion t i wird verzögert bis die folgenden Transaktionen committet sind: alle Transaktionen t j, die die aktuelle Version eines von t i geschriebenen Objektes gelesen haben, sowie alle Transaktionen t j, von denen t i irgendeine Version eines Objektes gelesen hat. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-31

32 Beispiel Beispiel 5-12: Ein MV2PL-Scheduler sehe die folgende Reihenfolge von Schritten: Die Abarbeitung verläuft wie folgt: s = r 1 (x)w 1 (x)r 2 (x)w 2 (y)r 1 (y)w 2 (x)c 2 w 1 (y)c r 1 (x) wird ausgeführt (auf x 0 ): r 1 (x 0 ) 2. w 1 (x) wird ausgeführt (und erzeugt x 1 ), da keine andere TX aktiv ist: w 1 (x 1 ) 3. r 2 (x) werde x 1 zugeordnet und ausgeführt: r 2 (x 1 ) 4. w 2 (y) wird ausgeführt: w 2 (y 2 ) 5. r 1 (y) werde y 0 zugeordnet und ausgeführt: r 1 (y 0 ) 6. Wäre w 2 (x) nicht der letzte Schritt von t 2, so würde er verzögert, da t 1 noch aktiv ist und x 1 geschrieben hat. So stellt sich dennoch heraus, dass t 2 warten muss, da t 1 die aktuelle Version (y 0 ) von y gelesen hat und t 2 diese Version überschreibt, t 2 die Version x 1 von t 1 gelesen hat. 7. w 1 (y), der letzte Schritt von t 1, wird ausgeführt, da t 2 keine aktuellen Versionen von Objekten gelesen hat, die t 1 geschrieben hat, und t 1 keine Versionen von t 2 gelesen hat w 1 (y 1 ) 8. danach kann schließlich auch w 2 (x) ausgeführt werden: w 2 (x 2 ) c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-32

33 Zwei-Versionen-2PL-Protokoll 2V2PL Wir betrachten nun die Beschränkung auf max. zwei Versionen jedes Objektes. Dies ist dadurch motiviert, dass ein TX-Server aus anderen (Recovery-) Gründen evtl. ohnehin zwei Versionen (vor bzw. nach jeder Änderung) von Objekten pflegen muss. Solange eine Transaktion läuft, wird von geänderten Objekten x ein Before Image und ein After Image gespeichert. Sobald die Transaktion committet, kann das Before Image gelöscht werden, da die Änderung jetzt stabil ist. Ein 2V2PL-Scheduler hält also immer die aktuelle Version sowie bei laufenden Update-Transaktionen Kandidaten für Nachfolge-Versionen bereit. Zur Implementierung des Tests für Schreiboperationen und letzte Schritte können drei Sperrmodi verwendet werden: rl(x) wl(x) cl(x) rl(x) + + wl(x) + cl(x) c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-33

34 Erläuterung rl Read Lock: Eine Lesesperre rl(x) wird unmittelbar vor einer Leseoperation r(x) auf die aktuelle Version von x gesetzt. wl Write Lock: Eine Schreibsperre wl(x) wird (unmittelbar) vor einer Operation w(x) zum Schreiben einer neuen nicht committeten Version von x gesetzt. cl Certify (oder Commit) Lock: Eine Sperre cl(x) wird vor Ausführung des letzten Schrittes einer Transaktion auf alle Objekte, die von ihr geschrieben wurden, gesetzt. (Die Sperrfreigaben müssen dem SS2PL-Protokoll genügen.) Schreibsperren stellen lediglich sicher, dass von jedem Objekt jederzeit höchstens eine nicht committete Version erzeugt werden kann. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-34

35 Zur Korrektheit Die MV-Serialisierbarkeit wird durch die Anforderung der cl-sperren gewährleistet. Die Tests bzgl. der korrekten Anordnung des Lesens von aktuellen Versionen und Schreibens neuer sind in der Kompatibilität der rl- und cl-sperren codiert. cl-sperren spielen folglich die Rolle der wl-sperren in Einversionen-Protokollen. Der Vorteil beim 2V2PL-Protokoll liegt darin, dass die cl-sperren erst beim letzten Schritt, also für ein wesentlich kürzere Zeit, angefordert werden, was eine höhere Parallelität von Transaktionen ermöglicht. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-35

36 Beispiel 5-13: Für den Input-Schedule r 1 (x)w 2 (y)r 1 (y)w 1 (x)c 1 r 3 (y)r 3 (z)w 3 (z)w 2 (x)c 2 w 4 (z)c 4 c 3 wird der folgende Ablauf erzeugt: (ul i bezeichnet einen Unlock, der alle Sperren der Transaktion t i freigibt) s = rl 1 (x)r 1 (x 0 )wl 2 (y)w 2 (y 2 )rl 1 (y)r 1 (y 0 )wl 1 (x)w 1 (x 1 )cl 1 (x)ul 1 c 1 rl 3 (y)r 3 (y 0 )rl 3 (z)r 3 (z 0 )wl 2 (x)cl 2 (x)wl 3 (y)w 3 (z 3 )cl 3 (z)ul 3 c 3 cl 2 (y)ul 2 c 2 wl 4 (z)w 4 (z 4 )cl 4 (z)ul 4 c 4 Die Transaktion t 2 fordert ihren commit lock cl 2 (y) unmittelbar vor Beginn von t 4 an, dieser kann aber wegen des im Konflikt stehenden read locks von t 3 nicht vor deren Ende gewährt werden. Die Anforderung wl 4 (z) steht im Konflikt mit der gehaltenen Sperre wl 3 (z), daher wartet auch t 4 auf das Ende von t 3 : r 1 (x 0 ) r 1 (y 0 ) t 1 w 2 (y 2 ) t 2 w 1 (x 1 ) w 2 (x 2 ) c 2 r 3 (y 0 ) t 3 r 3 (z 0 ) w 3 (z 3 ) w 4 (z 4 ) t 4 c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-36

37 Deadlocks Wie schon das 2PL-Protokoll, so ist auch MV2PL nicht Deadlock-frei: Beispiel 5-14: Gegeben sei der Input r 1 (x)r 2 (y)w 1 (y)w 2 (x). Der Scheduler erzeugt den Output rl 1 (x)r 1 (x)rl 2 (y)r 2 (y) Jetzt müsste t 1 die Sperre cl 1 (y), die inkompatibel mit rl 2 (y) ist, erhalten und umgekehrt benötigt t 2 die Sperre cl 2 (x), die wegen rl 1 (x) nicht gewährt werden kann, ein Dealock! Zur Behandlung von Deadlocks können die gleichen Maßnahmen wie im Einversionen-Fall angewendet werden. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-37

38 5.5.3 Mehrversionen-Serialisierbarkeitsgraph-Tester Im Gegensatz zum Einversionen-SGT-Scheduler kann nun nicht mehr ein Protokoll angegeben werden, das genau die Klasse MCSR erzeugt. Vielmehr gibt es nun eine unbeschränkte Anzahl von Schedulern, die jeweils eine eigene Unterklasse von MCSR erzeugen, deren Vereinigung MCSR ergibt. Wir skizzieren das Vorgehen, wobei nicht-deterministische Schritte enthalten sind. Werden diese Schritte deterministisch spezifiziert, so resultieren die jeweiligen Scheduler. Der MVSGT-Scheduler benutzt einen MV-Konfliktgraphen G, dessen Knoten die Transaktionen inkl. t 0 sind. Zu Beginn enthält G nur Kanten von t 0 zu allen anderen Transaktionen; am Ende sind alle Kanten des MV-Konfliktgraphen, sowie je nach Wahl der nicht-deterministischen Schritte einige weitere enthalten. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-38

39 Vorgehensweise Bei der Zuordnung von Versionen zu Leseschritten geht man wie folgt vor: einem Schritt r i (x) können als Kandidaten t 0 und solche w j (x) zugeordnet werden, die bereits ausgeführt wurden. Allerdings müssen ausgeschieden werden: diejenigen t j, die auf einem Pfad ausgehend von t i in G liegen, denn diese sollen in der Serialisierungsreihenfolge nach t i liegen; wir nennen diese zu spät; diejenigen t j, für die es Pfade zu einem anderen Kandidaten t k und von t k zu t i gibt, da in der Serialisierungsreihenfolge t k x nach t j schreibt; diese nennen wir zu früh. Ein erster nicht-deterministischer Schritt wählt nun jeweils zu r i (x) eine Version aus, die weder von einer zu frühen noch von einer zu späten Transaktion geschrieben wurde. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-39

40 Beispiel Beispiel 5-15: Im Beispielgraphen sind t 0 und die Kanten von t 0 zu t i, i {1,..., 7} nicht dargestellt: t 4 t 5 t 6 t 7 t 1 t 2 t 3 Wenn r 1 (x) aufgerufen wird, nachdem t 2 bis t 7 x bereits geschrieben haben, sind diese alle Kandidaten im obigen Sinn. t 2 und t 3 sind jedoch zu spät, während t 0 und t 4 zu früh sind. Der Scheduler kann also zwischen t 5, t 6, t 7 beliebig auswählen. Bemerkung: Wenn G azyklisch ist, gibt es für jeden Leseschritt mindestens eine Transaktion, die weder zu früh noch zu spät ist. (Es sind nie alle zu spät, unter den nicht zu späten wähle eine, die die keinen Pfad zu anderen nicht zu späten hat, diese ist nicht zu früh.) c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-40

41 Pflege des MV-Konfliktgraphen Wenn w i (x) ausgeführt wird, füge eine Kante (t j, t i ) für diejenigen t j hinzu, die bereits ein r j (x) ausgeführt haben; so bleibt G ein Obergraph des MVSG. Wenn G so zyklisch würde, wird w i (x) nicht ausgeführt, sonst wird die neue Version gespeichert. Wenn r i (x) mit einer Version w j (x) ausgeführt wird, füge die Kante (t j, t i ) in G ein; da t j nicht zu spät ist, wird kein Zyklus geschlossen. Zusätzlich wird jeweils eine beliebige der Kanten (t k, t j ) oder (t i, t k ) hinzugefügt, wenn w k (x) bereits ausgeführt wurde und t k weder zu früh noch zu spät ist. Im obigen Beispiel würden bei Auswahl von t 7 aus den Kandidaten die Kanten (t 7, t 1 ) und (t 5, t 7 ) (die alternative Kante (t 1, t 5 ) würde zu einem Zyklus führen), sowie entweder (t 1, t 6 ) oder (t 6, t 7 ) hinzugefügt. Genauer wird die Auswahl von (t k, t i ) getroffen, wenn es einen Pfad von t k nach t i in G gibt, und (t i, t k ) anderfalls. Man kann zeigen, dass G so azyklisch bleibt und dass jeder so entstandene Schedule in MCSR liegt. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-41

42 5.5.4 Ein Mehrversionen-Protokoll für Read-Only Transaktionen Motivation: viele Anwendungen beinhalten lange Lesetransaktionen, die große Datenmengen lesen/analysieren. Durch ihre lange Laufzeit werden so mit herkömmlichen (z.b. (SS)2PL- Schedulern) extrem hohe Konflikt- und Blockierungswahrscheinlichkeiten erzeugt. MV-Protokolle vermeiden diese lange Wartezeiten durch die Zuweisung von alten Versionen zu diesen Lesetransaktionen; umgekehrt erfordern sie jedoch signifikant größeren Implementierungsaufwand Idee: wende MV-Concurrency Control nur für die Lesetransaktionen an hybride Protokolle, so dass mit wenig Aufwand ein Großteil des Nutzens von MV-Protokollen erreicht werden kann. Lesetransaktionen müssen beim BOT explizit als solche gekennzeichnet werden! c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-42

43 Read-Only MV-Protokoll (ROMV) 1. Update-Transaktionen: werden mit dem bekannten (S)S2PL behandelt, fordern also wie gewohnt Sperren an und folgen bei der Freigabe der S2PL- bzw. SS2PL-Strategie. Im Gegensatz zum normalen (S)S2PL erzeugen Update-TXs allerdings neue Versionen von geänderten Objekten, die mit dem Zeitstempel der ändernden Transaktion (= ihrem Commit-Zeitpunkt) markiert werden. 2. Read-Only-Transaktionen: werden mit einem MV-Zeitstempelverfahren ähnlich MVTO behandelt, allerdings werden committete und nicht committete Versionen in ihrer Rolle vertauscht: Jede solche TX erhält einen Zeitstempel (= ihren Beginn-Zeitpunkt!). Jeder Leseoperation einer RO-TX wird die neueste zu ihrem Beginn-Zeitpunkt committete version zugeordnet (also die Version mit dem größten Zeitstempel kleiner als der Zeitstempel der Lese-TX). Beachte die unterschiedliche Vergabe von Zeitstempeln bei Lese- bzw. Änderungstransaktionen! c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-43

44 Beispiel Beispiel 5-16: t 2, t 3 seien Update-, t 1, t 4, t 5 Read-Only-Transaktionen. Die gestrichelte Linie bei t 3 zeigt einen Lock-Wait (wg. des wr-konfliktes auf x) an. r 1 (x 0 ) r 1 (y 0 ) t 1 r 2 (x 0 ) w 2 (x 2 ) r 2 (y 0 ) w 2 (y 2 ) t 2 r 3 (x 2 ) w 3 (x 3 ) t 3 r 4 (z 0 ) r 4 (x 0 ) t 4 r 5 (z 0 ) r 5 (x 2 ) t 5 c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-44

45 Anmerkungen Zur Korrektheit: die Versionsordnung ist durch die Commit-Reihenfolge (die Zeitstempel der Update-Transaktionen) gegeben. Lese-Transaktionen werden in der Serialisierungsreihenfolge nach ihrem Zeitstempel (zwischen die Änderungstransaktionen) eingefügt. So lässt sich zeigen, dass der MV-Serialisierungsgraph zu dieser Versionsordnung azyklisch ist. Implementierungsprobleme: Versionen dienen lediglich der Synchronisation, sollten also sobald sie nicht mehr benötigt werden gelöscht werden. Hinreichende Bedingungen hierfür sind: 1. eine Version ist nicht die neueste committete Version eines Objektes, und 2. ihr Zeitstempel ist älter als der älteste Zeitstempel einer noch aktiven Lese-Transaktion. Dieser Ansatz setzt voraus, dass keine Beschränkung der Anzahl Versionen existiert. Gibt es eine solche, dann müssen u.u. Lese-TXs abgebrochen werden, wenn die Versionen, die sie lesen müssen, nicht mehr verfügbar sind. Die Zeitstempel-Verwaltung wird dadurch kompliziert, dass Update-Transaktionen den Zeitstempel ihres Commit-Zeitpunktes bekommen. Hierzu könnten die Zeitstempel in den gespeicherten Objekten abgelegt werden (müssten dann aber beim Commit alle verändert werden), oder es werden zusätzliche Datenstrukturen benötigt, die temporär Write-Sets und Zeitstempel von Update-Transaktionen verwalten. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-45

46 5.6 Zusammenfassung Das Vorhalten von mehreren Versionen gespeicherter Datenobjekte ist theoretisch wie praktisch eine attraktive Möglichkeit, die potentielle Parallelität von Transaktionen zu erhöhen. Die Erweiterung der Theorie (z.b. Serialisierbarkeitsklassen) ist, nach Definition passender Einschränkungen bei der Standard-Versionierungsfunktion, einfach. Probleme und interessante Ergebnisse ergeben sich bei Beschränkung der Anzahl vorgehaltener Versionen (eine ganze Hierarchie von Serialisierbarkeitsklassen). Die Implementierung (z.b. mit entsprechenden Sperr-Modi) ist nicht sehr komplex. Mehrere Versionen eröffnen Freiheitsgrade bei der Zuordnung von Versionen zu Lese- Operationen. Die Verwendung von Versionen zur Behandlung langer Lese-Transaktionen ist besonders einfach und praxisrelevant (einige kommerzielle Datenbanksysteme implementieren das angegebene oder ähnliche hybride Protokolle). c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-46

47 5.7 Literaturhinweise Die Idee der Versionierung zur Synchronisation geht auf (Reed 1978; Reed 1983) und (Bayer et al. 1980), von dort stammen auch MVTO bzw. 2V2PL. Praktisch relevante hybride Protokolle finden sich in (DuBourdieu 1982; Chan et al. 1982); zu Implementierungsaspekten siehe (Mohan et al. 1992). Eine nette Übersicht über die Idee der Versionierung findet sich in (Schueler 1977). Nicht-transparente Versionen (also Benutzern sichtbare Verionen von Objekten, etwa im CAD-Kontext) werden z.b. in (Cellary und Jomier 1990; Katz 1990) diskutiert. Bayer, R., H. Heller und A. Reiser (1980). Parallelism and Recovery in Database Systems. ACM Transactions on Database Systems, 5: Cellary, W. und G. Jomier (1990). Consistency of Versions in Object-Oriented Databases. In: Proc. Intl. Conf. on Very Large Databases, S Chan, A., S-Fox, W. Lin, A. Nori und D. Ries (1982). The Implementation of an Integrated Conmcurrency Control and Recovery Scheme. In: Proc. ACM SIGMOD Conference on Management of Data, S DuBourdieu, D. (1982). Implementation of Distributed Transactions. In: Proc. 6th Berkeley Workshop on Distr. Data Mmgt. and Computer Networks, S , Berkeley, CA. Katz, R.H. (1990). Toward a Unified Framework for Version Modeling in Engineering Databases. ACM Computing Surveys, 22: Mohan, C., D. Haderle, B. Lindsay, H. Pirahesh und P. Schwarz (1992). ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging. ACM Transactions on Database Systems, 17: Reed, D.P. (1978). Naming and Synchronisation in Decentralized Computer System. PhD Thesis, MIT, Cambridge, MA. Reed, D.P. (1983). Implementing Atomic Actions on Decentralized Data. ACM Transactions on Computer Systems, 1(1):3 23. Schueler, B.-M. (1977). Update Reconsidered. In: Proc. IFIP Working Conf. on Architecture and Models in DBMS, S , Nice, France. North-Holland Publ. c M. Scholl, 2002 Transaktionssysteme: 5. Mehrversionen-Concurrency Control 5-47

Kapitel 5 Mehrversionen-CC. MVCC: Annahmen & Eigenschaften

Kapitel 5 Mehrversionen-CC. MVCC: Annahmen & Eigenschaften Kapitel 5 Mehrversionen-CC Bisher sind wir immer von der Grundannahme ausgegangen, dass jedes Datenobjekt x nur in einer Version vorliegt. Die Konsequenz daraus war, dass durch jedes Schreiben der Wert

Mehr

2.3 View Serialisierbarkeit

2.3 View Serialisierbarkeit 2.3 View Serialisierbarkeit Das Problem, dass tote Aktionen bei FSSR ausgeklammert werden, lässt sich beheben, wenn man die Gleichheit der Reads-From-Relation eines gegebenen Schedules mit einem seriellen

Mehr

Datenbanken: Ablaufpläne und Serialisierbarkeit

Datenbanken: Ablaufpläne und Serialisierbarkeit Theoretische Konzepte zur Abarbeitung parallel arbeitender Transaktionen Definition: (Ablaufplan, Schedule) Ein Ablaufplan S ist die verschränkte Anordnung bzw. Ausführung der Einzeloperationen einer Menge

Mehr

Konfliktgraph. Satz und Definition

Konfliktgraph. Satz und Definition 9. Transaktionsverwaltung 9.2. Mehrbenutzerkontrolle Seite 1 Konfliktgraph Der Konfliktgraph von S ist ein gerichteter Graph KG(S) = (V, E), wobei V die Menge aller Transaktionen in S und E die Menge der

Mehr

Prioritäten/Zeitstempel-Verfahren

Prioritäten/Zeitstempel-Verfahren Prioritäten/Zeitstempel-Verfahren Grundlegende Idee: Falls einer Transaktion T k eine Sperre nicht gewährt wird, weil eine andere Transaktion T i sie hält, besteht Deadlockgefahr. Also bekommt jede Transaktion

Mehr

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

Prioritäten/Zeitstempel-Verfahren. WAIT-DIE und WOUND-WAIT-Strategien Prioritäten/Zeitstempel-Verfahren Grundlegende Idee: Falls einer Transaktion T k eine Sperre nicht gewährt wird, weil eine andere Transaktion T i sie hält, besteht Deadlockgefahr. Also bekommt jede Transaktion

Mehr

Datenbanksysteme 2009

Datenbanksysteme 2009 Datenbanksysteme 2009 Vorlesung vom 30.06.09 Kapitel 14: Mehrbenutzersynchronisation Oliver Vornberger Institut für Informatik Universität Osnabrück Multiprogramming Zeitachse Einbenutzer betrieb T1 T2

Mehr

Kommunikation und Datenhaltung

Kommunikation und Datenhaltung Kommunikation und Datenhaltung Transaktionsverwaltung Überblick über den Datenhaltungsteil Motivation und Grundlagen Architektur von Datenbanksystemen Datenbankanfragen Relationenmodell und Relationenalgebra

Mehr

Synchronisation in Datenbanksystemen in a nutshell

Synchronisation in Datenbanksystemen in a nutshell Synchronisation in Datenbanksystemen in a nutshell 1. Modell für nebenläufige Transaktionen und Korrektheitskriterium Transaktionsmodell: Folgen von Lese und Schreiboperationen abgeschlossen durch c=commit.

Mehr

Beispielszenarien. 12. Transaktionen. ACID-Eigenschaften. Transaktion

Beispielszenarien. 12. Transaktionen. ACID-Eigenschaften. Transaktion 12. Transaktionen Beispielszenarien Transaktionsbegriff Probleme im Mehrbenutzerbetrieb Serialisierbarkeit Sperrprotokolle zur Synchronisation Isolationsebenen in SQL Platzreservierung für Flüge quasi

Mehr

6. Serialisierbarkeit

6. Serialisierbarkeit 6. Serialisierbarkeit Nothing is as practical as a good theory Albert Einstein Anomalien im Mehrbenutzerbetrieb Synchronisation von Transaktionen - Ablaufpläne, Modellannahmen - Korrektheitskriterium:

Mehr

3.1 Schedules und Histories

3.1 Schedules und Histories 3 Concurrency Control: Korrektheit Wir betrachten zunächst nur das Seitenmodell (read/write)! 3.1 Schedules und Histories Bislang: Transaktionen = (partiell) geordnete Folgen von (Daten-) Operationen...

Mehr

Kapitel 3 Synchronisation

Kapitel 3 Synchronisation LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Skript zur Vorlesung: Datenbanksysteme II Sommersemester 2014 Kapitel 3 Synchronisation Vorlesung: PD Dr. Peer Kröger

Mehr

Holger Schwarz Universität Stuttgart, IPVS

Holger Schwarz Universität Stuttgart, IPVS DATENBANKANWENDUNG Wintersemester 2013/2014 Holger Schwarz Universität Stuttgart, IPVS holger.schwarz@ipvs.uni-stuttgart.de Beginn: 23.10.2013 Mittwochs: 11.45 15.15 Uhr, Raum 46-268 (Pause 13.00 13.30)

Mehr

3.5 Synchronisation ohne Sperren

3.5 Synchronisation ohne Sperren Überblick Nachteil von Sperren: Einschränkung der Parallelität Deadlocks 1. Lösungsversuch: Weiterhin pessimistisches Verfahren, aber statt Sperren, Zeitstempel (nicht zur Verklemmungsvermeidung sondern

Mehr

Aufgabe 10.1: Lösung:

Aufgabe 10.1: Lösung: 1 Aufgabe 10.1: Lösung: Aus Konfliktserialisierbarkeit folgt allgemeine Serialisierbarkeit. Bleibt zu zeigen, dass jetzt auch aus Serialisierbarkeit Konfliktserialisierbarkeit folgt, falls die Transaktionen

Mehr

6. Serialisierbarkeit 1

6. Serialisierbarkeit 1 6. Serialisierbarkeit 1 Nothing is as practical as a good theory Albert Einstein Anomalien im Mehrbenutzerbetrieb Synchronisation von Transaktionen - Ablaufpläne, Modellannahmen - Korrektheitskriterium:

Mehr

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

Access-Modell. A4. Im Operandenteil von Anweisungen vorkommende Objekte seien unstrukturiert und stehen in keinerlei Beziehung zueinander. Access-Modell Das Access-Modell beruht auf folgenden vereinfachenden Annahmen: A1. Im Operationsteil einer Anweisung sei nur der Operator Access erlaubt. Die beabsichtigte Semantik ist, daß die Daten aus

Mehr

6. Serialisierbarkeit 1

6. Serialisierbarkeit 1 6. Serialisierbarkeit 1 Motivation Erinnerung Nothing is as practical as a good theory Albert Einstein Anomalien im unkontrollierten Mehrbenutzerbetrieb Verlorengegangene Änderung (Lost Update) Anomalien

Mehr

6. Serialisierbarkeit 1

6. Serialisierbarkeit 1 6. Serialisierbarkeit 1 Motivation Erinnerung Anomalien im Mehrbenutzerbetrieb Synchronisation von Transaktionen Nothing is as practical as a good theory Albert Einstein - Ablaufpläne, Modellannahmen -

Mehr

6. Serialisierbarkeit 1

6. Serialisierbarkeit 1 6. Serialisierbarkeit 1 Nothing is as practical as a good theory Albert Einstein Anomalien im Mehrbenutzerbetrieb Synchronisation von Transaktionen - Ablaufpläne, Modellannahmen - Korrektheitskriterium

Mehr

Software-Engineering und Datenbanken

Software-Engineering und Datenbanken Software-Engineering und Datenbanken Transaktionskonzepte 1 Der Transaktionsbegriff Eine Transaktion ist eine Folge von Operationen, die die Datenbank von einem konsistenten Zustand in einen neuen überführen.

Mehr

6. Serialisierbarkeit 1

6. Serialisierbarkeit 1 6. Serialisierbarkeit 1 Nothing is as practical as a good theory Albert Einstein Anomalien im Mehrbenutzerbetrieb Synchronisation von Transaktionen - Ablaufpläne, Modellannahmen - Korrektheitskriterium:

Mehr

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

Übungen zur Vorlesung. Mobile und Verteilte Datenbanken. WS 2008/2009 Blatt 4. Lösung Dr. rer. nat. Sven Groppe Übungen zur Vorlesung Mobile und Verteilte Datenbanken WS 2008/2009 Blatt 4 Lösung Aufgabe 1: Bestimmen Sie zu den folgenden Transaktions-Schedules, ob diese (konflikt-) serialisierbar

Mehr

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. Dr. Thomas Neumann TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann Blatt Nr. 2 Übung zur Vorlesung Einsatz und Realisierung von Datenbanksystemen im SoSe15 Moritz Kaufmann (moritz.kaufmann@tum.de)

Mehr

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

Übungen zur Vorlesung. Datenbanken I. WS 2002/2003 Blatt 4 MUSTERLÖSUNG Prof. Dr. S. Böttcher Adelhard Türling Übungen zur Vorlesung Datenbanken I WS 2002/2003 Blatt 4 MUSTERLÖSUNG Aufgabe 4.1: Bestimmen Sie zu den folgenden Transaktions-Schedules, ob diese (konflikt-) serialisierbar

Mehr

Mehrbenutzersynchronisation

Mehrbenutzersynchronisation Mehrbenutzersynchronisation Ausführung der drei Transaktionen T 1, T 2 und T 3 : (a) im Einzelbetrieb und Zeitachse T 1 T2 T 3 (b) im (verzahnten) Mehrbenutzerbetrieb (gestrichelte Linien repräsentieren

Mehr

Inhaltsverzeichnis. Inhaltsverzeichnis

Inhaltsverzeichnis. Inhaltsverzeichnis Inhaltsverzeichnis Das Script für die Lehrveranstaltung Datenmanagement wurde im Wintersemester 2007/2008 komplett überarbeitet und neu strukturiert. Wir bitten darum, eventuelle Fehler im Script an Milan

Mehr

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

AG Datenbanken und Informationssysteme Wintersemester 2006 / Übungsblatt. Aufgabe 2: Sperrprotokolle in Datenbankystemen AG Datenbanken und nformationssysteme Wintersemester 26 / 27 Prof. Dr.-ng. Dr. h. c. Theo Härder Fachbereich nformatik Technische Universität Kaiserslautern Aufgabe 1: Verklemmungen 9. Übungsblatt Für

Mehr

Eigenschaften von TAs: ACID-Prinzip

Eigenschaften von TAs: ACID-Prinzip Transaktionsparadigma Definition: Transaktion ununterbrechbare Folge von DML-/DDL-Befehlen begin transaction --- end transaction begin: meist implizit mit ersten Datenbankzugriff end: commit (work) oder

Mehr

Datenbanken und Informationssysteme

Datenbanken und Informationssysteme Datenbanken und Informationssysteme Serialisierbarkeit Burkhardt Renz Fachbereich MNI TH Mittelhessen Wintersemester 2015/16 Übersicht Serialisierbarkeit 2-Phasen-Sperrprotokoll (2PL) Verklemmungen Modell

Mehr

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

Transaktionskonzept Eine Transaktion ist eine Folge von Operationen mit folgenden ACID Eigenschaften: Atomicity: Es werden alle Operationen oder gar k Transaktionsverwaltung 1. Schnellkurs: Serialisierbarkeit, Isolationslevel, Synchronisationsverfahren, Savepoints, Logging, Implementierungsaspekte! Harder, Rahm Buch 2. Erweiterte Transaktionskonzepte!

Mehr

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. Dr. Thomas Neumann TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann Blatt Nr. 13 Übung zur Vorlesung Grundlagen: Datenbanken im WS14/15 Harald Lang (harald.lang@in.tum.de) http://www-db.in.tum.de/teaching/ws1415/grundlagen/

Mehr

Kapitel 9a Transaktionen - Synchronisation

Kapitel 9a Transaktionen - Synchronisation LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Skript zur Vorlesung: Datenbanksysteme Wintersemester 2018/2019 Kapitel 9a Transaktionen - Synchronisation Vorlesung:

Mehr

Teil II Concurrency Control. Kapitel 2 Serialisierbarkeitstheorie

Teil II Concurrency Control. Kapitel 2 Serialisierbarkeitstheorie Teil II Concurrency Control Kapitel 2: Serialisierbarkeitstheorie Korrektheitskriterien Kapitel 3: Konservative Concurrency Control-Protokolle Kapitel 4: Optimistische Concurrency Control-Protokolle Kapitel

Mehr

4 Concurrency Control: Algorithmen. Ziel: Entwicklung von Schedulern (Scheduling Algorithmen, Scheduling Protokollen), die konfliktserialisierbare

4 Concurrency Control: Algorithmen. Ziel: Entwicklung von Schedulern (Scheduling Algorithmen, Scheduling Protokollen), die konfliktserialisierbare 4 Concurrency Control: Algorithmen 4.1 Vorüberlegungen Ziel: Entwicklung von Schedulern (Scheduling Algorithmen, Scheduling Protokollen), die konfliktserialisierbare Schedules erzeugen. Wie im vorherigen

Mehr

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. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 2 Übung zur Vorlesung Einsatz und Realisierung von Datenbanksystemen im SoSe14 Moritz Kaufmann (moritz.kaufmann@tum.de)

Mehr

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

Konflikte. Konflikt-Äquivalenz von Read/Write-Plänen, Konflikt-Serialisierbarkeit Konflikte Zwei Transaktionen liegen im Konflikt, wenn sie ein Objekt o gemeinsam nutzen, wobei mindestens eine der Transaktionen in o schreibt. Für eine Menge von Transaktionen T kann man nun alle Konflikte

Mehr

Übungen zu Datenbanksysteme

Übungen zu Datenbanksysteme Institut für Informatik Universität Osnabrück, 30.06.2009 Prof. Dr. Oliver Vornberger http://www-lehre.inf.uos.de/ dbs Dipl.-Math. Patrick Fox Abgabe bis 06.07.2009, 12:00 Uhr Aufgabe 10.1 (35 Punkte)

Mehr

Mehrbenutzersynchronisation

Mehrbenutzersynchronisation Kapitel 13 Mehrbenutzersynchronisation 13.1 Multiprogramming Unter M ultiprogramming versteht man die nebenläufige, verzahnte Ausführung mehrerer Programme. Abbildung 13.1 zeigt exemplarisch die dadurch

Mehr

1 Referentielle Aktionen

1 Referentielle Aktionen 1 Referentielle Aktionen Betrachten Sie das folgende Datenbankschema: Person(Vorname, Nachname, DOB, Wohnort, Lieblingsfilm Film.IMDb-ID, Videothek Videothek.VID) Film(IMDb-ID, Titel, (ProduzentVN, ProduzentNN)

Mehr

Mehrbenutzer-Synchronisation

Mehrbenutzer-Synchronisation Mehrbenutzer-Synchronisation Konflikt-Kategorien Serialisierung Historien Sperrungen Verklemmungen Optimistische Synchronisation Synchronisation in SQL Kapitel 11 1 Mehrbenutzersynchronisation Ausführung

Mehr

Mehrbenutzersynchronisation

Mehrbenutzersynchronisation Mehrbenutzersynchronisation Ausführung der drei Transaktionen T 1, T 2 und T 3 : (a) im Einzelbetrieb und Zeitachse T 1 T 2 T 3 (b) im (verzahnten) Mehrbenutzerbetrieb (gestrichelte Linien repräsentieren

Mehr

Kapitel 3 Teil 2 Synchronisation - Algorithmen I

Kapitel 3 Teil 2 Synchronisation - Algorithmen I Kapitel 3 Teil 2 Synchronisation - Algorithmen I Inhalt: Pessimistische Scheduler, optimistische Scheduler, hybride Scheduler Scheduling-Algorithmen Scheduler (1) Entwurf von Scheduling-Algorithmen (Scheduler)

Mehr

Kommunikation und Datenhaltung

Kommunikation und Datenhaltung Kommunikation und Datenhaltung 4. Übung zur Datenhaltung Anfrageoptimierung & Transaktionsverwaltung Agenda Institut für Programmstrukturen und Datenorganisation (IPD) Informationen zu Lehrveranstaltungen

Mehr

Mehrbenutzersynchronisation

Mehrbenutzersynchronisation Kapitel 10 Mehrbenutzersynchronisation 381 / 520 Mehrbenutzersynchronisation Alle TAs strikt seriell (also nacheinander) auszuführen ist sicher, aber langsam Oft werden Systemressourcen nicht voll ausgenutzt,

Mehr

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

Datenhaltung. Sommersemester Relationale Algebra Join Entity Relationship Model Kardinalitäten... 2 Datenhaltung Sommersemester 2008 Contents 1 Relationale Algebra 1 1.1 Join........................................... 1 2 Entity Relationship Model 2 2.1 Kardinalitäten.....................................

Mehr

9. Transaktionsverwaltung 9.3. Fehlerbehandlung Seite 1

9. Transaktionsverwaltung 9.3. Fehlerbehandlung Seite 1 9. Transaktionsverwaltung 9.3. Fehlerbehandlung Seite 1 9.3 Fehlerbehandlung Im realen Betrieb eines Datenbanksystems muss mit Fehlersituationen gerechnet werden. Transaktionsfehler: Hierunter verstehen

Mehr

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

Grundlagen von Datenbanken. Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking Grundlagen von Datenbanken Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking SQL DDL: Referentielle Aktionen (1/3) Potentielle Gefährdung der referentiellen Integrität durch Änderungsoperationen

Mehr

8. Transaktionsverarbeitung. Architektur von Datenbanksystemen I

8. Transaktionsverarbeitung. Architektur von Datenbanksystemen I 8. Transaktionsverarbeitung Architektur von Datenbanksystemen I Einordnung ARCHITEKTUR VON DATENBANKSYSTEMEM I - Key/Value Store - Row Store - Column Store - Data Compression - Transaction Processing -

Mehr

Transaktionale Informationssysteme - 2. Synchronisation - Korrektheit

Transaktionale Informationssysteme - 2. Synchronisation - Korrektheit Transaktionale Informationssysteme - 2. Synchronisation - Norbert Ritter Datenbanken und Informationssysteme vsis-www.informatik.uni-hamburg.de - Erinnerung (1) Einbenutzer-/Mehrbenutzerbetrieb Einbenutzerbetrieb

Mehr

Transaktionssysteme. Guido Moerkotte

Transaktionssysteme. Guido Moerkotte Transaktionssysteme Guido Moerkotte 6. Mai 2003 Inhaltsverzeichnis 1 Wiederholung 3 1.1 (Ungerichtete) Graphen............................ 3 1.2 Gerichtete Graphen............................... 4 1.3

Mehr

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

Vorlesung Verteilte Systeme Wintersemester 2000/2001. Verteilte Systeme. 14. Transaktionen Verteilte Systeme 14. Transaktionen Motivation Sicherung konsistenter Systemzustände Beispiele Amnesieproblematik bei zustandsbehafteten Servern Sicherung des Primaries (Primary-Backup- Approach) Aktive

Mehr

Vorlesung "Systemsoftware II" Wintersemester 2002/03

Vorlesung Systemsoftware II Wintersemester 2002/03 (c) Peter Sturm, Universität Trier 1 Verteilte Systeme 16. Transaktionen Motivation Sicherung konsistenter Systemzustände Beispiele Amnesieproblematik bei zustandsbehafteten Servern Sicherung des Primaries

Mehr

Der Scheduler. 9. Transaktionsverwaltung. Zustände einer Transaktion. Transaktionsoperationen

Der Scheduler. 9. Transaktionsverwaltung. Zustände einer Transaktion. Transaktionsoperationen 9. Transaktionsverwaltung Der Scheduler Architektur der Transaktionsverwaltung Sperrende und nicht-sperrende Verfahren Transaktionen in SQL-Systemen Transaktionsmonitore T 1 T T 2 n Transaktions- Manager

Mehr

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

DB I S. 1 Referentielle Aktionen [10 P.] Gegeben sei folgende Datendefinition: 1 Referentielle Aktionen Gegeben sei folgende Datendefinition: [10 P.] CREATE TABLE Wissenschaftler( SVNr int PRIMARY KEY, Vorname varchar(25) NOT NULL, Nachname varchar(25) NOT NULL, Gehalt int NOT NULL

Mehr

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

Verteilte Systeme. Replikation & Konsistenz I. Prof. Dr. Oliver Haase Verteilte Systeme Replikation & Konsistenz I Prof. Dr. Oliver Haase 1 Überblick Replikation & Konsistenz I Ziele von Replikation Replikationsmodelle datenzentriert Client-zentriert Replikation & Konsistenz

Mehr

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

9.2.4 Phantomproblem. Mächtigkeit von 2PL. Lösung des Phantomproblems. bisherige implizite Annahme 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

Mehr

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

Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung Prof. Dr. Manfred Gruber FH München Transaktions-Konzept (1) Beispiel: op 1 BOT op 2 read(k 1

Mehr

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

Mächtigkeit von 2PL. Geben Sie einen Schedule S an, der. konfliktserialisierbar, jedoch nicht bei Anwendung von 2PL entstehbar. ist. 9. Transaktionsverwaltung 9.2. Mehrbenutzerkontrolle Rückblick Rückblick Geben Sie einen Schedule S an, der ist. konfliktserialisierbar, jedoch nicht bei Anwendung von 2PL entstehbar Mächtigkeit von 2PL

Mehr

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

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

Mehr

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

Transaktionsmanagement - Einführung. Prof. Dr. T. Kudraß 1 Transaktionsmanagement - Einführung Prof. Dr. T. Kudraß 1 Einführung Nebenläufige Ausführung von Benutzerprogrammen wesentlich für gute Performance des DBMS Weil Plattenzugriffe häufig und relativ langsam

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)

Mehr

Datenbanken 1. Sommersemester Übung 8

Datenbanken 1. Sommersemester Übung 8 Datenbanken 1 Sommersemester 2017 Übung 8 (v3.0-9.6.2017) Übersicht Aufgabe 1: Einfache Transaktionen Model (Lock/Unlock) Aufgabe 2: 2-Phasen-Sperrprotokoll (Two phase locking) Aufgabe 3: 2-Phasen-Sperrprotokoll

Mehr

Die mathematische Seite

Die mathematische Seite Kellerautomaten In der ersten Vorlesung haben wir den endlichen Automaten kennengelernt. Mit diesem werden wir uns in der zweiten Vorlesung noch etwas eingängiger beschäftigen und bspw. Ansätze zur Konstruktion

Mehr

Einführung in Subversion

Einführung in Subversion Einführung in Subversion Benjamin Seppke AB KOGS Dept. Informatik Universität Hamburg Was ist Subversion? Ein Server-basiertes Versions-Verwaltungs- System Ermöglicht mehreren Benutzern die gemeinsame

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Kürzeste Wege Maike Buchin 4. und 6.7.2017 Einführung Motivation: Bestimmung von kürzesten Wegen ist in vielen Anwendungen, z.b. Routenplanung, ein wichtiges Problem. Allgemeine

Mehr

Datenbanken 1. Sommersemester Übung 8

Datenbanken 1. Sommersemester Übung 8 Datenbanken 1 Sommersemester 2017 Übung 8 (v2.0-9.6.2017) Übersicht Aufgabe 1: Einfache Transaktionen Model (Lock/Unlock) Aufgabe 2: 2-Phasen-Sperrprotokoll (Two phase locking) Aufgabe 3: 2-Phasen-Sperrprotokoll

Mehr

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

Übung 14. Tutorübung zu Grundlagen Datenbanken (Gruppen DO-T24 / DO-T31 WS 2016/2017) Übung 14 Tutorübung zu Grundlagen Datenbanken (Gruppen DO-T24 / DO-T31 WS 2016/2017) Dennis Fischer dennis.fischer@tum.de http://home.in.tum.de/fischerd Technische Universität München Fakultät für Informatik

Mehr

Serialisierbarkeit von Historien: Minimalanforderung bzgl. "akzeptabler" Synchronisation

Serialisierbarkeit von Historien: Minimalanforderung bzgl. akzeptabler Synchronisation Rücksetzbarkeit Serialisierbarkeit von Historien: Minimalanforderung bzgl. "akzeptabler" Synchronisation von Transaktionen zusätzliche Forderung: lokale Rücksetzbarkeit von Historien, d.h. Jede Transaktion

Mehr

13 Auswahlaxiom und Zornsches Lemma

13 Auswahlaxiom und Zornsches Lemma 13 Auswahlaxiom und Zornsches Lemma Handout zur Funktionalanalysis I von H. Glöckner, 25.11.2008 Wichtige Teile der modernen Mathematik beruhen auf dem sogenannten Auswahlaxiom der Mengenlehre. Dieses

Mehr

Pessimistische Sperrverfahren für Transaktionen. Pessimistische Sperrverfahren für Transaktionen - Implementierung - von Oliver Lemm

Pessimistische Sperrverfahren für Transaktionen. Pessimistische Sperrverfahren für Transaktionen - Implementierung - von Oliver Lemm Pessimistische Sperrverfahren für Transaktionen - Implementierung - von Oliver Lemm Oliver Lemm Seite 1/24 I. Übersicht der Theorie I. Zusammenfassung der Theorie 2 Phasen Sperre in der Theorie & Deadlocks

Mehr

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

DATENBANKANWENDUNG. Wintersemester 2013/2014. Holger Schwarz Universität Stuttgart, IPVS DATENBANKANWENDUNG Wintersemester 2013/2014 Holger Schwarz Universität Stuttgart, IPVS holger.schwarz@ipvs.uni-stuttgart.de Beginn: 2 3.1 0.2013 Mittwochs: 1 1.4 5 1 5.15 Uhr, Raum 4 6-268 (Pause 13.00

Mehr

Logik. Gabriele Kern-Isberner LS 1 Information Engineering. TU Dortmund Wintersemester 2014/15 WS 2014/15

Logik. Gabriele Kern-Isberner LS 1 Information Engineering. TU Dortmund Wintersemester 2014/15 WS 2014/15 Logik Gabriele Kern-Isberner LS 1 Information Engineering TU Dortmund Wintersemester 2014/15 WS 2014/15 G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 1 / 125 Übersicht Modallogik 5. Grundlagen 6. Erfüllbarkeit

Mehr

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

Transaktionen. Michael Löwe 04/15/16. FHDW Hannover, Freundallee 15, Hannover  address: Transaktionen Michael Löwe 04/15/16 FHDW Hannover, Freundallee 15, 30173 Hannover E-mail address: michael.loewe@fhdw.de KAPITEL 1 Isolation 1.1. Formales Modell für Transaktionen und Ablaufpläne Zustand.

Mehr

mathematik und informatik

mathematik und informatik Prof. Dr. Gunter Schlageter et. al. Kurs 01672 Datenbanken II LESEPROBE mathematik und informatik Das Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere das Recht der Vervielfältigung

Mehr

Transaktionsverarbeitung und Nebenläufigkeitskontrolle. Jim Gray ( )

Transaktionsverarbeitung und Nebenläufigkeitskontrolle. Jim Gray ( ) Transaktionsverarbeitung und Nebenläufigkeitskontrolle Jim Gray (1944-2007) Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1. Lese den Kontostand von A in die Variable

Mehr

OPTIMISTIC & PESSIMISTIC LOCK Design Patterns PILLER NADIA SARBACH MATTHIAS

OPTIMISTIC & PESSIMISTIC LOCK Design Patterns PILLER NADIA SARBACH MATTHIAS OPTIMISTIC & PESSIMISTIC LOCK Design Patterns PILLER NADIA SARBACH MATTHIAS Agenda 2 Persistenz und ihre Muster (3 ) Optimistic Offline Lock (6 ) (Optimistisches Sperren) Pessimistic Offline Lock (5 )

Mehr

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

... T n T 1 T 2 T 3. Transaktions-Manager. Daten-Manager. Recovery-Manager Puffer-Manager. Datenbank Techniken der Schedule-Realisierung T 1 T 2 T 3.... T n Isolations-Eigenschaft wird durch den Scheduler sichergestellt. Aufgabe: : Koordination des Ablaufs konkurrierender Transaktionen so, dass deren

Mehr

Effizienter Planaritätstest Vorlesung am

Effizienter Planaritätstest Vorlesung am Effizienter Planaritätstest Vorlesung am 23.04.2014 INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER Satz Gegebenen einen Graphen G = (V, E) mit n Kanten und m Knoten, kann in O(n + m) Zeit

Mehr

Greedy Algorithms - Gierige Algorithmen

Greedy Algorithms - Gierige Algorithmen Greedy Algorithms - Gierige Algorithmen Marius Burfey 23. Juni 2009 Inhaltsverzeichnis 1 Greedy Algorithms 1 2 Interval Scheduling - Ablaufplanung 2 2.1 Problembeschreibung....................... 2 2.2

Mehr

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK Theoretische Grundlagen der Informatik 0 17.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Evaluation Ergebnisse

Mehr

Mehrbenutzersynchronisation

Mehrbenutzersynchronisation Mehrbenutzersynchronisation VU Datenbanksysteme vom 4.11. 2015 Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Nebenläufigkeit

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 7 und 8: Euler- und Hamilton-Graphen Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 17. April 2018 1/96 WIEDERHOLUNG Eulersche

Mehr

6.3 Verteilte Transaktionen

6.3 Verteilte Transaktionen 6.3 Verteilte Transaktionen Situation: Fragmentierung: Ein Datenbestand ist über mehrere Stationen verteilt (z.b. verteilte Datenbank, verteiltes Dateisystem,...) d.h. in Fragmente aufgeteilt, für die

Mehr

Teil III. Komplexitätstheorie

Teil III. Komplexitätstheorie Teil III Komplexitätstheorie 125 / 160 Übersicht Die Klassen P und NP Die Klasse P Die Klassen NP NP-Vollständigkeit NP-Vollständige Probleme Weitere NP-vollständige Probleme 127 / 160 Die Klasse P Ein

Mehr

Übungen zur Vorlesung. Datenbanken I

Übungen zur Vorlesung. Datenbanken I Prof. Dr. S. Böttcher Adelhard Türling Übungen zur Vorlesung Datenbanken I WS 2002/2003 Blatt 6 Aufgabe 1: In der Vorlesung haben Sie für die Einbringstrategie Update in Place die Vorgehensweisen steal,

Mehr

Datenbanken: Transaktionskonzept und Concurrency Control

Datenbanken: Transaktionskonzept und Concurrency Control Wesentlich für das Arbeiten mit Datenbanken sind konsistente Datenbestände! Folgerung: es muss sichergestellt werden, dass Datenmanipulationen von Benutzern immer in einem erneut konsistenten Zustand der

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphdurchläufe Maike Buchin 22. und 27.6.2017 Graphexploration Motivation: Für viele Zwecke will man den gesamten Graphen durchlaufen, zb. um festzustellen ob er (stark) zusammenhängt.

Mehr

Algorithmen zur Visualisierung von Graphen Lagenlayouts

Algorithmen zur Visualisierung von Graphen Lagenlayouts Algorithmen zur Visualisierung von Graphen Lagenlayouts Marcus Krug Institut für Theoretische Informatik 25.06.2009 1/ 41 E-Mail-Graph der Fakultät für Informatik 2/ 41 E-Mail-Graph der Fakultät für Informatik

Mehr

Datenbank- Verwaltungssysteme

Datenbank- Verwaltungssysteme Datenbank- Verwaltungssysteme Diana Troancă Babeș-Bolyai Universität Fakultät Mathematik und Informatik Dozent: Diana Troancă E-mail: dianat [at] cs.ubbcluj.ro Website: www.cs.ubbcluj.ro/~dianat/ Feedback

Mehr

Transaktionsverwaltung

Transaktionsverwaltung Kapitel l2 Transaktionsverwaltung Skript 2009 Matthias Schubert Dieses Skript basiert auf dem Skript zur Vorlesung Datenbanksysteme II von Prof. Dr. Christian Böhm gehalten im Sommersemester 2007 an der

Mehr

Freie Bäume und Wälder

Freie Bäume und Wälder (Martin Dietzfelbinger, Stand 4.6.2011) Freie Bäume und Wälder In dieser Notiz geht es um eine besondere Sorte von (ungerichteten) Graphen, nämlich Bäume. Im Gegensatz zu gerichteten Bäumen nennt man diese

Mehr