Folien

Werbung
verteilte Transaktionssysteme
Wolfgang Bartels
Bedürfnisse von
E-Commerce-Systemen
Verwaltung großer Datenmengen
 Sicherheit und Konsistenz

Bank
Bankkonto
Bezahlung
Rech
nung
Buchhaltung
Kunde
Vertrag
Lieferschein
Lage
r
Zulieferer
Spediteure
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 ?

Tagesordnung

Grundlagen
– 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. DBOperationen 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
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
Transaktion1
read(Kontostand)
Kontostand += 100
Transaktion2
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

Grundlagen
– Transaktionen


Grundbegriffe
Concurrency Control
– Probleme
– Sperrprotokolle
– Transaktionen in verteilten Systemen



verteilte Transaktionssysteme
Das 2-Phasen-Commit-Protokoll
Produkte
– Datenbanksysteme unter Linux
verteilte Transaktionssysteme
(vTS)
In einem vTS erfolgt die Verarbeitung von verteilten
Transaktionen unter Kontrolle von TP-Monitoren.
Ein TP-Monitor ist eine Komponente eines Transaktionssystems, welche folgende Aufgaben übernimmt:
1.
2.
3.
4.
5.
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
Client/Server
Cut
End-user interface
Client
TP-Monitor
Server
Server
TP-Monitor
TP-Monitor
DBMS
DBMS
Distributed
Presentation
Remote
Presentation
Functional Logic
Distributed
Logic
Remote
Data
DB
DB
Abb.1: Client/Server-Konfiguration
Data Access
Abb.2: Client/Server-Topologien
Distributed
Data
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.

Probleme bei verteilten
Transaktionen
Work
TM1
BeginTA
Doing
Commit
TM2
BeginTA
Doing
Rollback
Done
BeginTA
Doing
Rollback
Koordinator
Abort
Work
Das 2-Phasen-Commit
Protokoll (2PC)
1. Phase
a)
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 Subtransaktion
Abbrechen der Subtransaktion (Rollback)
Antwort: FAILED-Nachricht
2PC – 2.Phase
Alle Nachrichten sind beim Koordinator
eingetroffen:
c)
i.
ii.
d)
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
Work
PREPARE
ABORT
TM1
BeginTA
Doing
Done
Rollback
READY
Done
FAILED
ACK
BeginTA
Doing
Done
Rollback
Koordinator
Done
READY
ACK
TM2
Work
PREPARE
ABORT
BeginTA
Doing
Done
Rollback
Tagesordnung

Grundlagen
– Transaktionen


Grundbegriffe
Concurrency Control
– Probleme
– Sperrprotokolle
– Transaktionen in verteilten Systemen



verteilte Transaktionssysteme
Das 2-Phasen-Commit-Protokoll
Produkte
– Datenbanksysteme unter Linux
Datenbanksysteme unter Linux
Adabas D
 Ovrimos
 mySQL
 Ovrimos
 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

1. 7 x 24h-Betrieb
2. Spiegelplattenbetrieb

Interfaces
1. JDBC (Version 1.2)
2. ODBC

WebDB
1. Internet und
Intranetintegration
2. virtuelles File-System
3. dynamisches HTML
SQL
1.
ANSI-92, ADABAS, ORACLE
DBMaker
Hersteller :
CaseMaker Inc.
aktuelle Version:
?
Verfügbarkeit / Kosten : ?
Features:



Portierbar
Skalierbar
Robust
1. Recovery
2. Auto-Backup
3. Konsistenzprüfung

Multimedia Unterstützung



Interfaces
1. ODBC 2.1
SQL
1. ANSI-92
verteiltes DBS ?
mySQL
Hersteller :
aktuelle Version:
Verfügbarkeit / Kosten :
Features:
 verteiltes DBS ?
 verwaltet große
Datenmengen
 Probleme
1. Linux Threads
Gamma
2. Locking (Linux)
Gamma
T.c.X.
3.22 (?); 3.23alpha
?




viel Literatur
Referenzliste
Interfaces
1. ODBC 2.5
(Win95)
2. MS Access
SQL-Standard (?)
Ovrimos
Hersteller :
aktuelle Version:
Verfügbarkeit / Kosten :
Features:



Nested Transactions

BLOB
Web
1. HTTP-persistente Sessions 
ohne Cookies
2. dynam. Content durch
SchemeScripting
(Interpreter in Ovrimos
Ovrimos S.A.
2.6
s.o. / $79 - $20.000
Interfaces
1. JDBC (Version 1.1)
2. ODBC (2.0)
SQL
1.
ANSI (92 ?) Entry-Level
Sybase Adabtive Server
Enterprise
Hersteller :
aktuelle Version:
Verfügbarkeit / Kosten :
Features:



verteiltes DBS
Skalierbar
Replikation read-write
bidirektional
1. Sybase
2. DB2
3. Oracle
Sybase Inc.
11.9.2
?



Queryoptimierung
Interfaces
1. ODBC (?)
SQL
1. ANSI-89
2. ANSI-92 (Entry)
SynchroNet
Hersteller :
aktuelle Version:
Verfügbarkeit / Kosten :
Features:
 verteiltes DBS
 Einbindung von
Geschäftsprozessen in
Transaktionen
 Portable
Anwendungsentwicklung
Solid Information
Technology
2.0
?


Interfaces
1. JDBC (Version 2)
2. Native ODBC (3.51)
SQL
1.
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
–
–
–
–
–
verteilt
hochverfügbar
clusterskalierbar
integrierte Java VM
objektrelational
Zusammenfassung
Eine Transaktion ist eine Menge von
Operationen, welche die ACIDEigenschaften 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.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/ind
ex.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
Herunterladen