Mehrrechner-Datenbanksysteme

14 Synchronisation in Shared-Disk-DBS

Die Leistungsfähigkeit von Shared-Disk-Systemen ist wesentlich von den gewählten Algorithmen zur globalen Synchronisation und Kohärenzkontrolle abhängig, da der Kommunikationsaufwand zur Transaktionsbearbeitung weitgehend durch diese beiden Funktionen bestimmt ist. Obwohl zwischen beiden Aufgaben enge Abhängigkeiten bestehen und integrierte Lösungen anzustreben sind, separieren wir hier aus didaktischen Gründen die Beschreibung der wichtigsten Lösungsansätze. Dies erleichtert zum einen das Verständnis der grundlegenden Alternativen. Zum anderen kann damit das gesamte Lösungsspektrum, das sich durch die geeignete Kombination der Teillösungen ergibt, besser veranschaulicht werden. Schließlich können so bestehende Implementierungen innerhalb des Lösungsspektrums besser eingeordnet und beurteilt werden.

Zur Synchronisation betrachten wir in diesem Kapitel Sperrverfahren sowie optimistische Protokolle, die jeweils unter zentraler oder verteilter Kontrolle ablaufen können (Abb. 14-1). Wesentlicher ist jedoch die Unterscheidung, ob die globale Synchronisation dediziert auf ausgezeichneten Rechnern erfolgt oder nicht. In letzterem Fall liegt stets ein verteiltes Protokoll vor, bei dem jeder Verarbeitungsrechner an der globalen Synchronisation beteiligt ist. Die Darstellung geht besonders ausführlich auf die Realisierung der Sperrverfahren ein, da z.Zt. nur sie in Shared-Disk-Implementierungen verwendet werden. Zeitmarkenverfahren werden nicht betrachtet, da sie bereits für Verteilte DBS als relativ wenig sinnvoll eingestuft wurden (Kap. 8.2). Für Shared-Disk würden sie zudem keine Nachrichteneinsparungen gegenüber Sperrverfahren erlauben, jedoch zu einer erhöhten Anzahl von Transaktionsrücksetzungen führen.

Abb. 14-1: Synchronisationsverfahren für Shared-Disk-Systeme

Die meisten Sperrprotokolle für Shared-Disk unterstellen, daß für jedes DB-Objekt ein Globaler Lock-Manager (GLM) existiert, der die globalen Sperren für das Objekt verwaltet. Die globale Sperrverantwortung oder GLA (global lock authority) kann dabei einem oder mehreren dedizierten Rechnern zugeordnet bzw. unter allen Verarbeitungsrechnern verteilt werden. In letzterem Fall wird noch unterschieden, ob die Zuordnung fest vorbestimmt wird oder dynamisch erfolgt (Abb. 14-1). Ein weiterer Ansatz basiert auf einer logischen Token-Ring-Topologie und verlangt die Gewährung einer Sperre durch mehrere Knoten.

Wir beschreiben zunächst dedizierte Sperrverfahren, die sowohl zentral als auch verteilt realisiert werden können. Danach werden in Kap. 14.2 verschiedene Optimierungen zur Reduzierung des Kommunikationsaufwandes eingeführt, die für alle Sperrverfahren einsetzbar sind. Die drei nachfolgenden Abschnitte behandeln nicht-dedizierte, verteilte Sperrverfahren mit fester und dynamischer GLA-Zuordnung sowie Token-Ring-Ansätze. Optimistische Synchronisationsverfahren werden in Kap. 14.6 diskutiert. Eine zusammenfassende Wertung der Synchronisationsverfahren erfolgt im nächsten Kapitel (Kap. 15) zusammen mit den Verfahren zur Kohärenzkontrolle (Kap. 15.6).
Bei der Beschreibung der Sperrverfahren unterstellen wir strikte Zwei-Phasen-Sperrprotokolle mit langen Lese- und Schreibsperren (Kap. 8.1). Auf die Behandlung von globalen Deadlocks wird nicht eingegangen, da hierfür die gleichen Techniken wie für Verteilte DBS anwendbar sind (Kap. 8.5).

14.1 - Globale Sperrverwaltung auf dedizierten Rechnern
14.2 - Techniken zur Einsparung globaler Sperranforderungen
14.3 - Verteilte Sperrverfahren mit fester GLA-Zuordnung
14.4 - Verteilte Sperrverfahren mit dynamischer GLA-Zuordnung
14.5 - Token-Ring-Sperrprotokolle
14.6 - Optimistische Synchronisation
Übungsaufgaben