14.2 Techniken zur Einsparung globaler Sperranforderungen
14.2.1 Lese- und Schreibautorisierungen
Die Anzahl globaler Sperranforderungen läßt sich reduzieren, indem man die lokalen Sperrverwalter einzelner Rechner autorisiert, Sperren ggf. lokal zu verwalten, ohne also Kommunikation mit dem GLM-Rechner vornehmen zu müssen. Dabei lassen sich zwei Arten von Autorisierungen unterscheiden, die vom globalen Sperrverwalter den lokalen Sperrverwaltern zugewiesen werden können:
- Eine Schreibautorisierung ermöglicht es dem lokalen Sperrverwalter (LLM), sowohl Schreib- als auch Lesesperren für das betreffende Objekt lokal zu vergeben. Eine solche Autorisierung wird vom globalen Sperrverwalter erteilt, wenn zum Zeitpunkt einer Sperranforderung kein weiterer Rechner eine Sperre auf dem betreffenden Objekt angefordert hat. Eine Schreibautorisierung kann jeweils nur einem Rechner (LLM) zuerkannt werden. Eine Rückgabe der Schreibautorisierung ist erst erforderlich, wenn ein anderer Rechner dasselbe Objekt referenzieren will.
- Eine Leseautorisierung ermöglicht es dem lokalen Sperrverwalter, Lesesperren für das betreffende Objekt lokal zu vergeben. Eine solche Autorisierung wird vom globalen Sperrverwalter erteilt, wenn zum Zeitpunkt einer Sperranforderung kein weiterer Rechner eine Schreibsperre auf dem betreffenden Objekt angefordert hat. Im Gegensatz zur Schreibautorisierung können mehrere Rechner eine Leseautorisierung für dasselbe Objekt halten. Eine Rückgabe der Leseautorisierung(en) ist erst erforderlich, sobald ein Rechner einen Schreibzugriff auf das betreffende Objekt durchführen will.
Beispiel 14-1
- Den Einsatz dieser Autorisierungen veranschaulicht Abb. 14-3. Dabei besitzt Rechner R2 (genauer: der lokale Sperrverwalter LLM2) eine Schreibautorisierung für Objekt O1, in den Rechnern R1 und R3 liegt je eine Leseautorisierung für Objekt O2 vor. Damit können in R1 sämtliche Sperranforderungen und -freigaben bezüglich O1 ohne Kommunikationsverzögerungen behandelt werden, in R1 und R3 sind sämtlich Lesesperren auf O2 lokal gewährbar. Erfolgt jedoch eine Referenz auf O1 zum Beispiel in Rechner R1, dann führt die entsprechende Sperranforderung an den globalen Sperrverwalter (GLM) zum Entzug der Schreibautorisierung an R2. In diesem Fall entstehen für die Sperranforderung in R1 zusätzliche Verzögerungen und Nachrichten (insgesamt 4 Nachrichten). Ebenso kann eine Schreibsperre auf O2 erst gewährt werden, nachdem die beiden Leseautorisierungen entzogen wurden.
Abb. 14-3: Einsatz von Schreib- und Leseautorisierungen
Zwischen den eingeführten Autorisierungen und regulären Sperren bestehen wesentliche konzeptionelle Unterschiede. Sperren werden für einzelne Transaktionen angefordert und freigegeben, während die Autorisierungen den Rechnern bzw. LLMs zugewiesen und entzogen werden. Autorisierungen werden daher auch über das Ende der Transaktion hinaus gehalten, deren Sperranforderung zur Erteilung einer Autorisierung führte. Damit soll die lokale Synchronisierung späterer Transaktionsausführungen an dem betreffenden Rechner ermöglicht werden.
Obwohl durch den Entzug von Schreib- bzw. Leseautorisierungen zusätzliche Nachrichten eingeführt werden, zeigen Leistungsuntersuchungen, daß die Nachrichteneinsparungen demgegenüber i.a. deutlich überwiegen [Ra93d]. Dabei ist die Effektivität der Schreibautorisierungen jedoch davon abhängig, inwieweit durch die Lastverteilung ein hohes Maß an rechnerspezifischer Lokalität (Kap. 13.3.3) erreicht werden kann. Weiterhin kann für häufig referenzierte Objekte nicht erwartet werden, daß sie für längere Zeit nur an einem Rechner referenziert werden. Für solche Objekte können Schreibautorisierungen vielmehr zu zahlreichen Entzugsverzögerungen führen. Die Effektivität von Leseautorisierungen ist dagegen weitgehend unabhängig von rechnerspezifischer Lokalität, da diese gleichzeitig an verschiedenen Rechnern gehalten werden können. Allerdings können sie nur für Objekte mit vorwiegend lesendem Zugriff ihre Wirksamkeit entfalten. Da die Kosten eines Entzuges von Lese- und Schreibautorisierungen sehr hoch sind, sollten diese freiwillig aufgegeben werden, wenn sie längere Zeit nicht mehr benötigt wurden.
Die Diskussion zeigt, daß ein selektiver Einsatz von Lese- und Schreibautorisierungen zu empfehlen ist. Werden beide Autorisierungstypen unterstützt, sind auch Konversionen zwischen ihnen möglich. Wird z.B. eine Schreibautorisierung aufgrund einer Lesesperre entzogen, kann eine Konversion in eine Leseautorisierung erfolgen. Die wichtigsten Fälle bei der Sperrbehandlung sind in Abb. 14-4 zusammengestellt. Die obere Tabelle spezifiziert die LLM-Aktionen nach einer Lese- oder Schreibsperranforderung in Abhängigkeit vom lokalen Sperrstatus. Sperrstatus NL (no lock) bedeutet dabei, daß noch keine Sperreintrag für das Objekt vorliegt, während RA bzw. WA die Existenz einer Lese- oder Schreibautorisierung anzeigen. Der Eintrag "GLM" bedeutet, daß die Sperranforderung vom GLM zu bearbeiten ist (Kommunikation). Der globale Teil der Sperrbehandlung ist in der unteren Tabelle gezeigt. Dabei bedeutet Zustand NL, daß das Objekt im ganzen System noch nicht in Bearbeitung war, während WA (RA) anzeigt, daß (wenigstens) ein anderer Rechner eine Schreib- bzw. Leseautorisierung für das betreffende Objekt hält. Der Sperrstatus "sonstige" kennzeichnet eine Konfliktsituation, da Sperren, aufgrund bereits wartender Anforderungen jedoch keine Autorisierungen vergeben sind.
Abb. 14-4: Lokale und globale Sperraktionen mit Lese- und Schreibautorisierungen