Multi-Threaded Query-Engine für MySQL mit Multiquery-Unterstützung

- Masterarbeit -


Beschreibung:

In der Anfrageverarbeitung werden Anfragen typischerweise in sogenannte Operatorbäume überführt, deren Knoten zumeist Basisfunktionalitäten der Anfrageausführung bereitstellen und deren Kanten die Ein-/Ausgabebeziehungen zwischen den Operatoren repräsentieren. Die Datenquellen werden durch die Blätter des Baumes repräsentiert, während in der Wurzel das endgültige Ergebnis aggregiert wird. Auf diesen Operatorbäumen können verschiedene Methoden zur Anfrageoptimierung ausgeführt werden, um abschließend das Resultat möglichst performant zu berechnen.

Das Open Source Datenbankmanagementsystem MySQL verfügt über keinen solchen modularen Operatorbaum. Vielmehr werden die in einer Anfrage auftretenden Join-Operationen hintereinander ausgeführt. Dies kann semantisch als ein linksrekursiver Operatorbaum verstanden werden, wobei die rechten Unterbäume jeweils nur aus einem Blatt bestehen (Datenquelle). Des Weiteren erlaubt die aktuelle MySQL-Implementierung nur einen Thread pro Anfrage.

In dieser Arbeit soll MySQL um eine alternative Repräsentation und Ausführung von Anfragen in Form von Operatorbäumen erweitert und diese anschließend optimiert werden. Mit dem Ziel möglichst viel Parallelität zwischen verschiedenen Unterbäumen ausnutzen zu können, soll zum einen der entstandene Operatorbaum ausbalancierbar sein, und zum anderen die Operatoren untereinander parallel ausführbar sein. Zudem lassen sich häug gemeinsame Teilausdrücke in verschiedenen Anfragen finden, so dass gemeinsame Zwischenergebnisse für verschiedene Anfragen einmalig berechnet werden können, anstatt diese mehrfach zu berechnen. Daher ist es notwendig Operatoren vorzusehen, welche die Schnittstellen zwischen verschiedenen Operatorbäumen umsetzen.

Anhand von Messreihen soll abschließend die entwickelte Anfrageauswertung gegenüber dem normalen MySQL-Datenbankmanagementsystem evaluiert werden.

Anforderungen/Kenntnisse: 

  • Datenbanken
  • C/C++ (falls nicht vorhanden, können sich diese Kenntnisse in der Einarbeitungszeit angeeignet werden)

Bearbeitung:
Tobias Krüger

Ergebnis:
Die Ausarbeitung kann im Institut für Informationssysteme angefordert werden.

Betreuung:
Dipl. Inf. Stefan Werner
Institut für Informationssysteme
Ratzeburger Allee 160 ( Gebäude 64 - 2. OG)
23562 Lübeck
Telefon: 0451 / 500 5704