Mehrrechner-Datenbanksysteme

15 Kohärenzkontrolle

Aufgabe der Kohärenzkontrolle in Shared-Disk-Systemen ist die mit der dynamischen Hauptspeicher-Replikation von DB-Seiten einhergehenden Inferenzen zu behandeln (Kap. 13.3.2). Hierzu sind im wesentlichen zwei Teilaufgaben zu erfüllen:

Für beide Teilprobleme, die mit einem Minimum an Performance-Einbußen zu lösen sind, bestehen mehrere Lösungsalternativen, die in diesem Kapitel vorgestellt werden. Viele der Techniken sind dabei nicht auf Shared-Disk-DBS beschränkt, sondern können auch in Workstation/Server-Umgebungen genutzt werden, wo die replizierte Objektpufferung auf Workstation-Seite zu analogen Invalidierungsproblemen führt [CFLS91].

Zwischen Kohärenzkontrolle und Synchronisation bestehen enge Abhängigkeiten. So erfolgen natürlich sämtliche Objektzugriffe im Puffer unter der Kontrolle der Synchronisation, so daß durch geeignete Erweiterungen dieser Funktion auch die Zugriffe auf veraltete Objektkopien verhindert bzw. erkannt werden können. Für Sperrverfahren wird es somit möglich, den Zugriff auf invalidierte Daten zu umgehen, da vor jedem Objektzugriff eine Sperre anzufordern ist. Für optimistische Synchronisationsverfahren kann dies dagegen i.a. nicht gewährleistet werden, da Objektzugriffe zunächst unsynchronisiert erfolgen. Hier wird spätestens bei der Validierung der Zugriff auf veraltete Objekte entdeckt, was jedoch zur Rücksetzung der betroffenen Transaktion führt. Eine schnelle Beseitigung von Pufferinvalidierungen ist daher wesentlich zur Begrenzung der Rücksetzhäufigkeit.

Eine weitere wichtige Abhängigkeit betrifft das Synchronisationsgranulat. Da Seiten die Einheiten des Transfers zwischen Extern- und Hauptspeicher sowie der Hauptspeicherpufferung darstellen, vereinfacht sich die Kohärenzkontrolle bei einer Synchronisation auf Seitenebene (oder gröberen Granulaten). Weiterhin ergeben sich in diesem Fall effiziente Lösungsmöglichkeiten zur Kohärenzkontrolle mit geringem Kommunikationsbedarf. Bei feineren Granulaten wie Satzsperren besteht das Problem, daß verschiedene Sätze derselben Seite parallel in verschiedenen Rechnern geändert werden können. Damit sind die Seitenkopien beider Rechner nicht vollständig aktuell, wodurch sich die Konsistenzwahrung der physischen Datenbank sowie die Propagierung von Änderungen verkomplizieren. Die folgenden Ausführungen werden daher eine Synchronisation auf Seitenebene unterstellen; auf die Verwendung feinerer Granulate wird in Kap. 15.5 eingegangen.

Wir geben zunächst einen Überblick über das Lösungsspektrum der Kohärenzkontrolle, indem wir für die beiden genannten Teilprobleme jeweils mehrere Alternativen spezifizieren. In den darauffolgenden Kapiteln 15.2 bis 15.4 werden dann die drei wichtigsten Verfahrensklassen zur Erkennung/Vermeidung von Pufferinvalidierungen im Detail vorgestellt, wobei jeweils auf verschiedene Kombinationsmöglichkeiten zur Propagierung von Änderungen sowie zur Synchronisation eingegangen wird. Danach behandeln wir Möglichkeiten zur Kohärenzkontrolle beim Einsatz von Satzsperren. Abschließend geben wir eine zusammenfassende Wertung der Verfahren zur Kohärenzkontrolle sowie ihrer Kombination mit Synchronisationsverfahren (Kap. 15.6).

15.1 - Verfahrensüberblick
15.2 - Broadcast-Invalidierung
15.3 - On-Request-Invalidierung
15.4 - Einsatz von Haltesperren
15.5 - Unterstützung von Satzsperren
15.6 - Zusammenfassende Bewertung
Übungsaufgaben