Teilprojekt: MxKernel: A Bare-Metal Runtime System for Database Operations on Heterogeneous Many-Core Hardware
Projektstatus: abgeschlossen Drittmittelprojekt
Moderne Hardware ist geprägt durch hochgradige Parallelität, komplexe Speicherhierarchien und steigende Heterogenität. Um deren theoretische Datenverarbeitungsleistung zu erreichen, müssen die unterschiedlichen Teile der Systemsoftware viel enger zusammenarbeiten als bisher und ihre historisch gewachsenen Abhängigkeiten müssen überdacht werden.Als Lösungsansatz haben wir in der ersten Förderperiode eine "bare metal"-Laufzeitumgebung namens MxKernel konzipiert und prototypisch entwickelt. MxKernel stellt eine sehr leichtgewichtige Ressourcenverwaltung bereit, die DBMS, Betriebssystem und Anwendungen gleichermaßen zur Verfügung steht. In MxKernel werden Heterogenität, Parallelität und tiefe Speicherhierarchien von Grund auf unterstützt. Anstelle eines klassischen “Thread”-Modells benutzt MxKernel eine einfachere Abstraktion: MxTasks beschreiben abgeschlossene Arbeitseinheiten, für die eine gewünschte Ausführungssemantik, zum Beispiel eine atomare Ausführung, garantiert wird. Zudem sind sie eine elegante Abstraktion für Heterogenität und für die Verteilung von Ressourcen. Darüber hinaus können MxTasks mit Metadaten angereichert werden, etwa über Codevarianten (für die Ausführung auf heterogener Hardware), Speicherzugriffsverhalten (für verbesserte Cache- und Speichereffizienz) und Abhängigkeiten untereinander (um Scheduling- und Synchronisierungskosten zu vermeiden). Mit Hilfe der Metadaten kann MxKernel eine leichtgewichtige und effiziente Art der Ressourcenverwaltung über die Grenzen von Anwendungen, Betriebssystemen und Datenbanken hinweg bereitstellen.Aufbauend auf dem schon entwickelten MxKernel-Prototyp und den vielversprechenden Einzelergebnissen wie der Möglichkeit, Speicherzugriffe durch gezieltes Prefetching zu optimieren, soll nun das Potential der neuartigen Systemsoftwarearchitektur systematischer untersucht und ausgeschöpft werden. Dafür werden realistischere Anwendungs- und Lastszenarien betrachtet. Neben transaktionalen Lasten sind nun auch analytische und gemischte Profile (Hybrid Transactional/Analytic Processing) zu unterstützen. Zudem wird erforscht wie gleichzeitig mehrere Datenbankinstanzen optimal koordiniert werden können, die dynamisch um Ressourcen konkurrieren. Die Möglichkeit MxTasks und Datenobjekte feingranular mit Metadaten zu annotieren, soll verstärkt für eine verbesserte Planung der Abläufe genutzt werden. Ein Übersetzer für Anfragen soll die Erstellung der MxTasks und der Annotationen erleichtern und ihre Effizienz verbessern.Die gewonnenen Erkenntnisse über die effiziente Ausnutzung moderner Manycore-Systeme sollen schlussendlich auch genutzt werden, um Migrationspfade aufzuzeigen, mit denen existierende Konzepte für Datenbankmanagementsysteme und Betriebssysteme schrittweise verbessert werden können.