Champine-Bericht, Il. Folge:

Tendenzen auf dem Gebiet der verteilten Datensysteme

01.06.1979

Der gegenwärtige Stand der Datenbanksysteme lasse sich durch zwei Haupttendenzen charakterisieren. Dies stellte der Autor dieser Situationsanalyse, George A. Champine (Sperry Univac), fest. Es sind: Rasch zunehmende Benutzerakzeptanz und rascher technischer Fortschritt. Die COMPUTERWOCHE bringt hier die zweite Folge (erste in der CW Nr. 21 vom 25. Mai 1979) seines Berichts.

Verteilte Datenstrukturen

Wie bereits in Folge I erwähnt, kann es sich bei einem zentralisierten Datensystem und ein Netzsystem, ein hierarchisches oder relationelles System handeln. Diese sind als Konstruktionsextreme zu betrachten weil zwischen diesen reinen Lösungen eine ganze Reihe von Zwischenlösungen existiert. In einem verteilten Datensystem sind die Daten an verschiedenen Knotenpunkten innerhalb des Systems lokalisiert. Die gleichen strukturellen Alternativen wie bei einem zentralisierten System treffen auch auf verteilte Systeme zu.

Wichtig ist es, zu bemerken, daß die a Datenstruktur keinen Zusammenhang mit der Verkehrsstruktur aufweist. Die Datenstruktur kann netzwerkartig sein (zum Beispiel ringartig), während gleichzeitig die Verkehrsstruktur hierarchisch aufgebaut ist.

Verschiedene Datenmodelle innerhalb des gleichen Systems können verschiedene Strukturen aufweisen. Ein verteiltes System kann eine hierarchische Verkehrsstruktur haben und gIeichzeitig drei verschiedene Datenbanken tragen, von denen eine netzwerkartig, die andere hierarchisch und die dritte relationell ist.

Diese gleichen grundsätzlichen Strukturen sind auch in anderen Terminologien beschrieben worden. Die "horizontale" Datenverteilungsfunktion ist identisch mit dem Netzmodell, da sich alle Knotenpunkte auf gleichem funktionellem Niveau befinden. Die "vertikale" Datenstruktur entspricht dem hierarchischen Modell.

Alternativen in der Datenverteilung

Die Verteilung der Daten innerhalb einer Systemstruktur kann grundsätzlich auf zwei Arten erfolgen: untergliedert und repliziert.

Bei der Datenuntergliederung wird die Gesamtheit der Daten in getrennte Sets gegliedert, wobei jeweils ein Set einem Knotenpunkt zugeordnet ist. Es existiert nur eine Kopie jedes Satzes oder Datums, welche an einen bestimmten Zeitpunkt einem bestimmten Knotenpunkt als Basisplatz zugeordnet ist. Gewöhnlich wird versucht, die Daten demjenigen Knotenpunkt zuzuordnen, von dem aus die meisten Zugriffe an sie erfolgen, damit die Antwortzeit und der Verkehrsaufwand reduziert werden. Doch können nicht alle Zugriffe von einem bestimmten Knotenpunkt aus (im allgemeinen) durch die Daten dieses Knotenpunktes befriedigt werden, so daß der Zugriff an den richtigen Platz zugewiesen werden muß. Dies geschieht über das Systemdatenverzeichnis. Zugriffe, die nicht lokal bearbeitet werden können, heißen "Ausnahmen" oder "Fehlzugriffe". Diese Begriffe sind der Cache-Terminologie entlehnt und in diesem Zusammenhang vollkommen zutreffend. Es gibt eine starke Analogie zwischen Cache-Speicherhierarchien und untergliederten Datensystemen. Wenn die Anwendungscharakteristik eine solche Untergliederung der Daten erlaubt, daß alle Zugriffe lokal vorgenommen werden können (keine Fehlzugriffe), so liegt ein Grenzfall der Untergliederung vor. Man spricht von einer, Segmentierung der Daten in vollständig getrennte Sets.

