6.3 Verteilte Transaktionen

Slides:



Advertisements
Ähnliche Präsentationen
Kapitel 15 Verteilte Datenbanken
Advertisements

Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Leistung.
Synchronisation paralleler Transaktionen AIFB SS Serialisierbarkeitsprinzip 4.3 Serialisierbarkeitsprinzip (5/13) Schedule: T* = {T 1,..., T.
Rücksetzen Bisher betrachtetes Scheduling gewährleistet Isolation, d.h. Serialisierbarkeit, setzt jedoch voraus, dass Transaktionen abgebrochen und rückgesetzt.
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Transaktionsverwaltung
Transaktionsverwaltung
Seminar zur Nebenläufigkeit in verteilten Systemen Kodierungsverfahren vorgestellt von Jens Brauckmann.
Vs61 6 Verteilte Datenverwaltung. vs62 Ziel:Zusammengehöriger Datenbestand soll über mehrere Stationen verteilt werden, z.B. Fragmentierung: in mehrere.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
Transaktionen in verteilten Datenbanken
Vorlesung 9.2: Specification Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Seminar: Verteilte Datenbanken
Datenbanksysteme für FÜ SS 2000 Seite Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz Isolation.
Kapitel 13: Mehrbenutzersynchronisation
Kapitel 14: Recovery Oliver Vornberger
1 Kapitel 12: Transaktionsverwaltung Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück Osnabrück
1 Kapitel 12: Transaktionsverwaltung. 2 Transaktion Bündelung mehrerer Datenbankoperationen Mehrbenutzersynchronisation Recovery.
15.1 Synchronisation nebenläufiger Prozesse
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel.
Synchronisation paralleler Transaktionen AIFB SS Synchronisationsverfahren 4.4 Synchronisationsverfahren (1/18) Sperrmodi und Sperrobjekte Sperrprotokoll.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
ausdrucksschwächeres
Einige Begriffe zum Anfang.... Transaktionsprozedur: Folge primitiver Operationen als Einheit der Konsistenz und der Robustheit. Transaktion (TA): Ausführung.
Transaktion 1Transaktion 2... Transaktion n Synchronisation durch Scheduler Datenbasis-Verwalter lokaler Schedule 1lokaler Schedule n konfliktserialisierbarer.
Ausführungsmodell Zustandsübergang einer Transaktion aus Nutzersicht:
Implementierung von S2PL (1) Scheduler als Verwalter von Sperren auf Datenelementen sowie Warteschlangen für Sperren (Sperren-Verwalter). Transaktion 1Transaktion.
Modellierung von Transaktionen Zur Formalisierung der ACID-Garantien muss Verhalten von Transaktionen modelliert werden. Folge aus der Forderung nach lokaler.
Synchronisation paralleler Transaktionen AIFB SS Konzept der Transaktion 4.2 Konzept der Transaktion (1/4) Eine Transaktion ist ein in sich geschlossener,
Betriebliche Informationssysteme Prof. Dr. Michael Löwe
Ich möchte gerne mehrere Bilder auf ein Folie
WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #11 Transaktionsverwaltung.
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #10 Transaktionsverwaltung.
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #12 Mehrbenutzersynchronisation.
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #7 Mehrbenutzersynchronisation (Teil 1)
Die Architektur von Jini Präsentation von Thomas Heinis & Michea Wankerl Seminar Information & Kommunikation WS 2000/01.
Replikation und Synchronisation
Festschreibe-Protokoll (1) Globales Zwei-Phasen-Festschreibe-Protokoll (2- Phasen-Commit, 2PC): Phase 1: –Koordinator benachrichtigt Ressourcen, dass Commit.
Transaktion Huang Zhenhao FU Shuai.
Vorlesung #12 Mehrbenutzersynchronisation
Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung Prof. Dr. Manfred Gruber FH München.
ADAT©2004,2006 Dipl. - Ing. Walter SabinSeite: 48 Version 1.0a Recovery Wiederherstellung eines konsistenten Datenbankzustandes nach Fehlersituationen.
Übung: Transaktionale Systeme
Transaktionen Dr. Heidrun Bethge Datenbanken II.
Mehrbenutzerzugriff auf GIS-Daten
Transaktionsverwaltung
7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am.
6.1.2 Sequentielle Konsistenz
Persistenz: Objekt-Lebensdauer In RDBMS wird Lebensdauer von Werten durch ihren Typ festgelegt: Instanzen von Relationstypen sind persistent, alle anderen.
Synchronisation paralleler Transaktionen  AIFB SS Serialisierbarkeitsprinzip 4.3 Serialisierbarkeitsprinzip (2/13) Im folgenden wird ein vereinfachtes.
Synchronisation mit Zeitmarken (1) Zeitmarken-Synchronisation = einfaches, aber ineffizientes Verfahren zur Gewinnung konfliktserialisierbarer Schedules.
4.4 Sperrsynchronisation
Synchronisation paralleler Transaktionen  AIFB SS Synchronisationsverfahren 4.4 Synchronisationsverfahren (1/3) Typen von Synchronisationsverfahren.
Vs Replizierte Objekte Vollständige Replikationsabstraktion ist attraktiv und machbar. 2 Beispiele: Orca(H. Bal, VU Amsterdam, ) = klassenbasierte,
Vs51 5 Verteilte Datenverwaltung. vs52 Situation:Zusammengehöriger Datenbestand ist über mehrere Stationen verteilt, z.B. Fragmentierung: in mehrere Fragmente.
5.1.2 Sequentielle Konsistenz
Vs Verteilte Transaktionen Situation:Fragmentierung: Ein Datenbestand ist über mehrere Stationen verteilt (z.B. verteilte Datenbank, verteiltes Dateisystem,...)
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
NET Remoting.Net („dotnet“) :von Microsoft eingeführte Plattform für verteilte Anwendungen, virtuelle Maschine für die verteilte Ausführung von.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
EJB Architektur für große Web - Applikationen Gerald Weber
Vs61 6 Fehlertoleranz. vs62 Zuverlässigkeit (reliability) Sicherheit vor FehlernSicherheit vor Angriffen (safety)(security) WS/SS xySystemsicherheit SS.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #12 Mehrbenutzersynchronisation.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
SQL Basics Schulung –
6.3 Verteilte Transaktionen
7 Fehlertoleranz.
Peesel-Software Computersysteme KG
 Präsentation transkript:

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 jeweils ein Server zuständig ist. Auf diesem Datenbestand soll eine Operationsfolge "sicher" ausgeführt werden. vs6.3

Buchung einer Pauschalreise: Fragment Hotels + Fragment Flüge z.B.: Buchung einer Pauschalreise: Fragment Hotels + Fragment Flüge Konsistenzforderung: - keine Hotelbuchung ohne passende Flugbuchung - keine Flugbuchung ohne passende Hotelbuchung Überweisung: Fragment Bank A + Fragment Bank B Konsistenzforderung: - Es geht kein Geld verloren und es kommt keines hinzu vs6.3

 Operationen sollten transaktional ausgeführt werden Transaktion BEGIN . . . . . [ABORT] . . . . . COMMIT sichert die Eigenschaften Atomicity - Atomarität: alles oder nichts Consistence - Konsistenz: Invariante bleibt gewährleistet Isolation - Serialisierbarkeit bei nebenläufigen Zugriffen Durability - Persistenz: Daten bleiben dauerhaft erhalten vs6.3

Serialisierbarkeit Isolation: Transaktionen sollen voneinander unabhängig sein, im Interesse der Performanz sollen sie jedoch so "nebenläufig wie möglich" ausgeführt werden Serialisierbarkeit: Der Effekt der nebenläufigen Ausführung mehrerer Transaktionen soll der gleiche sein, als wären die Transaktionen nacheinander ausgeführt worden vs6.3

x = 0; x = x+1; x = x+2; x = x+3; x = 0; x = x+1; x = x+2; x = x+3; Transaktion T1: begin x = 0; x = x+1; commit Transaktion T2: begin x = 0; x = x+2; commit Transaktion T3: begin x = 0; x = x+3; commit Ausführungs- reihenfolge 1: x = 0; x = x+1; x = x+2; x = x+3; Ausführungs- reihenfolge 2: x = 0; x = x+1; x = x+2; x = x+3; Ausführungs- reihenfolge 1: x = 0; x = x+1; x = x+2; x = x+3; serialisiert (x==3) nicht serialisiert aber OK (x==3) nicht OK (x==5) vs6.3

6.3.1 Serialisierbarkeit durch Ausschlusssynchronisation nur praktikabel für kleine fragmentierte Objekte, nicht für ganze Datenbanken! Möglichkeiten:  Verteilter Ausschluss (5.4 Sperrsynchronisation durch zentralen Koordinator, virtuellen Token Ring oder verteilte Warteschlange) zu strikt angesichts lesender vs. schreibender Operationen vs6.3

 Verteilter R/W-Ausschluss: a) In virtuellem Ring kreisende Marke (5.4.2) trägt Zähler m = Anzahl der gerade aktiven lesenden Operationen; schreibwillige Operation muß auf Marke mit m = 0 warten und diese festhalten. Nachteil: strikte Bevorzugung der Leser vs6.3

