Paralleles Datenbanksystem
# Paralleles Datenbanksystem

Ein Paralleles Datenbanksystem ist eine Datenbank, die in einem Parallelrechner implementiert ist.

## Klassifikation

Es gibt drei grundlegende Architekturen paralleler Datenbanksysteme (Stonebraker-Klassifikation).

* Shared Everything (SE): Der Hauptspeicher und das Plattensubsystem werden von Prozessoren gemeinsam genutzt.
* Shared Disks (SD): Nur das Plattensubsystem wird von Prozessoren gemeinsam genutzt. Jeder Prozessorknoten besitzt einen eigenen Hauptspeicher.
* Shared Nothing (SN): Es gibt keine gemeinsam genutzten Ressourcen.

Diese Klassifikation wurde später um weitere hierarchische Architekturarten erweitert. Dazu zählen beispielsweise:

* Clustered Everything (CE): Zweischichtige, hierarchische Architektur, die aus mehreren SE-Clustern besteht, die nach dem Shared-Nothing-Prinzip miteinander verbunden sind.
* Clustered Disk (CD): Zweischichtige, hierarchische Architektur, die aus mehreren SD-Clustern besteht, die nach dem Shared-Nothing-Prinzip miteinander verbunden sind.
* Clustered Disks Nothing (CDN): Dreischichtige, hierarchische Architektur, die in der unteren Schicht aus einem Satz von SD-Clustern und in der oberen Schicht aus einem Satz von SN-Clustern besteht. Die einzelnen SN-Cluster sind nach dem SN-Prinzip miteinander verbunden.

## Anforderungen

Zu typischen Anforderungen paralleler Datenbanksysteme zählen:

* Kurze Antwortzeiten bei hohem Durchsatz
* Hohe Verfügbarkeit
* Gute Skalierbarkeit
* Effiziente Lastbalancierung
* Geringe Interprozessorkommunikation
* Möglichst kein Aufwand für Cache-Kohärenzkontrolle
* Effiziente Synchronisation der (globalen) Zugriffskonflikte
* Hohe Kosteneffizienz

## Optimierungsmöglichkeiten

Die wichtigsten Optimierungsmöglichkeiten liegen in der Parallelität für Hardware- und Softwarekomponenten. Parallele Datenbanksysteme ermöglichen die Datenbankverarbeitung auf parallelen Rechnersystemen, sodass die Verarbeitungskapazität zahlreicher Prozessoren zur Leistungssteigerung genutzt werden kann. Die Datenbankparallelität ermöglicht eine Parallelisierung von Transaktionen bis hin zu einzelnen Teiloperationen. Darüber hinaus erlauben Anfragenoptimierungsalgorithmen und die Lastbalancierung die Beschleunigung der (parallelen) Anfragenausführung. Ein wichtiger Vorteil paralleler Datenbanksysteme liegt darin, dass beim Einsatz gebündelter leistungsfähiger Standardhardware (insbesondere Mikroprozessoren) eine effiziente Datenverarbeitung und damit eine hohe Kosteneffizienz erreicht werden können. Gleichzeitig kann die Verfügbarkeit des Datenbanksystems nach einem Ausfall der einzelnen Rechner aus dem Rechnerverbund erhöht werden. Untersuchungen haben gezeigt, dass die SN-Architektur die beste Leistung unter den Basisarchitekturen erbringen kann. Die hierarchische CDN-Architektur ermöglichte in den Untersuchungen die beste Leistung der berücksichtigten parallelen Datenbanksysteme.

