8 Synchronisation in Verteilten Datenbanksystemen
Die Leistungsfähigkeit der einzelnen Verfahren ist vor allem bestimmt vom Kommunikationsumfang sowie der Häufigkeit von Blockierungen und Rücksetzungen. Die Kommunikationskosten sprechen bei fehlender Replikation eindeutig für verteilte Ansätze, da bei ihnen die Datenzugriffe während der Ausführung der Sub-Transaktionen lokal synchronisiert werden. Zeitmarkenverfahren und optimistische Protokolle sind deadlock-frei, erfordern jedoch auch zum Teil Blockierungen, um den Zugriff auf schmutzige bzw. unsichere Änderungen zu vermeiden. Sperrverfahren verlangen dagegen eine Deadlock-Behandlung, die eigene Kommunikationsbelastungen (bei einer Erkennung) oder zahlreiche unnötigen Rücksetzungen verursachen kann. Daher ist die für zentralisierte DBS festgestellte Überlegenheit von Sperrverfahren gegenüber anderen Synchronisationsverfahren [ACL87, Pe87] im verteilten Fall nicht notwendigerweise gegeben. Die zahlreichen Leistungsuntersuchungen im verteilten Fall weisen leider starke Unterschiede in der Methodik sowie den jeweiligen Annahmen auf, so daß zum Teil widersprechende Resultate erzielt wurden. In der relativ genauen Simulationsstudie [CL88] waren z.B. die Ergebnisse primär vom Umfang an Rücksetzungen bestimmt, so daß ein verteiltes Sperrverfahren mit (zentraler) Deadlock-Erkennung am besten abschnitt. Interessanterweise war ein Sperrverfahren mit Wound/Wait-Deadlock-Vermeidung nicht besser als ein reines Zeitmarkenverfahren.
Die meisten in der Literatur vorgestellten Synchronisationsverfahren wurden nicht implementiert. Kommerzielle DBS verwenden auch im verteilten Fall praktsich ausschließlich Sperrverfahren. Verfahren der anderen Klassen wurden zum Teil in Prototypen realisiert (Zeitmarkenverfahren z.B. in SDD-1 [BG83], optimistische Verfahren z.B. in Jasmin [LWL89]). Diese Implementierungen bieten jedoch i.a. nicht die für die Praxis erforderliche vollständige Funktionalität und Effizienz ("industrial strength"). So sind vor allem für optimistische Protokolle einige signifikante Implementierungsprobleme noch nicht gelöst, insbesondere die Unterstützung feiner Synchronisationsgranulate (kleiner als Seiten) sowie die effiziente Synchronisation auf Indexstrukturen [Hä84, Mo92b]. Ähnliche Schwierigkeiten bestehen jedoch auch bei Mehrversionen-Synchronisationsverfahren.