b) Virtueller Ring von n Stationen, kreisende Marke enthält m „Stimmen“ (anfangs m = n); festgelegte Quoren für Lese- bzw. Schreibrecht Leser braucht r Stimmen Schreiber braucht w Stimmen, mit folgenden Bedingungen für r und w: r + w  n (keine Leser-Schreiber-Konflikte) n/2  w  n (keine Schreiber-Schreiber-Konflikte) ( 0  r  n ) vs6.3

C schreiben (m<5) Leser-Schreiber-Ausschluss Beispiel: n = 8 r = 4 w = 5 (m = 8) A lesen m -= 4 (4) B lesen m -= 4 (0) C schreiben (m<5) Leser-Schreiber-Ausschluss D lesen (m<4) im Unterschied zu Variante a) ... weniger Leser gleichzeitig A fertig m += 4 (4) B fertig m += 4 (8) C schreiben m -= 5 (3) D lesen (m<4) Leser-Schreiber-Ausschluss ... vs6.3

etwas bessere Fairness für Schreiber Fairness "einstellbar" Variante r = 1, w = n äquivalent zu a) Vorteile werden erkauft durch eingeschränkte Nebenläufigkeit für die Leser c) Varianten anderer Ansätze aus 5.4 vs6.3

beteilige Server starten lokale Transaktion 6.3.2 Serialisierbarkeit durch verteilte Transaktionen (sichern nicht nur Serialisierbarkeit, sondern ACID insgesamt) naiver Ansatz: beteilige Server starten lokale Transaktion Koordinator fordert sie auf Wunsch des Klienten zum Commit oder Abort auf (kein Abbruch durch andere Server möglich) Koordinator Verteiltes Objekt . . . . . . . . . . . Klienten Abbruch nötig bei z.B. Deadlock-Auflösung, optimistisches Sperrverfahren vs6.3

