13.4 Nah gekoppelte Shared-Disk-Systeme
13.4.1 Einsatzformen der nahen Kopplung
Die allgemeinste Einsatzform eines gemeinsamen Speichers liegt darin, die Kommunikation über ihn abzuwickeln. In diesem Fall, werden die "Nachrichten" vom Sender in den gemeinsamen Speicher geschrieben; das "Empfangen" der Nachricht erfolgt durch Lesen von diesem Speicher. Der Lesezugriff erfolgt entweder periodisch oder aufgrund einer speziellen Signalisierung seitens des ersten Rechners. Eine solche speicherbasierte Kommunikation kann bei entsprechend schnellen Zugriffszeiten (z.B. wenigen Mikrosekunden) vor allem bei sehr großen Datentransfers wesentlich effizienter als ein allgemeines Kommunikationsprotokoll sein. Die Realisierung sollte durch das Betriebssystem erfolgen, so daß der Ansatz nicht nur der DB-Verarbeitung zugute kommt. Weiterhin bleibt dann dem DBS die nahe Kopplung vollkommen verborgen; d.h. nachrichtenbasierte Protokolle für Synchronisation, Kohärenzkontrolle etc. können weiterhin eingesetzt werden.
Eine andere allgemeine Einsatzmöglichkeit ist die Nutzung seitenadressierbarer Halbleiterspeicher zur Verbesserung des E/A-Verhaltens. Besonders interessant sind hierfür nicht-flüchtige Halbleiterspeicher, da mit ihnen sowohl Lese- als auch Schreibzugriffe auf die Platten eingespart werden können. Insbesondere können solche Halbleiterspeicher zur permanenten Allokation ganzer Dateien verwendet werden, um für sie sämtliche Plattenzugriffe zu umgehen. Aufgrund der hohen Speicherkosten ist dies nur für leistungskritische Dateien kosteneffektiv, z.B. Log-Dateien oder häufig geänderte DB-Dateien. Die Alternative besteht in der Pufferung von DB-Seiten im Rahmen eines globalen Dateipuffers bzw. DB-Puffers. Von einem globalen DB-Puffer sprechen wir, wenn die Verwaltung in Abstimmung mit dem DBS erfolgt; ein Dateipuffer liegt vor bei Verwaltung durch das Betriebssystem bzw. den Speicher-Controller. Für Seiten, die in einem solchen Puffer vorliegen, kann der Lesezugriff auf Platte eingespart werden. Ferner können bei Nicht-Flüchtigkeit Schreibzugriffe zunächst nur in den Puffer erfolgen, von wo aus die Seitenkopien auf Platte asynchron aktualisiert werden. In Shared-Disk-Systemen kann der globale Puffer auch zum schnellen Austausch geänderter Seiten genutzt werden. Die Nutzung eines Dateipuffers ist aufgrund der fehlenden Abstimmung mit der Hauptspeicherpufferung des DBS i.a. weniger effektiv als ein globaler DB-Puffer [Ra93a].
Die nahe Kopplung kann für eine Reihe weiterer, Shared-Disk-spezifischer Nutzungsformen eingesetzt werden, wobei eine Unterstützung durch die DBVS-Realisierung erforderlich ist. So können in einem gemeinsamen Halbleiterspeicher globale Datenstrukturen für folgende Aufgaben genutzt werden:
- Die globale Synchronisation läßt sich fast wie in zentralisierten DBS realisieren, wenn eine globale Sperrtabelle im gemeinsamen Speicher geführt wird, mit der sämtliche Sperranforderungen bearbeitet werden. Damit kann ein aufwendiges, nachrichtenbasiertes Protokoll vermieden werden, was i.a. eine signifikante Leistungsverbesserung ermöglicht. In ähnlicher Weise können zur Kohärenzkontrolle benötigte Angaben in globalen Datenstrukturen verwaltet werden.
- Die Realisierung einer dynamischen Lastverteilung wird erleichtert, wenn dazu benötigte Informationen zur aktuellen Last- und Verteilsituation im gemeinsamen Speicher verwaltet werden. Ferner können dort zur besseren Lastbalancierung gemeinsame Auftragswarteschlangen geführt werden, auf die jeder Rechner zugreifen kann.
- Bei nicht-flüchtigem Speicher kann die Erstellung einer globalen Log-Datei vereinfacht werden, indem die Log-Daten aller Rechner direkt im Speicher gesammelt werden. Aufgrund der hohen Zugriffsgeschwindigkeit fallen die Verzögerungen dafür kaum ins Gewicht, so daß eine direkte Erstellung des globalen Logs möglich wird.