14 Synchronisation in Shared-Disk-DBS

14.1 Globale Sperrverwaltung auf dedizierten Rechnern

In dedizierten Sperrprotokollen erfolgt die globale Sperrverarbeitung auf ausgezeichneten Rechnern, die meist nur zur Synchronisation verwendet werden. Im Falle eines zentralen Sperrverfahrens besitzt ein Rechner die globale Sperrverantwortung für die gesamte Datenbank, so daß nur ein GLM existiert (Abb. 14-2). Der GLM verwaltet eine globale Sperrtabelle, mit der Sperranforderungen und -freigaben aller Rechner bearbeitet werden. Daneben existiert in jedem Verarbeitungsrechner ein Lokaler Lock-Manager (LLM), der sämtliche Sperren der bei ihm laufenden Transaktionen innerhalb einer lokalen Sperrtabelle verwaltet.

Abb. 14-2: Globale Sperrverwaltung auf einem dedizierten Rechner

Sperranforderungen und -freigaben von Transaktionen werden zunächst an den LLM gestellt, der dann mit dem GLM zusammenarbeitet. Im einfachsten Fall sind sämtliche Sperroperationen an den GLM-Rechner zu schicken, was jedoch einen extrem hohen Kommunikationsaufwand und starke Antwortzeiterhöhungen verursacht. Insbesondere sind 2 Nachrichten pro Sperranforderung erforderlich; die Sperrfreigabe am Transaktionsende kann dagegen mit einer Nachricht erfolgen.

Ein offenkundiges Problem bei einem zentralen Sperrverfahren ist, daß ein einziger GLM-Rechner leicht zum Engpaß wird und somit Durchsatz und Erweiterbarkeit des Systems beeinträchtigt. Dieser Nachteil kann jedoch relativ leicht behoben werden, indem die globale Sperrverantwortung auf mehrere dedizierte Rechner verteilt wird. Ein einfacher Ansatz dazu, der u.a. im Shared-Disk-System von Oracle (Parallel Server) verfolgt wird, ist die feste Aufteilung der GLA über eine Hash-Funktion, welche zu jedem Objektbezeichner den zuständigen GLM-Rechner bestimmt. Neben der Engpassgefahr wird damit auch die Verfügbarkeit verbessert, da ein GLM-Ausfall nur noch einen Teil der Datenbank betrifft (s. Übungsaufgaben).

Die Verwendung mehrerer dedizierter Rechner löst natürlich nicht das Problem der hohen Bearbeitungskosten von Sperranforderungen, wenn diese stets vom zuständigen GLM-Rechner zu bearbeiten sind. Im Falle von Spezialprozessoren (lock engines) zur GLM-Realisierung (Kap. 13.4.2), welche auch ein dediziertes Sperrprotokoll unterstützen, wird der hohe Kommunikationsaufwand durch spezielle Maschinenbefehle umgangen. Bei loser Kopplung kann der Kommunikations-Overhead durch Einsatz einer Nachrichtenbündelung reduziert werden. Dabei werden mehrere Sperranforderungen verschiedener Transaktionen eines Verarbeitungsrechners zusammen übertragen. Dies ermöglicht Einsparungen vor allem bei einem zentralen Sperrverfahren, wo sämtliche Anforderungen an einen GLM zu richten sind. Allerdings ergibt sich damit für die Antwortzeiten eine zusätzliche Verschlechterung, da eine Sperranforderung erst übertragen wird, wenn mehrere Anforderungen zusammen gekommen sind (bzw. ein Timeout abgelaufen ist).

Eine wirkungsvollere Optimierung ist, die Anzahl globaler Sperranforderungen zu zu senken, da dies sowohl die Antwortzeiten als auch den Kommunikations-Overhead verbessert. Dazu stellen wir im nächsten Kapitel (Kap. 15) zwei Ansätze vor.