Kurzfassung

Hauptspeicherzentrische spaltenorientierte Datenbankmanagementsysteme nutzen leichtgewichtige Kompression zur Beschleunigung der Anfrageverarbeitung. Aktuelle Systeme betrachten jedoch weder die Re-Kompression von einmal dekomprimierten Zwischenergebnisse noch den expliziten Wechsel des Kompressionsverfahrens während der Anfrageverarbeitung. Das Ziel dieser Arbeit besteht darin, zu untersuchen, in wie weit ein solcher Wechsel zur weiteren Beschleunigung der Anfrageverarbeitung eingesetzt werden kann. Dazu soll unter anderem ein Konzept für Planoperatoren mit komprimierter Ein- und Ausgabe entwickelt, prototypisch implementiert und empirisch evaluiert werden.

Ausgangssituation

Die Bedeutung von hauptspeicherzentrischen spaltenorientierten Datenbankmanagementsystemen steigt zunehmend sowohl im wissenschaftlichen als auch im kommerziellen Kontext. Diese Systeme nutzen in der Regel leichtgewichtige Kompressionsverfahren wie beispielsweise Null Suppression, Run Length Encoding oder Dictionary Coding zur Performanz-Steigerung. Ausgehend von bereits komprimiert vorliegenden Basisdaten führen solche Systeme die Operatoren des Anfrageplans wenn möglich direkt auf der komprimierten Repräsentation aus und dekomprimieren nur, falls dies unausweichlich ist. Nachdem die Daten einmal dekomprimiert wurden, erfolgt keine erneute Kompression. Existierende Systeme beschränken sich zudem auf die Beibehaltung des ursprünglichen Kompressionsverfahrens während der Anfrageverarbeitung und sehen keinen Wechsel des Formates vor.
Wie vorausgegangene Forschungsarbeiten gezeigt haben, hängt die Eignung eines Kompressionsverfahrens jedoch stark sowohl von den Eigenschaften der zugrunde liegenden Daten als auch von dem darauf anzuwendenden Operator ab. Als relevante Dateneigenschaften kommen dabei etwa die Werteverteilung, die Anzahl unterschiedlicher Werte sowie Wiederholungen innerhalb der Daten in Frage. Tatsächlich können sich diese Dateneigenschaften während der Anfrageverarbeitung durch die Anwendung von Operatoren stark verändern. Beispielsweise folgt die Ausgabe eines Selektionsoperators unter Umständen nicht mehr derselben Verteilung wie seine Eingabe. Demzufolge ist das komprimierte Format der Basisdaten nicht notwendigerweise geeignet für die daraus abgeleiteten Zwischenergebnisse. Somit liegt die Vermutung nahe, dass ein Wechsel des Kompressionsverfahrens während der Anfrageverarbeitung zu einer besseren Anpassung und somit zu einer weiteren Performanz-Steigerung führen könnte.

Aufgabenstellung

Die Aufgabenstellung der Belegarbeit besteht darin, zu untersuchen, in wie weit durch einen Wechsel des Kompressionsverfahrens während der Anfrageverarbeitung ein Performanz-Vorteil gegenüber der Verarbeitung ohne einen solchen Wechsel erzielt werden kann. Dafür ist folgendes zu leisten:

  1. Auswahl einiger bekannter Anfragen, beispielsweise aus dem TPC-H- oder Star-Schema-Benchmark, zu welchen – gegebenenfalls unter Verwendung externer Tools – Anfragepläne erstellt werden sollen
  2. Untersuchung dieser Anfragepläne und der darin enthaltenen Planoperatoren mit Hinblick auf die effektive Einbeziehung von Kompression
  3. Konzeption und effiziente Implementierung von Varianten der benötigten Planoperatoren, die das Arbeiten mit komprimierten Ein- und Ausgaben für einige leichtgewichtige Kompressionsverfahren erlauben
  4. Empirische Evaluation der Anfrageausführung, wobei insbesondere der Einfluss des Wechsels des Kompressionsverfahrens zu betrachten ist
  5. Schlussfolgerungen zur Eignung des Wechsels des Kompressions-verfahrens während der Anfrageverarbeitung zur Performanz-Steigerung

Die funktionale Ausgestaltung der Planoperatoren soll sich an der Monet Algebraic Language (MAL) orientieren. Die Implementierung hat in C/C++ und der Einfachheit halber freistehend, d.h. außerhalb eines existierenden Datenbankmanagementsystems, zu erfolgen. Somit können alle nicht unmittelbar relevanten Aspekte eines Datenbankmanagementsystems außer Betracht gelassen werden. Für die leichtgewichtige Kompression und Dekompression kann auf existierende Implementierungen zurückgegriffen werden.