Die Entwicklung von Datenbanksystemen steht vor großen Herausforderungen: Zum einen wandeln sich die Anwendungsszenarien von reinen relationalen zu graph- oder strombasierten Analysen. Zum anderen wird die eingesetzte Hardware heterogener, da neben gewöhnlichen CPUs auch spezialisierte, hoch performante Co-Prozessoren wie z.B. Graphics Processing Unit oder Field Programmable Gate Arrays (FPGAs) eingesetzt werden.
Es konnte gezeigt werden, dass durch Operatoren, die für einen speziellen Co-Prozessor optimiert wurden, ein Performancegewinn erreicht wird. Jedoch sind die meisten Ansätze zur Verarbeitung auf einem einzigen Prozessortyp limitiert und betrachten nicht das Zusammenspiel aller (Co-)Prozessoren. Dadurch bleibt Optimierungs- und Parallelisierungspotential ungenutzt. Darüber hinaus bieten Betrachtungen eines einzelnen Operators auf einem einzigen (Co-)Prozessor wenige Möglichkeiten zur Verallgemeinerung für neue Anwendungsgebiete oder Co-Prozessortypen.
Im Rahmen dieses Projektes entwerfen wir Konzepte zur Integration von unterschiedlichen Operatoren und heterogenen (Hardware-)Co-Prozessortypen für adaptive Datenbanksysteme. Wir entwickeln Optimierungsstrategien, die die individuellen Eigenschaften der Co-Prozessortypen und die diesen Systemen inhärente Parallelität ausnutzen. Dabei betrachten wir relationale und graphbasierte Analysen, sodass die hergeleiteten Konzepte nicht auf ein bestimmtes Anwendungsszenario beschränkt sind. Wir werden Schnittstellen und Konzepte zur Abstraktion der Operatoren und Co-Prozessortypen definieren. Des Weiteren müssen die Eigenschaften von Operatoren und Co-Prozessortypen allen Systemebenen zur Verfügung stehen, sodass die Softwareebene besondere Charakteristika der (Co-)Prozessortypen und die Hardwareebene unterschiedliche Eigenschaften von Operatoren und Daten berücksichtigt. Die Verfügbarkeit dieser Charakteristika ist von hoher Relevanz für die globale Anfrageoptimierung, um eine passende Ausführungsmethode zu wählen. Es ist außerdem nötig, den Entwurfsraum der Anfrageverarbeitung auf heterogenen Hardwarearchitekturen zu analysieren und dabei auf Parallelität in der Funktion, den Daten, und zwischen (Co-)Prozessoren zu achten. Aufgrund der dadurch hervorgerufenen Komplexität des Entwurfsraums verfolgen wir einen verteilten Ansatz, in dem die Optimierung soweit möglich an die niedrigsten Ebenen delegiert wird, da diese Informationen über die spezifischen Charakteristika haben. So werden diese effizienter ausgenutzt. Um eine gegenseitige Beeinflussung der Optimierungen zweier Ebenen zu vermeiden, beachten wir auch Optimierungsstrategien zwischen Ebenen. Dabei werden wir auch lernbasierte Methoden einsetzen, um durch eine Evaluierung von Optimierungsentscheidungen zur Laufzeit künftige Entscheidungen zu verbessern. Auch sind diese Methoden am besten geeignet Charakteristika zu erfassen, die zur Entwurfszeit nicht berücksichtigt wurden, wie es häufig mit der Laufzeitrekonfiguration von FPGAs erfolgt.
Adaptive Data Management in Evolving Heterogeneous Hardware/Software Systems
Currently, database systems face two big challenges: First, the application scenarios become more and more diverse ranging from purely relational to graph-shaped or stream-based data analysis. Second, the hardware landscape becomes more and more heterogeneous with standard multi-core Central Processing Units (CPUs) as well as specialized high-performance co-processors such as Graphics Processing Unit (GPUs) or Field Programmable Gate Arrays (FPGAs).
Recent research shows that operators designed for co-processors can outperform their CPU counterparts. However, most of the approaches focus on single-device processing to speedup single analyses not considering overall system performance. Consequently, they miss hidden performance potentials of parallel processing across all devices available in the system. Furthermore, current research results are hard to generalize and, thus, cannot be applied to other domains and devices.
In this project, we aim to provide integration concepts for diverse operators and heterogeneous hardware devices in adaptive database systems. We work on optimization strategies not only exploiting individual device-specific features but also the inherent cross-device parallelism in multi-device systems. Thereby we focus on operators from the relational and graph domain to derive concepts not limited to a certain application domain. To achieve the project goals, interfaces and abstraction concepts for operators and processing devices have to be defined. Furthermore, operator and device characteristics have to be made available to all system layers such that the software layer can account for device specific features and the hardware layer can adapt to the characteristics of the operators and data. The availability of device and operator characteristics is especially important for global query optimization to find a suitable execution strategy. Therefore, we also need to analyze the design space for query processing on heterogeneous hardware, in particular with regards to functional, data and cross-device parallelism. To handle the enormous complexity of the query optimization design space incurred by the parallelism, we follow a distributed optimization approach where optimization tasks are delegated to the lowest possible system layer. Lower layers also have a more precise view on device-specific features allowing to exploit them more efficiently. To avoid interferences of optimization decisions at different layers, a focus is also set on cross-layer optimizations strategies. These will incorporate learning-based techniques for evaluating optimization decisions at runtime to improve future optimization decisions. Moreover, we expect that learning-based strategies are best suited to integrate device-specific features not accounted for by the initial system design, such as it is often the case with the dynamic partial reconfiguration capabilities of FPGAs.