38
verteilte verteilte Transaktionssysteme Transaktionssysteme Wolfgang Bartels

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

Embed Size (px)

Citation preview

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