Zusammenfassung

Bei immer weiter wachsenden Anforderungen an Datenbankanwendungen bezüglich Geschwindigkeit und Energieeffizienz werden häufig Mehrkernarchitekturen verwendet. Eine Möglichkeit der Nutzung dieser besteht in der Nutzung eines Task-Programmiermodells. Es werden Datenbankoperationen in viele einfache und unabhängige Teiloperationen zerlegt und diese durch eine übergeordnete Einheit an die Prozessoren verteilt. In der Studienarbeit wurden verschiedene Datenbankoperationen, wie Sortieralgorithmen, Aggregationen u.s.w., auf Parallelisierbarkeit untersucht und bei Eignung als Task-Modell implementiert. Zur Generierung von Datenbank-Anfragen wurde deshalb auch eine Datenbank-Beschreibungssprache entwickelt, mit welcher Testdaten generiert und die Datenbankoperationen ausgeführt werden können. Um die Leistung der Implementierungen zu analysieren, können sämtliche Tasks während eines Programmdurchlaufes anhand von relevanten Parametern protokolliert. Bei der anschließend Auswertung durch ein Analysetool auf Abhängigkeiten und andere Leistungsparameter konnte festgestellt werden, dass bei einigen Operationen eine Parallelisierung nicht allgemein vorzuziehen ist. Neben modellspezifischen Einschränkungen ergaben sich auch durch die Geschwindigkeit des Datennetzes sowie der Task-Abhängigkeiten innerhalb einer Operation Limitierungen. Somit kann hier keine beliebige Hochskalierung der Prozessoren erfolgen.

Abstract

To comply with the increasing requirements of database applications respective speedup and power efficiency, multi-core architectures are often used. One possibility for their utilization is using a task-model. Hereby database applications are being disaggregated into many small single tasks that are kept as independent as possible. These tasks are distributed to a user-defined number of processing elements by a superior processing unit. In this student’s thesis several database operations, like sorting or aggregations, have been investigated and if found useful have been integrated in the task model. To easily generate database requests, a database description language has been created which generates test data and it can be used to execute data base operations in a simple manner. To analyze the performance of the implementation all tasks of a program run and the relevant parameters were logged. Afterward those were examined for mutual dependence and an efficient parallelization by a available application. Regarding various performance indicator this data could be analyzed. During the conception and after the analysis it is especially noticeable that a general parallelization of the operations that generate an unknown number of output data cannot be declared. Besides the ones on the task model itself further restrictions occured. Also the speed of the data network which connects the system components as well as the task depedency within an operation were influenced by limitations. So, a random upscaling of the processor number cannot be generated.

Mehr