5 Datenbankverteilung
5.7 Bestimmung der Datenverteilung
Bei der Bestimmung von Fragmentierung und Allokation gilt es, sowohl eine hohe Leistungsfähigkeit als auch eine hohe Verfügbarkeit (durch Replikation) zu unterstützen. Diese Aufgabe ist sehr komplex, da eine Vielzahl von Abhängigkeiten eingehen, die bestenfalls in grober Annäherung berücksichtigt werden können. Ein grundsätzliches Problem besteht darin, daß die Kosten der Ausführung nicht nur durch die Datenverteilung bestimmt sind, sondern auch von den eingesetzten Verfahren zur Anfrageoptimierung und -Bearbeitung, zur Transaktionsverwaltung und zur Wartung von Replikation. Weiterhin ist die Last, für die eine günstige Datenverteilung zu finden ist, i.a. nur ungenau bekannt; insbesondere kann die Datenverteilung nicht auf die Ausführung von Ad-hoc-Anfragen hin optimiert werden. Aussagen hinsichtlich der Ausfallwahrscheinlichkeit einzelner Knoten oder Kommunikationsverbindungen sind generell nur schwer möglich.
Die Bestimmung der Datenverteilung muß zwangsweise gegensätzliche Anforderungen ausgleichen. Kompromisse müssen v.a. hinsichtlich folgender Kriterien eingegangen werden:
- Lese- vs. Änderungsoperationen
Leseoperationen können durch Einsatz von Replikation stark optimiert werden, jedoch auf Kosten von Änderungstransaktionen. Je höher also der Anteil von Lesezugriffen liegt, desto stärker kann Replikation zur Verbesserung des Leistungsverhaltens sowie der Verfügbarkeit eingesetzt werden.
- Lokalität vs. Parallelität
Zur Reduzierung von Kommunikationsvorgängen empfiehlt sich eine Datenverteilung, die Lokalität im Referenzverhalten dadurch ausnutzt, daß häufig gemeinsam benötigte Daten demselben Rechner zugewiesen werden (Cluster-Bildung). Zur Parallelisierung von Operationen ist es dagegen erforderlich, daß gemeinsam benutzte Daten mehreren Rechnern zugewiesen werden (Declustering).
Dieser Zielkonflikt (Trade-off) ist zudem noch vom Lasttyp beeinflußt. Die Unterstützung von Parallelisierung empfiehlt sich vor allem für Operationen auf großen Datenmengen, während für einfachere Operationen die Unterstützung von Lokalität anzustreben ist.
- Lokalität vs. Lastbalancierung
Die Datenverteilung zur Maximierung von Lokalität führt leicht zu ungleicher Rechnerauslastung. Zur Reduzierung von lokalen Überlastsituationen gilt es, die Daten so aufzuteilen, daß die Rechner in etwa gleichmäßig belastet werden.
- 5.7.1 - Festlegung der Fragmentierung
-
- 5.7.2 - Festlegung der Allokation
-