verteilte Transaktionssysteme

Slides:



Advertisements
Ähnliche Präsentationen
Kapitel 15 Verteilte Datenbanken
Advertisements

Einführung "Datenbanksysteme"
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Datenbank-Definitionen
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Transaktionsverwaltung
Transaktionsverwaltung
Basis-Architekturen für Web-Anwendungen
PC-Cluster.
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.
Datenbankzugriff im WWW (Kommerzielle Systeme)
Agenda 1. Wie funktionieren Netzwerke ? 2. Agenda 3.
Datenbanken I (0,*) Produkt 3 Karczewski Datenbanken I.
Open Database Connectivity (ODBC). © Prof. T. Kudraß, HTWK Leipzig Open Database Connectivity (ODBC) Idee: – API für eine DBMS, das ein Call-Level-Interface.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Transaktionen in verteilten Datenbanken
Replikation in Datenbanksystemen.
Transaktionsmonitore Teil IV Überblick über Produkte neben CICS.
Access 2000 Datenbanken.
Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz.
Seminar: Verteilte Datenbanken
Datenbanksysteme für FÜ SS 2000 Seite Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz Isolation.
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
Informationssysteme SS Informationssysteme Grundvorlesung Informatik Sommersemester 2004 Universität des Saarlandes, Saarbrücken Dr. Ralf Schenkel.
Einige Begriffe zum Anfang.... Transaktionsprozedur: Folge primitiver Operationen als Einheit der Konsistenz und der Robustheit. Transaktion (TA): Ausführung.
Ausführungsmodell Zustandsübergang einer Transaktion aus Nutzersicht:
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
Einführung und Überblick
... und alles was dazugehört
Internet: Funktionsweise und Dienste
Vergleich der verschiedenen kommerziellen Datenbanksysteme
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
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)
Allgemeines zu Datenbanken
HORIZONT 1 XINFO ® Das IT - Informationssystem Eclipse Plugin HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Die Architektur von Jini Präsentation von Thomas Heinis & Michea Wankerl Seminar Information & Kommunikation WS 2000/01.
Präsentation von Lukas Sulzer
Flexible Datensicherung für kleine und mittlere Unternehmen
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.
Datenanbindung in Webapplikationen
ADAT©2004,2006 Dipl. - Ing. Walter SabinSeite: 48 Version 1.0a Recovery Wiederherstellung eines konsistenten Datenbankzustandes nach Fehlersituationen.
Transaktionen Dr. Heidrun Bethge Datenbanken II.
Kaseya Virtual System Administrator Produkt Update 7.0 Rocco van der Zwet Copyright ©2014 Kaseya 1.
PHP PHP ( „PHP Hypertext Preprocessor") ist eine Skriptsprache
Transaktionsverwaltung
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
PHP:: Hypertext Preprocessor Einführung Praxis. PHP:: Hypertext Preprocessor Jetzt mal von der anderen Seite © All rights reversed2 PHP:: Hypertext Preprocessor.
Datenbanken im Web 1.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Abhängigkeiten zwischen Transaktionen (Fehlerklassen) u Lost-Update-Problem u Dirty Read.
Vs Verteilte Transaktionen Situation:Fragmentierung: Ein Datenbestand ist über mehrere Stationen verteilt (z.B. verteilte Datenbank, verteiltes Dateisystem,...)
Datenbank System (DBS) - Warum?
6.3 Verteilte Transaktionen
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #12 Mehrbenutzersynchronisation.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Marktanteile RDBS Deutschland ,9% 9,5% 4,4% 4,7% 23,8% 7,7% Quelle: Dataquest Oracle.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
IS: Datenbanken, © Till Hänisch 2000 Einführung Worüber reden wir hier eigentlich ?
6.3 Verteilte Transaktionen
Vorlesung Datenbankprogrammierung
Einführung "Datenbanksysteme"
 Präsentation transkript:

verteilte Transaktionssysteme Wolfgang Bartels

Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz Bezah-lung Buch-haltung Bank Rech-nung Bank-konto Kunde Vertrag Liefer-schein Spedi-teure Lager Zulie-ferer

Was sollte man nach diesem Vortrag gelernt haben ? Was sind Transaktionen und warum sind sie wichtig ? Welche Probleme entstehen in diesem Kontext und wie werden sie gelöst ? Wo werden Transaktionen eingesetzt ? Welche Produkte arbeiten mit diesem Konzept ? Erkundigen Sie sich nach relevanten Erfahrungen und Interessen des Publikums.

Tagesordnung Grundlagen Produkte Transaktionen Grundbegriffe Concurrency Control Probleme Sperrprotokolle Transaktionen in verteilten Systemen verteilte Transaktionssysteme Das 2-Phasen-Commit-Protokoll Produkte Datenbanksysteme unter Linux

Transaktion Eine Transaktion ist eine Menge von Operationen (z.B. DB-Operationen oder Nachrichten), die folgende Eigenschaften erfüllt : Atomicity (Atomarität) Consistency (Konsistenz) Isolation Durability (Dauerhaftigkeit) Eine Transaktion wird mit einem BeginTransaction (BeginTA) eingeleitet. Eine erfolgreiche Beendigung einer Transaktion wird mit einem COMMIT abgeschlossen Eine fehlerhafte Beendigung wird mit einem ROLLBACK abgeschlossen ACID

Atomicity Es werden entweder alle Operationen der Transaktion ausgeführt oder keine von ihnen („Alles oder Nichts“-Prinzip)

Consistency (Konsistenz) Die Transaktion ist die Einheit der Datenbankkonsistenz. Nach Beendigung der Transaktion sind alle physischen und logischen Integritätsbedingungen erfüllt. D.h. nach Beendigung der Transaktion befindet sich das System in einem konsistenten Zustand

Isolation Die Transaktion wird auch in einem Mehrbenutzerbetrieb so ausgeführt, als würde sie im Einbenutzerbetrieb arbeiten (logischer Einbenutzerbetrieb). Dadurch wird das Ausbleiben unerwünschter Nebeneffekte garantiert !

Durability (Dauerhaftigkeit) Die von einer erfolgreich abgeschlossenen Transaktion getätigten Änderungen sind persistent und überleben jeden danach auftretenden Hard- und Softwarefehler.

Beispiel für Transaktionen Eine Banküberweisung von Konto1 auf Konto2: BeginTA Wenn Kontostand1 >= Überweisungsbetrag erhöhe Kontostand1 um den Überweisungsbetrag Wenn Konto2 existiert vermindere Kontostand2 um den Überweisungsbetrag Sonst ROLLBACK COMMIT

Probleme mit Transaktionen read(Kontostand) Kontostand += 100 read(Kontostand) Kontostand += 1.000.000 write Kontostand write Kontostand „Lost-Update-Problem“

Concurreny Control durch Sperrprotokolle Problem : überlappende Transaktionen arbeiten auf den gleichen Datensätzen mit Lese- und Schreiboperationen Lösungen Zeitstempelverfahren Sperrprotokolle (z.B. 2 Phase Locking Protocol)

Sperrprotokolle Eine Sperre ist ein (zeitlich begrenztes) „Zugriffsprivileg“ auf ein Datenobjekt. Es existieren 2 Arten von Sperren Lese- und Schreibsperren. Es sind nur Lesesperren miteinander verträglich Ein Sperrprotokoll beschreibt die Reihenfolge der Sperraktionen, d.h. der Sperranfragen und – freigaben Ein Sperrverwalter ist eine Komponente, die Sperren gemäß dem Sperrprotokoll gewährt, verweigert bzw. aufhebt

Das 2-Phasen-Sperrprotokoll Regeln Ehe eine TA ein Objekt liest, muss es eine Lesesperre darauf besitzen Ehe eine TA ein Objekt schreibt, muss es eine Schreibsperre besitzen Fängt eine TA an seine Sperren aufzugeben, kann es keine neuen erhalten (d.h. eine TA hält ihre Sperren bis zu ihrem Ende) 2 TA‘s können nicht gleichzeitig unverträgliche Sperren auf demselben Objekt halten

Tagesordnung Fragen ? Grundlagen Produkte Transaktionen Grundbegriffe Concurrency Control Probleme Sperrprotokolle Transaktionen in verteilten Systemen verteilte Transaktionssysteme Das 2-Phasen-Commit-Protokoll Produkte Datenbanksysteme unter Linux Fragen ?

verteilte Transaktionssysteme (vTS) In einem vTS erfolgt die Verarbeitung von verteilten Transaktionen unter Kontrolle von TP-Monitoren. Ein TP-Monitor ist eine Komponente eines Transaktions-systems, welche folgende Aufgaben übernimmt: die Ausführung von Transaktionsprogrammen Nachrichtenverwaltung Transaktionsverwaltung Authentifikation und Authorisierung Kommunikation von Programmen und Terminals Punkt 3. wird durch eine Teilkomponente – den Transaktionsmanager (TM) – realisiert.

Transaktionsverarbeitung in Client/Server-Systemen End-user interface Functional Logic Data Access Applikation Distributed Presentation Remote Logic Data Client/Server Cut Abb.2: Client/Server-Topologien Client TP-Monitor Server DBMS DB Abb.1: Client/Server-Konfiguration Remote presentation: - klassisch - Aufrufgranulat ist ganzer Transaktionsauftrag - Mehrrechner DBS Distributed Logic: - Remote Data - aufwendigster Ansatz - integrierte Mehrrechner DBS oder föderative DBS

verteilte Transaktionen Ausführung der Transaktion auf einem oder mehreren Knoten (Rechnern). Der Knoten, auf dem die Transaktion begonnen wurde heißt Heimatknoten bzw. Koordinator (-Knoten). Annahme : Jeder Knoten besitzt einen Transaktionsmanager An jedem beteiligten Knoten wird eine Teil- bzw. Subtransaktion ausgeführt. SubTA können wieder aufgetilt werden .Es entsteht Baumstruktur.

Probleme bei verteilten Transaktionen Work BeginTA Doing Commit BeginTA Doing BeginTA TM1 Done BeginTA Doing BeginTA BeginTA Doing Rollback Koordinator Work Abort BeginTA BeginTA Doing BeginTA Doing Rollback TM2

Das 2-Phasen-Commit Protokoll (2PC) Bei Transaktionsende schickt Koordinator ein PREAPRE-Nachricht gleichzeitig an alle Agenten, um deren lokales Commit-Ergebnis in Erfahrung zu bringen. Erhalt der PREPARE-Nachricht beim Agenten: erfolgreiche Ausführung der Subtransaktion Sicherung des Ergebnisses (KEIN lokales Commit!) Antwort: READY-Nachricht fehlgeschlagene Ausführung der Subtransaktion Abbrechen der Subtransaktion (Rollback) Antwort: FAILED-Nachricht

2PC – 2.Phase Alle Nachrichten sind beim Koordinator eingetroffen: Alle Nachrichten lauten READY Der Koordinator sendet an alle Agenten gleichzeitig eine COMMIT-Nachricht Mindestens eine Nachricht lautet FAILED Der Koordinator sendet an alle Agenten gleichzeitig eine ABORT-Nachricht Verarbeitung des COMMIT / ABORT auf lokaler Ebene. Antwort: ACK

Eine gescheiterte verteilte Transaktion im 2PC PREPARE ABORT Work BeginTA Doing Done Rollback BeginTA Doing BeginTA Doing Done BeginTA TM1 BeginTA Doing BeginTA Doing Done BeginTA BeginTA Doing Done Rollback FAILED ACK Done Koordinator READY Work Done ACK READY BeginTA Doing Done Rollback BeginTA Doing Done BeginTA Doing BeginTA TM2

Tagesordnung Fragen ? Grundlagen Produkte Transaktionen Grundbegriffe Concurrency Control Probleme Sperrprotokolle Transaktionen in verteilten Systemen verteilte Transaktionssysteme Das 2-Phasen-Commit-Protokoll Produkte Datenbanksysteme unter Linux Fragen ?

Datenbanksysteme unter Linux Adabas D Ovrimos mySQL Sybase Adaptive Server Enterprise SynchroNet Sonstige

Adabas D Hersteller : SAG Systemhaus aktuelle Version: 11.01 Verfügbarkeit / Kosten : S.u.S.e / unbekannt Features: verteiltes DBS Hohe Verfügbarkeit 7 x 24h-Betrieb Spiegelplattenbetrieb Interfaces JDBC (Version 1.2) ODBC WebDB Internet und Intranetintegration virtuelles File-System dynamisches HTML SQL ANSI-92, ADABAS, ORACLE

DBMaker Hersteller : CaseMaker Inc. aktuelle Version: ? Verfügbarkeit / Kosten : ? Features: Portierbar Skalierbar Robust Recovery Auto-Backup Konsistenzprüfung Multimedia Unterstützung Interfaces ODBC 2.1 SQL ANSI-92 verteiltes DBS ?

mySQL Hersteller : T.c.X. aktuelle Version: 3.22 (?); 3.23alpha Verfügbarkeit / Kosten : ? Features: viel Literatur Referenzliste Interfaces ODBC 2.5 (Win95) MS Access SQL-Standard (?) verteiltes DBS ? verwaltet große Datenmengen Probleme Linux Threads Gamma Locking (Linux) Gamma

Ovrimos Hersteller : Ovrimos S.A. aktuelle Version: 2.6 Verfügbarkeit / Kosten : s.o. / $79 - $20.000 Features: Nested Transactions BLOB Web HTTP-persistente Sessions ohne Cookies dynam. Content durch SchemeScripting (Interpreter in Ovrimos Interfaces JDBC (Version 1.1) ODBC (2.0) SQL ANSI (92 ?) Entry-Level

Sybase Adabtive Server Enterprise Hersteller : Sybase Inc. aktuelle Version: 11.9.2 Verfügbarkeit / Kosten : ? Features: verteiltes DBS Skalierbar Replikation read-write bidirektional Sybase DB2 Oracle Queryoptimierung Interfaces ODBC (?) SQL ANSI-89 ANSI-92 (Entry)

SynchroNet Hersteller : Solid Information Technology aktuelle Version: 2.0 Verfügbarkeit / Kosten : ? Features: verteiltes DBS Einbindung von Geschäftsprozessen in Transaktionen Portable Anwendungs-entwicklung Interfaces JDBC (Version 2) Native ODBC (3.51) SQL ANSI-92 Entry-Level

Sonstige Linuxdatenbanken GNU SQL-Server (OS) akt. Version 0.7b (Sept. 1998) Informix keine nennenswerten Internetinfos Infoflex Informix-Derivat Kosten : $995 – $20.000 InterBase (Borland / OS) PostgreSQL (OS) Objektrelational

Sonstige Linuxdatenbanken (2) Berkley DB Data Store (Sleepy Cat Software) drei Ausbaustufen dritte Stufe beinhaltet (möglicherweise) verteiltes DBS Yard Single Server ODBC, JDBC Lizenzschema ungünstig

Sonstige Linuxdatenbanken (3) DB2 verteilt objektrelational ODBC, JDBC hochverfügbar, skalierbar Oracle 8i hochverfügbar clusterskalierbar integrierte Java VM

Zusammenfassung Eine Transaktion ist eine Menge von Operationen, welche die ACID-Eigenschaften erfüllt. In einem Sperrprotokoll wird der Ablauf der Sperrvergabe und –freigabe geregelt verteilte Transaktionen benötigen zusätzlichen Kommunkationsaufwand vor Ihrer Beendigung (2PC)

Quellen (1) Bücher Vossen G. / Groß-Hardt M. : Grundlagen der Transaktionsverarbeitung , Bonn,Paris: Addison-Wesley, 1993 Rahm Erhard : Mehrrechner-Datenbanksysteme , Bonn,Paris: Addison-Wesley, 1994 Leymann, F. / Roller, D. : Production Workflow, Concepts and Techniques Upper Saddle River: Prentice-Hall, 2000

Quellen (2) Links http://www.adabas.com/sqlindex.html (Adabas D) http://www.dbmaker.com/prodinfo/index.html (DBMaker) http://www.mysql.com/ (mySQL) http://www.ovrimos.com/ (Ovrimos) http://www.sybase.com/products/databaseservers/linux/index.htmlSynchroNet (Sybase Adaptive Server Enterprise) http://www.solidtech.com/products/synchronet.html (SynchroNet)

Quellen (3) Links (Fortsetzung) http://www.ispras.ru/~kml/gss/ (GNU SQL-Server) http://www.postgresql.org (PostgreSQL) http://www.sleepcat.com (Berkley DB Data Store) http://www.interbase.com (Interbase) http://www.infoflex.com/sqlinfo.htm (Infoflex) http://www.yard.de (YARD) http://www-4.ibm.com/software/data/db2/ (DB2 UDB) http://platforms.oracle.com/linux/ (Oracle 8i)

Quellen (4) Vorlesungen Prof. Freytag Ph.D., J.C. : Grundlagen con Datenbanksystemen, HU-Berlin