Upload
baldric-weiske
View
109
Download
0
Embed Size (px)
Citation preview
verteilte Transaktionssystemeverteilte TransaktionssystemeWolfgang Bartels
Zulie-ferer
Bedürfnisse von Bedürfnisse von E-Commerce-SystemenE-Commerce-Systemen
Verwaltung großer DatenmengenSicherheit und Konsistenz
VertragKunde
Rech-
nung
Buch-haltung
Lager
Spedi-teure
Liefer-schein
Bank-konto
BankBezah-
lung
Was sollte man nach diesem Was sollte man nach diesem Vortrag gelernt haben ?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 ?
TagesordnungTagesordnung
Grundlagen– Transaktionen
Grundbegriffe Concurrency Control
– Probleme– Sperrprotokolle
– Transaktionen in verteilten Systemen verteilte Transaktionssysteme Das 2-Phasen-Commit-Protokoll
Produkte– Datenbanksysteme unter Linux
TransaktionTransaktion 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
AtomicityAtomicity
Es werden entweder alle Operationen der Transaktion ausgeführt oder keine von ihnen
(„Alles oder Nichts“-Prinzip)
Consistency (Konsistenz)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
IsolationIsolation
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)Durability (Dauerhaftigkeit)
Die von einer erfolgreich abgeschlossenen Transaktion getätigten Änderungen sind persistent und überleben jeden danach auftretenden Hard- und Softwarefehler.
Beispiel für TransaktionenBeispiel für Transaktionen
BeginTAWenn Kontostand1 >= Überweisungsbetrag
erhöhe Kontostand1 um den Überweisungsbetrag
Wenn Konto2 existiertvermindere Kontostand2 um den Überweisungsbetrag
SonstROLLBACK
COMMIT
Eine Banküberweisung von Konto1 auf Konto2:
Probleme mit TransaktionenProbleme mit Transaktionen
read(Kontostand)Kontostand += 100
„„Lost-Update-Problem“Lost-Update-Problem“
Transaktion1 Transaktion2
read(Kontostand)Kontostand += 1.000.000write Kontostand
write Kontostand
Concurreny Control durch Concurreny Control durch SperrprotokolleSperrprotokolle
Problem :– überlappende Transaktionen arbeiten auf den
gleichen Datensätzen mit Lese- und Schreiboperationen
Lösungen– Zeitstempelverfahren– Sperrprotokolle (z.B. 2 Phase Locking
Protocol)
SperrprotokolleSperrprotokolle 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-SperrprotokollDas 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
Grundlagen– Transaktionen
Grundbegriffe Concurrency Control
– Probleme– Sperrprotokolle
– Transaktionen in verteilten Systemen verteilte Transaktionssysteme Das 2-Phasen-Commit-Protokoll
Produkte– Datenbanksysteme unter Linux
TagesordnungTagesordnung
verteilte Transaktionssysteme verteilte Transaktionssysteme (vTS)(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:
1. die Ausführung von Transaktionsprogrammen2. Nachrichtenverwaltung3. Transaktionsverwaltung 4. Authentifikation und Authorisierung5. Kommunikation von Programmen und Terminals
Punkt 3. wird durch eine Teilkomponente – den Transaktionsmanager (TM) – realisiert.
Transaktionsverarbeitung in Transaktionsverarbeitung in Client/Server-SystemenClient/Server-Systemen
ClientTP-Monitor
Server
TP-Monitor
DBMS
DB
Server
TP-Monitor
DBMS
DB
Abb.1: Client/Server-Konfiguration
End-user interface
Functional Logic
Data Access
DistributedPresentation
RemotePresentation
DistributedLogic
RemoteData
DistributedData
Client/ServerCut
Abb.2: Client/Server-Topologien
verteilte Transaktionenverteilte 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.
Probleme bei verteilten Probleme bei verteilten TransaktionenTransaktionen
Koordinator
TM1
TM2Work
Work BeginTA
Done
AbortBeginTA
BeginTADoingBeginTADoingCommit
BeginTADoingBeginTADoingRollback
BeginTABeginTADoingBeginTADoingRollback
Das 2-Phasen-Commit Das 2-Phasen-Commit Protokoll (2PC)Protokoll (2PC)
1. Phasea) Bei Transaktionsende schickt Koordinator ein
PREAPRE-Nachricht gleichzeitig an alle Agenten, um deren lokales Commit-Ergebnis in Erfahrung zu bringen.
b) Erhalt der PREPARE-Nachricht beim Agenten: i. erfolgreiche Ausführung der Subtransaktion
Sicherung des Ergebnisses (KEIN lokales Commit!) Antwort: READY-Nachricht
ii. fehlgeschlagene Ausführung der SubtransaktionAbbrechen der Subtransaktion (Rollback)Antwort: FAILED-Nachricht
2PC – 2.Phase2PC – 2.Phase
c) Alle Nachrichten sind beim Koordinator eingetroffen:
i. Alle Nachrichten lauten READYDer Koordinator sendet an alle Agenten gleichzeitig eine COMMIT-Nachricht
ii. Mindestens eine Nachricht lautet FAILEDDer Koordinator sendet an alle Agenten gleichzeitig eine ABORT-Nachricht
d) Verarbeitung des COMMIT / ABORT auf lokaler Ebene.Antwort: ACK
Eine gescheiterte verteilte Eine gescheiterte verteilte Transaktion im 2PCTransaktion im 2PC
Koordinator
TM1
TM2Work
Work BeginTA
Done
DoneBeginTA
BeginTADoingBeginTADoingDone
BeginTADoingBeginTADoingDone
BeginTABeginTADoingBeginTADoingDone
PREPARE
PREPARE
FAILED
READYREADY
BeginTADoingDoneRollback
ABORT
ABORT
BeginTADoingDoneRollback
BeginTADoingDoneRollback
ACK
ACK
Grundlagen– Transaktionen
Grundbegriffe Concurrency Control
– Probleme– Sperrprotokolle
– Transaktionen in verteilten Systemen verteilte Transaktionssysteme Das 2-Phasen-Commit-Protokoll
Produkte– Datenbanksysteme unter Linux
TagesordnungTagesordnung
Datenbanksysteme unter LinuxDatenbanksysteme unter Linux
Adabas DOvrimosmySQLOvrimosSybase Adaptive Server EnterpriseSynchroNetSonstige
Adabas DAdabas DHersteller : SAG Systemhausaktuelle Version: 11.01Verfügbarkeit / Kosten : S.u.S.e / unbekanntFeatures: verteiltes DBS Hohe Verfügbarkeit
1. 7 x 24h-Betrieb2. Spiegelplattenbetrieb
Interfaces1. JDBC (Version 1.2)2. ODBC
WebDB1. Internet und
Intranetintegration2. virtuelles File-System3. dynamisches HTML
SQL1. ANSI-92, ADABAS, ORACLE
DBMakerDBMakerHersteller : CaseMaker Inc.aktuelle Version: ?Verfügbarkeit / Kosten : ?Features: Portierbar Skalierbar Robust
1. Recovery2. Auto-Backup3. Konsistenzprüfung
Multimedia Unterstützung
Interfaces1. ODBC 2.1
SQL1. ANSI-92
verteiltes DBS ?
mySQLmySQLHersteller : T.c.X.aktuelle Version: 3.22 (?); 3.23alphaVerfügbarkeit / Kosten : ?Features:
viel Literatur Referenzliste Interfaces
1. ODBC 2.5 (Win95)
2. MS Access SQL-Standard (?)
verteiltes DBS ? verwaltet große
Datenmengen Probleme
1. Linux ThreadsGamma
2. Locking (Linux)Gamma
OvrimosOvrimos
Hersteller : Ovrimos S.A. aktuelle Version: 2.6Verfügbarkeit / Kosten : s.o. / $79 - $20.000Features:
Interfaces1. JDBC (Version 1.1)2. ODBC (2.0)
SQL1. ANSI (92 ?) Entry-Level
Nested Transactions BLOB Web
1. HTTP-persistente Sessions ohne Cookies
2. dynam. Content durch SchemeScripting (Interpreter in Ovrimos
Sybase Adabtive Server Sybase Adabtive Server EnterpriseEnterprise
Hersteller : Sybase Inc.aktuelle Version: 11.9.2Verfügbarkeit / Kosten : ?Features:
verteiltes DBS Skalierbar Replikation read-write
bidirektional1. Sybase2. DB23. Oracle
Queryoptimierung Interfaces
1. ODBC (?) SQL
1. ANSI-892. ANSI-92 (Entry)
SynchroNetSynchroNetHersteller : Solid Information
Technologyaktuelle Version: 2.0Verfügbarkeit / Kosten : ?Features:
verteiltes DBS Einbindung von
Geschäftsprozessen in Transaktionen
Portable Anwendungs-entwicklung
Interfaces1. JDBC (Version 2)2. Native ODBC (3.51)
SQL1. ANSI-92 Entry-Level
Sonstige LinuxdatenbankenSonstige 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)Sonstige Linuxdatenbanken (2)
Berkley DB Data Store (Sleepy Cat Software)– drei Ausbaustufen– dritte Stufe beinhaltet (möglicherweise)
verteiltes DBSYard
– Single Server– ODBC, JDBC– Lizenzschema ungünstig
Sonstige Linuxdatenbanken (3)Sonstige Linuxdatenbanken (3)
DB2– verteilt– objektrelational– ODBC, JDBC– hochverfügbar, skalierbar
Oracle 8i– verteilt– hochverfügbar– clusterskalierbar– integrierte Java VM– objektrelational
ZusammenfassungZusammenfassung
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)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 TechniquesUpper Saddle River: Prentice-Hall, 2000
Quellen (2)Quellen (2)Links
– http://www.adabas.com/sqlindex.html (Adabas D)
– http://www.softwareag.com/adabas/ (Adabas)
– 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)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)Quellen (4)
Vorlesungen– Prof. Freytag Ph.D., J.C. :
Grundlagen con Datenbanksystemen,HU-Berlin