Bei der "Datenreplikation" existieren im System zwei oder mehr Kopien der gleichen Daten, wobei im Extremfall jeder Knotenpunkt über seine eigene Kopie von Daten verfügen würde. Der Vorteil der Datereplikation liegt darin, daß damit bedeutende Verbesserungen hinsichtlich der Leistungscharakteristik der Kosten, der Einstellbarkeit und der Zuverlässigkeit erreicht werden können. Diese Vorteile gehen jedoch auf Kosten der Aktualisierung, die äußerst komplex wird, wenn die Konsistenz der verschiedenen Datenkopien aufrechterhalten werden soll. Das Problem der Aktualisierung replizierter Daten ist jedoch von der Forschung ausgiebig aufgegriffen worden und wird weiter unten im Detail dargelegt. Ein entscheidender Punkt bei der Datenreplikation liegt in der Leistungsfähigkeit, weil manche der für die Aufrechterhaltung der Datenkonsistenz notwendigen Algorithmen ausgedehnten Verkehr zwischen den Knotenpunkten erfordern, wenn große Verzögerungen bei der Aktualisierung vermieden werden sollen.

Die geeignetste Methode zur Verteilung kleinerer Datenmengen ist die einfache Replikation, sofern die Häufigkeit der Echtzeit-Aktualisierung gering bleibt. Am geeignetsten deshalb, weil die zusätzlichen Speicherkosten gering sind. Wenn (seltene) Aktualisierungen erfolgen, so werden sie mit einem Synchronisationsalgorithmus (der weiter unten beschrieben wird) an alle Plätze, die eine Kopie besitzen, weitergeleitet. Dies ist besonders interessant, wenn die Aktualisierungen gestapelt werden und wenn es auf eine hohe Anfrageleistung und Zuverlässigkeit ankommt.

Bei kleiner Datenmenge und großer Aktualisierungshäufigkeit wird die Replikationsmethode bedeutend weniger attraktiv, weil der Datenverkehr stark zunimmt Wenn die Fehlzugriffsrate bei der Datenuntergliederung gering ist (Fehlzugriffsrate bezieht sich immer auf untergliederte Daten, da sie bei replizierten Daten immer gleich Null ist), stellt die Untergliederung die beste Lösung dar. Das liegt daran, daß trotz der hohen Aktualisierungshäufigkeit die meisten Aktualisierungen das lokale Unterglied betreffen. Zudem erfordern Aktualisierungen von entfernten Untergliedern bedeutend weniger zusätzliche Schritte und Datenverkehr als Aktualisierungen von entfernten replizierten Daten, weil nur eine Kopie vorhanden ist. Sind sowohl Fehlzugriffsrate als auch Aktualisierungshäufigkeit groß, so ist die Zentralisierung die gegebene Lösung.

Die Begriffe "hoch" und "niedrig" sind im Zusammenhang mit Verkehrskosten und Verzögerungen zu definieren im allgemeinen kann eine Fehlzugriffsrate über 30 Prozent oder eine Echtzeit-Aktualisierungshäufigkeit von mehr als 10 Prozent als beträchtlich angesehen werden.

Bei großen Datenmengen ist die Untergliederung die beste Lösung, sofern nicht sowohl Fehlzugriffsrate als auch Aktualisierungshäufigkeit hoch sind. Sind sie es, so sollte zentralisiert werden.

Die "Materialisierung" ist komplett und nicht redundant

Datenuntergliederung und Datenreplikation sind "reine" oder extreme Lösungen. In der Praxis zieht der Benützer eine Mischung der beiden Lösungen vor, manchmal sogar für die gleichen Daten. Zum Beispiel kann eine Datenbank an zwei Knotenpunkten repliziert werden, während sie an allen anderen Knotenpunkten untergliedert wird, um die Einstellbarkeit zu gewährleisten. In anderen Fällen kann eine Datenbank zur Hauptsache untergliedert werden, während ausgewählte Teile an gewissen Knotenpunkten repliziert werden, um Leistungsfähigkeit und Zuverlässigkeit zu erreichen. Der Aufbau muß sich nach dem Benutzungsmuster oder der Massenspeicherkapazität an einem bestimmten Knotenpunkt richten (einige Knotenpunkte haben vielleicht überhaupt keinen Massenspeicher). Das bedeutet, daß es mehr als eine Art gibt, aus der Sammlung gespeicherter physischer Daten eine komplette und nicht-redundante Kopie der logischen Daten zu erzeugen. Eine Sammlung physischer Daten, welche eine komplette und nicht-redundante Kopie der Daten darstellt, heißt "Materialisierung".