BEGIN: alle beteiligten Server werden zu lokalem BEGIN aufgefordert 2-Phasen-Commit-Protokoll (2PC) (nicht verwechseln mit 2-Phasen-Sperren, 2PL) beteiligte Server müssen sich bei Commit-Wunsch einig werden über Abschluss oder Abbruch der verteilten Transaktion BEGIN: alle beteiligten Server werden zu lokalem BEGIN aufgefordert ABORT: alle beteiligten Server werden zu lokalem ABORT aufgefordert COMMIT: 2PC tritt in Aktion: . . . 2-Phasen-Sperren: Transaktionen benötigen Sperren für bestimmte Objekten. Es gibt eine aufsteigende und eine absteigende Phase. In der ersten werden nur Sperren angefordert, jedoch keine freigegeben, in der zweiten umgekehrt. Kann zu Deadlocks führen. Lösung: Sperren in einer festen Reihenfolge anfordern. vs6.3

1. „Commit?“ an alle Server; Phase 1 – Abstimmen: 1. „Commit?“ an alle Server; 2. diese prüfen, ob Commit möglich wäre und antworten mit „Ja“ oder „Nein“. Phase 2 – Abschließen nach Eintreffen aller Anworten: 3. Falls alle Server mit „Ja“ geantwortet haben, „Commit!“ an alle Server, sonst „Abort!“ an alle Server; 4. diese befolgen den Befehl und quittieren. Präzisierung/weiter Absicherung unter Zuhilfenahme diverser Timeouts – siehe z.B. Coulouris et al.: Verteilte Systeme vs6.3

Geschachtelte Transaktionen (nested transactions): Die Teiltransaktionen können wiederum Teiltransaktionen haben X T11 W T1 U T12 X T Y T T21 Y T2 V Z T22 Z flache (verteilte) Transaktion verschachtelte Transaktion vs6.3

- Erhöhung des Parallelitätsgrades Vorteile: - Erhöhung des Parallelitätsgrades - Abbruch einer Kind-Transaktion muss nicht unbedingt Abbruch der Eltern-Transaktion zur Folge haben (letztere ist programmatisch darauf vorbereitet) weitere Details: Özsu/Valduriez: Principles of Distributed Database Systems vs6.3