Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen...

38
verteilte verteilte Transaktionssysteme Transaktionssysteme Wolfgang Bartels

Transcript of Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen...

Page 1: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

verteilte Transaktionssystemeverteilte TransaktionssystemeWolfgang Bartels

Page 2: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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

Page 3: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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 ?

Page 4: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

TagesordnungTagesordnung

Grundlagen– Transaktionen

Grundbegriffe Concurrency Control

– Probleme– Sperrprotokolle

– Transaktionen in verteilten Systemen verteilte Transaktionssysteme Das 2-Phasen-Commit-Protokoll

Produkte– Datenbanksysteme unter Linux

Page 5: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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

Page 6: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

AtomicityAtomicity

Es werden entweder alle Operationen der Transaktion ausgeführt oder keine von ihnen

(„Alles oder Nichts“-Prinzip)

Page 7: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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

Page 8: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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 !

Page 9: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

Durability (Dauerhaftigkeit)Durability (Dauerhaftigkeit)

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

Page 10: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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:

Page 11: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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

Page 12: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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)

Page 13: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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

Page 14: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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

Page 15: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

Grundlagen– Transaktionen

Grundbegriffe Concurrency Control

– Probleme– Sperrprotokolle

– Transaktionen in verteilten Systemen verteilte Transaktionssysteme Das 2-Phasen-Commit-Protokoll

Produkte– Datenbanksysteme unter Linux

TagesordnungTagesordnung

Page 16: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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.

Page 17: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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

Page 18: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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.

Page 19: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

Probleme bei verteilten Probleme bei verteilten TransaktionenTransaktionen

Koordinator

TM1

TM2Work

Work BeginTA

Done

AbortBeginTA

BeginTADoingBeginTADoingCommit

BeginTADoingBeginTADoingRollback

BeginTABeginTADoingBeginTADoingRollback

Page 20: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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

Page 21: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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

Page 22: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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

Page 23: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

Grundlagen– Transaktionen

Grundbegriffe Concurrency Control

– Probleme– Sperrprotokolle

– Transaktionen in verteilten Systemen verteilte Transaktionssysteme Das 2-Phasen-Commit-Protokoll

Produkte– Datenbanksysteme unter Linux

TagesordnungTagesordnung

Page 24: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

Datenbanksysteme unter LinuxDatenbanksysteme unter Linux

Adabas DOvrimosmySQLOvrimosSybase Adaptive Server EnterpriseSynchroNetSonstige

Page 25: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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

Page 26: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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 ?

Page 27: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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

Page 28: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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

Page 29: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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)

Page 30: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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

Page 31: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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

Page 32: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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

Page 33: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

Sonstige Linuxdatenbanken (3)Sonstige Linuxdatenbanken (3)

DB2– verteilt– objektrelational– ODBC, JDBC– hochverfügbar, skalierbar

Oracle 8i– verteilt– hochverfügbar– clusterskalierbar– integrierte Java VM– objektrelational

Page 34: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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)

Page 35: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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

Page 36: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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)

Page 37: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

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)

Page 38: Verteilte Transaktionssysteme Wolfgang Bartels. Zulie- ferer Bedürfnisse von E-Commerce-Systemen Verwaltung großer Datenmengen Sicherheit und Konsistenz.

Quellen (4)Quellen (4)

Vorlesungen– Prof. Freytag Ph.D., J.C. :

Grundlagen con Datenbanksystemen,HU-Berlin