Ein weiterer komplizierender Faktor bei der Datenuntergliederung liegt in der Notwendigkeit, die Basislokalisierung eines besonderen Datenelements zu ändern, weil das Zugriffsmuster sich verändert hat. Dies kann im Prinzip manuell über den Datenverwalter oder automatisch über das System mit Hilfe der Instrumentierungsdaten geschehen. Die Wahl der Methode hängt von der Anwendungsdynamik und der Kühnheit der Realisatoren ab.

In allen Situationen muß der Benutzer von der physischen Verteilung und Redundanz der Daten abgeschirmt werden. Ebenso muß er mit dem verteilten System genausogut verkehren können wie mit dem konventionellen zentralisierten System.

Das Ziel, dem Benützer von verteilten Systemen ein logisch zentralisiertes Interface zu liefern, wird mit einer ganzen Reihe von Betriebssystemen angegangen, die zur Zeit entwickelt oder benutzt werden. Diese Anstrengungen werden insbesondere von National Software Works (2), vom National Bureau of Standards Network Access Machine (3), und vom Arpanet RSEXEC-Project (4), (5) unternommen. Gemeinsames Ziel dieser Projekte ist die Erarbeitung eines geographisch verteilten Computernetzes für Benutzer in konsistenter, logisch zentralisierter und leicht benutzbarer Form, bei welchem der Zugriff unabhängig vom Ort, aber nicht immer unabhängig vom System ist.

Verzeichnisse

Ebenso wie Daten über ein ganzes System hinweg verteilt werden können, kann auch das Systemdatenverzeichnis welches für die Lokalisierung der Daten notwendig ist, verteilt werden. Ebenso wie Daten untergliedert, repliziert oder in irgendeiner Kombination dieser Methoden redundant gemacht werden können, kann auch das Systemdatenverzeichnis (im folgenden Verzeichnis genannt) untergliedert, repliziert oder in irgendeiner Kombination dieser beiden Methoden verteilt werden. Zusätzlich ist es auch möglich, das Verzeichnis zu zentralisieren. Die Wahl zwischen den Alternativen hängt von den gleichen Kriterien ab wie bei der Verteilung der Daten, obwohl es keinen Anlaß zur Annahme gibt, daß in einem bestimmten System die Anwendungscharakteristik für das Verzeichnis ähnlich auszusehen hat wie diejenige der zugehörigen Daten. So können die Daten zum Beispiel eine hohe Aktualisierungshäufigkeit aufweisen, während das Verzeichnis selten aktualisiert wird. Auch der umgekehrte Fall kann vorkommen, etwa in einem System mit untergliederten Daten und dynamischer (und häufiger) Umlokalisierung von Daten aufgrund der Benützercharakteristik. Mit den zwei "reinen" Datenverteilungsmethoden (Untergliederung und Replikation) und den drei "reinen" Verzeichnisverteilungsmethoden (Untergliederung, Replikation und Zentralisierung) verfügen wir über insgesamt sechs reine Kombinationsmöglichkeiten. Im Idealfall würde ein verteiltes Allzwecksystem sowohl alle sechs reinen Kombinationen sowie verschiedene Mischungen unterstützen, wobei die endgültige Wahl bei der Systemerzeugung getroffen wird.

Verzeichnisse im wörtlichen Sinne können gleich behandelt werden wie Daten jedoch besteht ein wichtiger Unterschied: Die Lokalisierung der Informationen für das Verzeichnis selbst muß den System-Knotenpunkten a priori bekannt sein. Dies kann erreicht werden durch eine Speicherung der Plätze des Verzeichnisses an jedem Knotenpunkt, da sie nie oder selten verschoben werden. Auf jeden Fall sind sie abrufintensiv.

Ein weiterer Vorteil entsteht durch die Behandlung des Verzeichnisses als gewöhnliche Daten: die normalen System-Funktionen wie Speicherverwaltung, Fehlerbehandlung, Sicherheit und Aktualisierungs-Synchronisation werden für alle Verzeichnisse automatisch verfügbar.

(1) Booth 76, (2) Schan 76, (3) Rosen 76, (4) Thoma 73 und (5) Thoma 75

*George A. Champine ist Direktor im Advanced-Systems-Bereich für Großcomputersysteme bei Sperry Univac