Heterogene Systemarchitekturen bestehend aus CPUs, GPUs und FPGAs bieten vielfältige Optimierungsmöglichkeiten im Vergleich zu rein CPU-basierten Systemen. Zur vollständigen Ausnutzung dieses Optimierungspotenzials reicht es jedoch nicht, bestehende Softwarekonzepte unverändert auf nicht-von-Neumann-Architekturen wie beispielsweise FPGAs zu übertragen. Vielmehr erfordern die zusätzlichen Verarbeitungsmöglichkeiten dieser Architekturen den Entwurf neuartiger Verarbeitungskonzepte. Dies ist bereits in der Planung der Anfrageverarbeitung zu berücksichtigen. In der ersten Projektphase entwickelten wir hierfür bereits ein erstes Konzept, welches die gerätespezifischen Merkmale in unserer Plug’n’Play Architektur berücksichtigt. Allerdings sehen wir die Notwendigkeit zu dessen Weiterentwicklung, um eine noch bessere Ausnutzung der spezifischen Eigenschaften der Hardwarearchitekturen zu erreichen. Für die zweite Projektphase stellen wir daher die Hypothese auf, dass bekannte Verfahren zur Abbildung von Anfragen auf der Ebene einzelner Operatoren nicht ausreichen sind, um die erweiterten Verarbeitungsmöglichkeiten heterogener Systemarchitekturen auszunutzen.
Unser Ziel ist daher die Erforschung neuartiger Verarbeitungskonzepte und Verfahren zur Abbildung von Anfragen für heterogene Systeme, welche von der üblicherweise verwendeten Granularität auf Ebene einzelner Operatoren abweichen. Wir werden Verarbeitungseinheiten entwickeln, die eine größere Funktionalität als einzelne Operatoren bereitstellen und sich über mehrere Geräte hinweg erstrecken. Diese Verarbeitungseinheiten sind in sich heterogen und kombinieren die spezifischen Eigenschaften einzelner Architekturen. Im Ergebnis ermöglicht unsere heterogene Systemarchitektur das Bereitstellen von Datenbankoperationen und Funktionen, die in klassischen Datenbanksystemen nicht verfügbar oder nicht effizient realisierbar sind.
Zu Demonstrationszwecken haben wir drei Anwendungsfälle identifiziert, welche von heterogenen Systemarchitekturen stark profitieren können: Verarbeitung von Datenströmen mit hohem Aufkommen, approximative Anfrageverarbeitung und dynamische Multianfrageverarbeitung. Hochvolumige Datenströme erfordern eine Hardwarearchitektur, die eine Verarbeitung der Daten ohne vorherige Zwischenspeicherung ermöglicht. Dafür stellen FPGAs eine vielversprechende Plattform durch ihr datenstrombasiertes Verarbeitungsprinzip dar. Darüber hinaus eignen sich sowohl FPGAs als auch GPUs für approximierende Anfragenverarbeitungen, da sie arithmetische Operationen mit reduzierter Genauigkeit und die Realisierung von approximativen, hardwarebeschleunigten Samplingtechniken ermöglichen. Die dynamische Multianfrageverarbeitung ist aus Systemsicht sehr anspruchsvoll, da variable Systemlasten die Effizienz zuvor aufgestellter Anfragepläne reduzieren können. Hier ermöglichen die zahlreichen Parallelitätsebenen in heterogenen Systemen eine bessere Verteilung der Systemlasten.
Heterogeneous system architectures consisting of CPUs, GPUs and FPGAs offer a variety of optimization possibilities for database systems compared to pure CPU-based systems. However, it has been shown that it is not sufficient to just map existing software concepts one-to-one to non von-Neumann hardware architectures such as FPGAs to fully exploit their optimization potential. Rather, new processing capabilities require the design of novel processing concepts, which have to be considered at the planning level of query processing. A basic processing concept has already been developed in the first project phase by considering device-specific features in our plug’n’play system architecture. In fact, more advanced concepts are required to achieve an optimal exploitation of the capabilities of the hardware architectures. While significant speed-ups were achieved on the level of individual operators mapped to GPUs and FPGAs, the performance gain at the level of complete queries was unsatisfying. Hence, we derived the hypothesis for the second project phase that standard query-mapping approaches with their consideration of queries on the level of individual operators is not sufficient to explore the extended processing features of heterogeneous system architectures.
We will address this shortcoming by researching new processing and query mapping methods for heterogeneous systems, which question the commonly used granularity level of operators. Therefore, we will provide processing entities that encapsulate a greater functionality than standard database operators and may span multiple hardware devices. Thus, processing entities are intrinsically heterogeneous and combine the specific features of individual devices. As a result, our heterogeneous system architecture enables database operations and features that are not available or cannot be implemented efficiently in classical database systems.
To explore this extended feature set, we have identified three application domains that are still challenging for classical database systems and for which we assume that they will benefit greatly from heterogeneous system architectures: High-volume data feeds, approximate query processing and dynamic multi-query processing. The stream-based nature of high-volume data feeds asks for a hardware architecture where processing can be done on the fly without the need to store data beforehand. Hence, FPGAs are a promising hardware platform for processing high-volume data feed applications. Furthermore, FPGAs as well as GPUs are good platforms for approximate query processing, as they allow for approximate arithmetics and hardware-influenced sampling techniques. Dynamic multi-query processing is very challenging from the system management point of view, as query plans that have performed well for one workload can be inefficient for a different workload. Here, the multi-level parallelism of heterogeneous systems offers better opportunities to handle heavy workloads.