Mehrrechner-Datenbanksysteme
Eine treibende Kraft für die zunehmende Notwendigkeit von Intra-Transaktionsparallelität sind die ständig wachsenden Datenvolumina, auf denen DB-Operationen abzuwickeln sind. Die größten, kommerziell genutzten relationalen Datenbanken umfassen bereits heute mehrere Terabyte (TB), wobei einzelne Relationen über 100 Gigabyte (GB) belegen [Pi90]. Die sequentielle Verarbeitung von DB-Operationen ist demgegenüber sehr langsam, trotz ständig schneller werdender Hardware. So ist das sequentielle Einlesen der Daten von Magnetplatten typischerweise auf etwa 5 MB/s beschränkt. Auch die Ausführungszeiten relationaler Operatoren auf hauptspeicherresidenten Daten ist relativ langsam. So sind für die einfachste Operation, die sequentielle Suche im Rahmen eines Relationen-Scans, nach [GHW90] etwa 1000 Instruktionen pro Satz anzusetzen. Für einen Prozessor von 100 MIPS und eine Satzlänge von 100 B können somit lediglich 10 MB/s sequentiell durchsucht werden. Komplexere Operationen wie Sortieren oder Join-Bildung sind typischerweise um mindestens eine Größenordnung langsamer (< 1 MB/s). Die sequentielle Verarbeitung einer relationalen DB-Operation auf 1 TB würde somit Bearbeitungszeiten von mehreren Tagen erfordern - und dies auch nur, wenn keine Behinderungen mit anderen Transaktionen auftreten (Einbenutzerbetrieb). Offensichtlich sind solche Bearbeitungszeiten in den allermeisten Fällen nicht tolerierbar.
Eine Verschärfung der Problematik ergibt sich für sogenannte Nicht-Standard-Anwendungen, die von relationalen DBS typischerweise nicht adäquat abgedeckt werden. Multimedia-Anwendungen verlangen so den Zugriff auf sehr große Datenmengen mit sehr restriktiven Antwortzeitvorgaben, z.B. um digitalisierte Filme in hoher Qualität abzuspielen oder um Videoaufnahmen in Echtzeit digital zu speichern. Ingenieuranwendungen, z.B. bei CAD (Computer-Aided Design) oder CASE (Computer-Aided Software Engineering), verursachen umfangreiche Operationen auf komplex strukturierten Objekten mit einem Berechnungsaufwand, der den einfacher relationaler Operatoren um ein Vielfaches übersteigt. In diesen Bereichen ist der Einsatz von Intra-Transaktionsparallelität daher umso dringlicher, um für den Dialogbetrieb ausreichend kurze Bearbeitungszeiten zu ermöglichen.
Die Erlangung kurzer Antwortzeiten durch Intra-Transaktionsparallelisierung wird dann besonders erschwert, wenn mehrere komplexe Anfragen gleichzeitig zu bearbeiten sind bzw. gleichzeitig ein hoher Durchsatz für kurze OLTP-Transaktionen erreicht werden muß. Dies ist vielen Anwendungsbereichen sicherlich wünschenswert bzw. notwendig, wird jedoch von derzeitigen Implementierungen paralleler DBS noch nicht zufriedenstellend gelöst. Dieser Aspekt ist Gegenstand laufender Forschungsarbeiten (s. Kap. 18.4.2).
Neben diesen Leistungsforderungen stellen sich an Parallele Datenbanksysteme weitere der bereits in Kap. 1.2 diskutierten Anforderungen. Dies ist zum einen eine hohe Skalierbarkeit, so daß durch Einsatz von Intra-Transaktionsparallelität die Antwortzeiten möglichst linear mit der Anzahl der Prozessoren verkürzt werden kann. Ferner soll für OLTP-Anwendungen die Transaktionsrate linear mit der Prozessoranzahl steigen. Zum anderen sind die Unterstützung einer hohen Verfügbarkeit sowie einer guten Kosteneffektivität von großer Wichtigkeit für Parallele DBS. Keine Rolle dagegen spielen Forderungen nach Knotenautonomie, Unterstützung heterogener DBS oder dezentraler Organisationsstrukturen.
Im folgenden führen wir zunächst zwei allgemeine Leistungsmaße für Parallelverabeitung ein, nämlich Speedup und Scaleup. Danach diskutieren wir die Architektur Paralleler DBS (Kap. 16.2) und klassifizieren verschiedene Typen von Intra-Transaktionsparallelität (Kap. 16.3).