11.3 Realisierungsaspekte
Die Kooperation zwischen heterogenen TP-Monitoren sowie zwischen TP-Monitoren und LDBS verlangt natürlich die Einigung auf ein gemeinsames Commit-Protokoll. De-facto-Standard ist hierzu derzeit das hierarchische Zwei-Phasen-Commit-Protokoll innerhalb des SNA-Protokolls LU 6.2 von IBM. LU (Logical Unit) 6.2, auch APPC (Advanced Program-to-Program Communication) genannt, dient innerhalb von SNA zur transaktionsgeschützten Kommunikation zwischen gleichberechtigten Programmen [Gr83]. Eine sehr ähnliche Funktionalität wie LU 6.2 wird von dem neuen OSI-Standard TP (Transaction Processing) angeboten [GR93], der im X/Open-Standard zur verteilten Transaktionsverarbeitung vorgesehen ist (s.u.). LDBS, welche die XA-Schnittstelle von X/Open unterstützen, können in das Commit-Protokoll einbezogen werden.
Ein anderer "Ansatz" zur verteilten Transaktionsverwaltung, der vielfach von Systemen verfolgt wird, die kein globales Commit-Protokoll unterstützen, besteht darin, keine verteilten Änderungstransaktionen zuzulassen bzw. Änderungen auf höchstens einen Rechner zu beschränken. In diesem Fall ist nämlich zur Sicherstellung der Atomarität kein globales Commit-Protokoll erforderlich. Globale Serialisierbarkeit wird jedoch nicht erreicht, da die Synchronisation (z.B. Sperrfreigabe) zwischen Sub-Transaktionen unkoordiniert erfolgt (s. Übungsaufgaben). Dafür sind praktisch keine Erweiterungen zur Transaktionsverwaltung erforderlich und eine hohe Autonomie der LDBS bleibt erhalten.
In Client/Server-Transaktionssystemen besteht das Problem, daß Client-Rechner wie PCs und Workstations aufgrund ihrer Unzuverlässigkeit zur Commit-Koordinierung nicht verwendet werden sollten. Denn fallen sie während der kritischen Commit-Phase aus, sind Teile der am Commit beteiligten Datenbanken auf unbestimmte Zeit blockiert. Aus diesem Grund muß bei der Commit-Operation einer Client-Anwendung die Koordinatorfunktion auf einen der Server-Rechner migrieren [Pa91]. Eine solche Funktionalität wird bereits von einigen Systemen unterstützt.
Etwas besser sieht es hinsichtlich der Isolation aus. Denn wie in [BST90] gezeigt, ist die globale Serialisierbarkeit der Transaktionsverarbeitung gewährleistet, wenn jedes der beteiligten LDBS neben dem gemeinsamen Zwei-Phasen-Commit-Protokoll ein striktes Zwei-Phasen-Sperrverfahren (lange Sperren) zur Synchronisation einsetzt. Die Auflösung globaler Deadlocks erfolgt dann am einfachsten mit einem Timeout-Verfahren. Jedoch selbst dann wird eine (einfache) Erweiterung der LDBS notwendig, wenn zur Auflösung lokaler Deadlocks ein anderes Verfahren verwendet wurde (z.B. explizite Erkennung von Deadlocks). Der Einfachheit des Timeout-Ansatzes stehen daneben potentielle Leistungsprobleme gegenüber (Kap. 8.5.3).