Transaktionsabwicklung in SQL-DB-Servern Vortrag von Michael Sand, MA Gliederung Abgrenzung des Themas Motivation Problemstellung Was ist Konsistenz? Was ist eine Transaktion? ACID-Eigenschaften Nebenläufigkeit: Concurrency Ansätze: pessimistisch vs. optimistisch Transaktionalität auf Applikationsebene Transaktionssicherung durch das DBMS Ausblick: Interaktion zwischen Systemen Abgrenzung des Themas Transaktionen zwischen Systemen TP Heavy Transaktionen in SQL-Datenbanken Transaktionen in Applikationen TP Lite Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Abgrenzung Motivation Fehlerquellen Problemstellung Motivation Warum Transaktionen? Beispiel Banküberweisung: 1. < T: read( Konto1 ) > 2. < T: update Konto1. Betrag von 0 auf 100 > 3. < T: update Konto2. Betrag von 1000 auf 900 > Kommt es nach Schritt 2 zu einem Ausfall, sind die Daten nicht mehr konsistent. Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Abgrenzung Motivation Fehlerquellen Problemstellung Fehler1: Dirty Read 1. <T1 Start> 2. <T1 Update Konto1 10.2000, 2.000> 3. 4. 5. 6. 7. <T1 Update Konto2 1.000, 9.000> 8. <T1 Commit> <T2 Start> <T2 Update Konto 1: * 1,04> <T2 Update Konto 2: * 1,04> <T2 Commit> Zinsen für 8.000 Euro wurden nicht berechnet! Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Abgrenzung Motivation Fehlerquellen Problemstellung Fehler 2: Unrepeateable Read 1. <T1 Start> 2. <T1 Read Konto1> 3. <T1 Update Konto 10.000, 2.000> 4. 5. 6. 7. 8. 9. <T1 Update Konto2 1.000, 9.000> 10. <T1 Commit> <T2 Start> <T2 Read Konto 1> <T2 Read Konto 2> <T2 Sum Konto 1, Konto2> <T2 Commit> Gesamtsumme wird falsch berechnet, Werte wurden gelesen, während sie geändert wurden! Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Abgrenzung Motivation Fehlerquellen Problemstellung Fehler 3: Lost Update 1. <T1 Start> 2. <T1 temp 1 = Konto1 + 1.000> 3. 4. 5. 6. 7. <T1 Konto 1 = temp 1> 8. <T1 Commit> <T2 Start> <T2 temp 2 = Konto 1 + 2000> <T2 Konto1 = temp 2> <T2 Commit> 2.000 Euro Zubuchung gehen verloren! Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Abgrenzung Motivation Fehlerquellen Problemstellung Problemstellung Die Abbildung von Geschäftsfällen müssen in der Datenbank abgesichert werden gegen: Physische Fehler Unkontrollierte unvereinbare gleichzeitige Zugriffe auf den Datenbestand Inkonsistente Benutzereingaben Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Abgrenzung Motivation Fehlerquellen Problemstellung Was ist Konsistenz? Physisch: korrekte interne Repräsentation und Speicherung der Daten im Datenbanksystem Logisch: Übereinstimmung mit dem abzubildenden Realitätsausschnitt R‘ R R: Realität M: Modell M‘ M Daten Daten Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Konsistenz Transaktion Was ist eine Transaktion? Eine Transaktion ist für einen SQL Server eine in sich geschlossene Arbeitseinheit. Eine Arbeitseinheit wird entweder vollständig ausgeführt oder gar nicht. Eine nur teilweise Ausführung einer Arbeitseinheit würde zu Inkonsistenzen der Daten führen. Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Konsistenz Transaktion Verschachtelte Transaktionen Main Transaction Begin Trans Commit Begin Trans Commit Begin Trans Begin Trans Commit Commit Begin Trans Commit Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Konsistenz Transaktion ACID-Eigenschaften Atomicity Consistency Isolation Durability Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Atomicity Consistency Isolation Durability ACID: Atomicity Alles oder Nichts Prinzip In Fehlersituationen wird die Transaktion abgebrochen und der Datenbestand wird in seinen ursprünglichen Zustand zurückversetzt. Begin Trans Commit Begin Trans Rollback Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Atomicity Consistency Isolation Durability ACID: Consistency Konsistenz = Widerspruchsfreiheit Vor Begin und nach dem Ende einer Transaktion muss ein konsistenter Zustand der Datenbank vorliegen. Während einer Transaktion können die Daten inkonsistent sein. Jede technisch implementierte Integritätsbedingung muss erfüllt sein. Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Atomicity Consistency Isolation Durability ACID: Isolation Jede Transaktion soll so durchgeführt werden, als wäre sie die einzige. Änderungen am Datenbestand durch eine Transaktion dürfen für andere Transaktionen erst am Ende der Transaktion sichtbar sein. Kein Unterschied zwischen Ein- und Mehrbenutzerbetrieb. Trans3 Trans2 Trans1 Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Atomicity Consistency Isolation Durability ACID: Durability Nach Abschluss einer Transaktion müssen alle Änderungen am Datenbestand auf einem sicheren Speichermedium festgehalten sein. Trans1 Daten Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Atomicity Consistency Isolation Durability Nebenläufigkeit: Concurrency Mehrere Transaktionen laufen gleichzeitig ab (Concurrency: Nebenläufigkeit) Mehrere Benutzer greifen gleichzeitig auf den Datenbestand zu. Transaktionen können im Konflikt zueinander stehen. Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Ansätze Ansätze: pessimistisch vs. optimistisch Optimistischer Ansatz: Alle Clients können auf alle Informationen zugreifen + keine Wartezeiten - Operationen müssen kommutativ sein - Umverteilung in sehr kleine Operationseinheiten keine Transaktionalität Pessimistischer Ansatz: Verwendete Daten sind für andere Clients z.T. gesperrt + Wahrung der ACID-Eigenschaften - Einrichtung von Sperrmechanismen notwendig - evtl. Wartezeiten durch Sperren / Integritätsprüfungen Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Ansätze Transaktionssicherung Transaktionalität auf Applikationsebene Stored Procedures Trigger TP Lite Transaktionalität auf DBMS-Ebene Rules Redo- / Undo-Logging Locks Validierung Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick TP Lite Applikationscode ist ins DBMS integriert. Funktionalität des DBMS ist erweitert. Keine Transaktionen zwischen heterogenen DBMS. Verschiedene aufgerufene SPs laufen als unterschiedliche Serverprozesse. Jeder Aufruf initiiert einen neuen Serverprozess (im Unterschied zu TP Heavy) Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Applikationsebene: Stored Procedures Trigger TP-Lite Transaktionalität auf Applikationsebene Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Stored Procedures Applikationscode, der mit SQL in das DBMS integriert ist. Alle Anweisungen der Prozedur werden ausgeführt, wenn die Prozedur aufgerufen wird Hat ACID-Eigenschaften (bei DB2, Oracle) Leistungsverhalten besser als bei SQLAnweisungen, die von der Applikation einzeln aufgerufen werden. wiederverwendbar Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Applikationsebene: Stored Procedures Trigger TP-Lite Trigger Applikationscode, der mit SQL in das DBMS integriert ist. Ein mit einem Ereignis (insert, delete, update) verbundene Aktion, die eine Veränderung im Relationsinhalt nach sich zieht. (zusammengesetzte) SQL-Anweisung, die automatisch bei einer Änderung einer benannten Tabelle ausgeführt wird. Wird verwendet um referenzielle Integrität zu erzwingen, komplexe Geschäftsregeln durchzusetzen und Datenveränderungen zu überwachen. Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Applikationsebene: Stored Procedures Trigger TP-Lite Trigger: inserted/deleted delete Trans insert Kopie der veränderten Daten Modell Typ Höhe Farbe Blizzard Tourenrad 26 Blau Flash Rennrad 26 Blau Jockl City-Bike 28 Rot Extreme Tourenrad 20 Weiss Boulder Bonanza 20 Rot Deleted (upd_old) Kopie der eingefügten Daten Modell Typ Höhe Farbe Runner Rennrad 26 Schwarz Boulder Bonanza 28 Rot Inserted (upd_new) Modell Typ Höhe Farbe Extreme Tourenrad 20 Weiss Boulder Bonanza 20 Rot Trigger Integritätsprüfung H A U P T S P E I C H E R Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Integrity Rules Stored Procedures Trigger TP-Lite TP Lite Applikationscode ist ins DBMS integriert, wird auf dem Server ausgeführt. Funktionalität des DBMS ist erweitert. Keine Transaktionen zwischen heterogenen DBMS. Verschiedene aufgerufene SPs laufen als unterschiedliche Transaktionen. Jeder Aufruf initiiert einen neuen Serverprozess (im Unterschied zu TP Heavy) Bsp.: MSSQL: Stored Procedures; Informix: user defined routines) Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Applikationsebene: Stored Procedures Trigger TP-Lite Transaktionalität auf DBMS-Ebene Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick DBMS: Rules Logging Locks Validierung Entity Rule Farbe Blau Grün Gelb In einer Grundrelation sind Null-Werte nicht zulässig. Schwarz violett rot <Null> Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick DBMS: Rules Logging Locks Validierung Integrity Rules Ein Eckstein des relationalen Modells, sichergestellt durch referentielle Integrität. Referentielle Integrität: Jede Wertausprägung eines Foreign Keys muß mit einer Wertausprägung eines Primary Keys in einer verknüpften Tabelle übereinstimmen. Farbe Blau Grün Gelb Schwarz violett rot weiss FK PK Modell Typ Höhe Farbe Bizzard Tourenrad 26 Blau Flash Jockl Extreme Rennrad City-Bike Tourenrad 26 28 20 Blau Rot Weiss Boulder Bonanza 20 Weiss Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick DBMS: Rules Logging Locks Validierung Enterprise Rules Vom Unternehmen festgelegte Bedingungen, die die Regeln der realen Welt in der Datenbank abbilden. Abteilung 5 20 MA max. Tabelle „Mitarbeiter“ darf maximal 20 Personen enthalten, die Abteilung 5 zugeordnet sind. Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick DBMS: Rules Logging Locks Validierung Logging: Log-Writer Database Buffer BenutzerProzesse Shared Pool DBWR Redo Log Buffer LGWR Online Redo Log-Dateien Datendateien Archive Offline Redo Log-Dateien Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick DBMS: Rules Logging Locks Validierung Logging einer Transaktion Schreib-Transaktionen werden in ein Log geschrieben, bevor sie auf der Datenbank ausgeführt werden. Commits werden ins Log geschrieben, nachdem sie auf der Datenbank durchgeführt wurden. Logbuch: 1. <T1 Start> 2. <T1 Konto 1 700, 600> 3. <T1 Konto 2 200, 300> 4. 5. 6. 7. <T1 Commit> Datenbank: <Konto 1 Update 600> <Konto 2 Update 300> <Commit> Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick DBMS: Rules Logging Locks Validierung Arten von Sperren: R/W Lesesperre (Rlock): hat eine Transaktion eine Lesesperre auf ein Objekt gesetzt, darf keine andere Transaktion darauf schreiben. Schreibsperre (Xlock): hat eine Transaktion eine Schreibsperre auf ein Objekt gesetzt, darf keine andere Transaktion darauf lesen oder schreiben. Kopatibilitätsmatrix: Angeforderte Rlock Sperre: Xlock Gehaltene Sperre: Rlock Xlock Ja Nein Nein Nein Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick DBMS: Rules Logging Locks Validierung Arten von Sperren: Granularität Ein modernes DBMS errichtet automatisch Sperren auf der kleinsten möglichen Ebene. Rowlock Modell Typ Höhe Farbe Blizzard Tourenrad 26 Blau Flash Rennrad 26 Blau Jockl City-Bike 28 Rot Extreme Tourenrad 20 Weiss Boulder Bonanza 20 Rot Tablock Modell Typ Höhe Farbe Blizzard Tourenrad 26 Blau Flash Rennrad 26 Blau Jockl City-Bike 28 Rot Extreme Tourenrad 20 Weiss Boulder Bonanza 20 Rot DML-Lock: Pagelock Blocksperre Keine Manipulationsänderungen DDL-Lock: Keine Definitionsänderungen Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick DBMS: Rules Logging Locks Validierung Arten von Sperren: Isolationsgrade Read_Uncommited: Daten können jederzeit gelesen werden. Read_Committed: Nur bestätigte Daten können gelesen werden. Repeatable Read: Dieselbe Anfragen liefern dasselbe Resultat. Serializable: Transaktionen, die gemeinsame Daten benutzen, werden faktisch nacheinander ausgeführt. Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick DBMS: Rules Logging Locks Validierung Fehler 4: Deadlocks 1. <T1: Start> 2. <T1: writelock (Konto 1)> 3. <T1: read (Konto 1)> 4. <T1:write (Konto 1)> 5. 6. 7. 8. <T1: writelock (Konto 2)> 9. T1 wartet auf T2 <T2: Start> <T2: writelock (Konto 2)> <T2: read (Konto 2)> <T2: writelock (Konto 1)> T2 wartet auf T1 Deadlock! Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick DBMS: Rules Logging Locks Validierung Two-Phase-Locking Jedes Datenelement wird vor dem Zugriff gesperrt und irgendwann nach dem Zugriff wieder freigegeben. In der 1. Phase werden Sperren nur angefordert, in der zweiten Phase nur freigegeben. In der 2. Phase darf eine Transaktion keine Sperren mehr anfordern, da sonst ein nicht serialisierbarer Ablauf entstehen könnte. Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick DBMS: Rules Logging Locks Validierung Two-Phase-Locking: Beispiel 1. <T1: Start> 2. <T1: writelock (Konto 1)> 3. <T1: write (Konto 1)> 4. <T1: unlock (Konto 1)> 5. 6. 7. 8. 9. 10. 11. 12. 13. <T1: writelock (Konto 2)> 14. <T1: write (Konto 2)> 15. <T1: unlock (Konto 2)> 16. <T1: Commit> Ende 1. Phase <T2: Start> <T2: readlock (Konto 1)> <T2: read (Konto 1)> Fehler! <T2: readlock (Konto 2)> Phantom Problem <T2: read (Konto 2)> <T2: unlock (Konto 1)> <T2: unlock (Konto 2)> <T2: Commit> Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick DBMS: Rules Logging Locks Validierung Transaktionen: Serialisierbarkeit Nebenläufige Transaktionen steigern die Performance. ? Nebenläufige Transaktionen gefährden die Konsistenz. Serialisierbarkeit durch Schedules Serialisierbarkeit ist der parallele Ablauf von Transaktionen in einer Weise, die einem seriellen Ablauf entspricht. Schedule: serialisierte, performance-optimierte und konsistenzsichernde Verzahnung von Transaktionen Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick DBMS: Rules Logging Locks Validierung Serialisierung: Schedule Serialisierbare Schedules gewährleisten, dass die einzelnen Schritte der verschiedenen Transaktionen serialisierbar sind (also nebeneinander ausgeführt werden können). Der Scheduler (System-Komponente) prüft die Transaktionen auf Serialisierbarkeit. Der Scheduler setzt und löscht Sperren automatisch. Dadurch wird die Serialisierung und Verzahnung der beteiligten Transaktionen gewährleistet. Konfliktserialisierbarkeit Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick DBMS: Rules Logging Locks Validierung Serialisierbarkeitsgraph Ein Pfeil führt von Transaktion Tm zu Transaktion Tn, wenn Tm vor Tn auf dasselbe Datenbankobjekt zugreift und mindestens eine Operation eine Schreiboperation ist. Enthält der Serialisierbarkeitsgraph keine Zyklen, sind die Transaktionen serialisierbar. Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick DBMS: Rules Logging Locks Validierung Serialisierbarkeitsgraph: Beispiel T1, T2, T3 bilden den Schedule S - T1 liest A, bevor T2 A schreibt: Pfeil von T1 nach T2 - T2 schreibt A bevor T3 A liest: Pfeil von T2 nach T3 - T3 liest B, bevor T1 B schreibt: Pfeil von T3 nach T1 Der Serialisierbarkeitsgraph ist zyklisch, die Transaktionen sind nicht serialisierbar. T1 T3 T2 Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick DBMS: Rules Logging Locks Validierung Drei-Phasen Validierung Alle Transaktionen werden zunächst ohne Rücksicht auf Konflikte durchgeführt und anschließend wird geprüft, welche parallel ablaufen durften und welche nicht. 1. Phase: Transaktionen dürfen in der Datenbank nur lesen, Schreiboperationen werden ins Logbuch eingetragen. 2. Phase (Validierungsphase): das DBMS testet, welche Konflikte die Transaktion mit parallelen Transaktionen hat. 3. Phase: falls die Validierung erfolgreich war, werden die Schreiboperationen aus dem Logbuch in die DB übertragen; falls nicht, wird die Transaktion nach Abschluss der parallelen Transaktionen nochmals durchgeführt. Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick DBMS: Rules Logging Locks Validierung Mögliche Validierungszustände 1. Transaktionen wurden beendet, bevor die neue Transaktion begann: T1: R/W keine Validierung notwendig. 2. Transaktionen, die während der Lesephase T2: R/W der neueren Transaktion ihre Schreibphase beendeten: Validierung der Schreiboperationen der älteren gegen die Leseoperationen der T1: W ? T2: R neueren Transaktion. 3. Transaktionen, die während der Validierungsphase der neueren Transaktion ihre Schreibphase beendete: Validierung der Schreiboperationen der T1: W älteren gegen Lese- und Schreiboperationen ? T2: R/W der neueren Transaktion. Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick DBMS: Rules Logging Locks Validierung Ausblick: verteilte Systeme Einfache und schnelle Verknüpfung der Anwendungssysteme auf Basis flexibeler Kollaborationsszenarien. Unternehmensübergreifende Interoperabilität auf Basis einer gemeinsam genutzten Plattform. Zukünftige ERPLösung Datenverarbeitung nahezu in Echtzeit über alle Applikationen, hinweg. Hohe Datenqualität durch unternehmensübergreifend integrierte Verwaltung verteilt gehaltener und gepflegter Datenbestände. Quelle: Detecon White Paper: ERP-Strategien im Collaborativen Busniess, März 2003 Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Interaktion Two Phase Commit Three Phase Commit TP Heavy Transaktionen der Zukunft Quelle: Detecon White Paper: ERP-Strategien im Collaborativen Busniess, März 2003 Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Interaktion Two Phase Commit Three Phase Commit TP Heavy Two-Phase-Commit 1. Phase: Prepare-to-Commit-Anfrage des Koordinators an alle Teilnehmer, die Transaktion vorzubereiten (Can Commit?). Die Teilnehmer führen die Operatonen aus und antworten mit „Ready to Commit!“. 2. Phase: Der Koordinator sendet je nach Reaktion der Teilnehmer (Ready/Not Ready) sein globales Commit oder Abort. Die Teilnehmer antworten mit „Have Committed“. Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Interaktion Two Phase Commit Three Phase Commit TP Heavy Three-Phase Commit 1. Phase: Prepare-to-Commit-Aufruf des Koordinators an alle Teilnehmer, ihre Operationen auszuführen (Can Commit?). Die Teilnehmer führen die Operationen aus und antworten mit „Ready!“. 2. Phase: Der Koordinator sendet je nach Reaktion der Teilnehmer (Ready/Not Ready) eine Prepare- oder Abort-Aufforderung. Die Teilnehmer antworten mit „Acknowledged“. Schlägt der Koordinator fehl, führen die Teilnehmer automatisch einen Abort durch. 3. Phase: Sendet ein Teilnehmer kein „Acknowledged“ gibt der Koordinator einen globalen Abort aus, bestätigen alle Teilnehmer positiv, sendet der Koordinator ein globales Commit. Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Interaktion Two Phase Commit Three Phase Commit TP Heavy Transaktionsmonitoring: TP-Heavy ACID-Aktualisierungen werden durch mehreren heterogenen Ressourcenmanagern durchgeführt und bleiben trotzdem im Rahmen einer einzigen Transaktion. Garantierte Neutralität gegenüber Ressourcen. Multiplexing der Client-Anfragen: TP-Monitor ist „Platzanweiser“ und weist DLL-Ausführungen Serverklassen (Pools von bereits laufenden Prozessen oder Threads) zu (Trichterfunktion). Bei Bedarf erzeugt der TP-Monitor neue Serverklassen (load balancing) Priorisierung der Anfragen (RPCs, MOM-Queues, Batch-Läufe etc.) Einleitung Definitionen ACID-Eigenschaften Nebenläufigkeit Transaktionssicherung Ausblick Interaktion Two Phase Commit Three Phase Commit TP Heavy Vielen Dank für Ihre Aufmerksamkeit! Ende