Please use this identifier to cite or link to this item:
http://dx.doi.org/10.25673/115529
Title: | Architecting a pluggable query executor for emerging co-processors |
Author(s): | Gurumurthy, Balasubramaninan |
Referee(s): | Saake, Gunter Pionteck, Thilo |
Granting Institution: | Otto-von-Guericke-Universität Magdeburg, Fakultät für Informatik |
Issue Date: | 2024 |
Extent: | xvii, 164 Seiten |
Type: | Hochschulschrift |
Type: | PhDThesis |
Exam Date: | 2024 |
Language: | English |
URN: | urn:nbn:de:gbv:ma9:1-1981185920-1174839 |
Subjects: | Datenbanken Rechnerarchitektur Co-processors |
Abstract: | CPUs are reaching their scaling limitations while data keeps growing rapidly. De-
velopers of CPU-based applications are searching for an alternative processor to
further improve their efficiency. DBMS being one such application, is always in need
of high-performing processors to support the ever-growing data. Therefore, many
database researchers investigate various co-processors available in the market to
speed up query processing. As a result, many such co-processor accelerated DBMS
engines are available both as commercial as well as research projects. Such a DBMS
running on a co-processor is normally developed by tightly integrating the hardware-
relevant code within the query execution engine. Or, the query engine is written
with a common device-agnostic framework (like OpenCL) to support execution on
different co-processor architectures. Out of these approaches, the former takes a
lot of effort to develop, and the latter is not performance-portable. Additionally,
with every new co-processor available in the market, an effort has to be made to
develop a query engine on top of this device. Hence, to overcome these challenges,
in this thesis, we explore a query executor that lies in the middle ground between
the two approaches. Our query engine splits DBMS operators into primitives which
are present in a task layer. This layer in addition to the device layer enables the
pluggability of co-processors. Further, to reduce implementation effort, we also
come up with a unified runtime, that handles query execution across any abstract
co-processor. Overall, in this work, we explore a query engine that is capable of
plugging in any new co-processor that comes up in the future, without losing the
capability to have an optimal implementation over the device. Unter rapide steigenden Datenmengen stoßen CPUs an ihre Skalierungsgrenzen. Anwendungen, die auf herkömmlichen CPUs laufen, sind auf der Suche nach einem al- ternativen, spezialisierten Prozessoren, um ihre Effizienz weiter zu verbessern. Daten- bankmanagementsysteme sind eine solche Anwendung, die immer leistungsstärkere Prozessoren benötigen, um die ständig wachsenden Datenmengen zu verarbeiten. Daher untersuchen viele Datenbankforscher verschiedene auf dem Markt erhältliche Co-Prozessoren, um die Abfrageverarbeitung zu beschleunigen. Infolgedessen sind viele solcher Co-Prozessor-beschleunigten Datenbank-Engines sowohl als kommerzielle als auch als Forschungsprojekte verfügbar. Ein solches Datenbankmanagementsystem, das auf einem Co-Prozessor läuft, wird normalerweise mit einer engen Integration des Hardware-Codes in die Anfrageausführungs-Engine entwickelt. Alternativ wird die Anfrage-Engine mit einem gemeinsamen geräteunabhängigen Wrapper (wie OpenCL) geschrieben, um die Ausführung auf verschiedenen Co-Prozessor-Architekturen zu unterstützen. Von diesen Ansätzen ist der erste sehr aufwändig in der Entwicklung und der zweite ist nicht leistungsfähig genug. Außerdem muss mit jedem neuen Co-Prozessor, der auf dem Markt verfügbar ist, eine Abfrage-Engine für dieses Gerät entwickelt werden. Um diese Herausforderungen zu überwinden, erforschen wir in dieser Arbeit eine Datenbank-Engine, die in der Mitte zwischen diesen beiden Ansätzen liegt. Unsere Abfrage-Engine teilt Datenbank-Operatoren in Primitive auf, die in einer Aufgabenschicht vorhanden sind. Diese Schicht ermöglicht zusammen mit der Geräteschicht das Plug’n’Play von Co-Prozessoren. Um den Implementierungsaufwand zu verringern, haben wir außerdem eine einheitliche Laufzeit entwickelt, die die Ausführung von Abfragen auf jedem abstrakten Co-Prozessor ermöglicht. Insgesamt entwickeln wir in dieser Arbeit eine Abfrage-Engine, die in der Lage ist, jeden neuen Co-Prozessor, der in der Zukunft auftaucht, einzubinden, ohne die Fähigkeit zu verlieren, eine optimale Implementierung für den Prozessor zu bieten. |
URI: | https://opendata.uni-halle.de//handle/1981185920/117483 http://dx.doi.org/10.25673/115529 |
Open Access: | Open access publication |
License: | (CC BY-SA 4.0) Creative Commons Attribution ShareAlike 4.0 |
Appears in Collections: | Fakultät für Informatik |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
Gurumurthy_Balasubramanian_Dissertation_2024.pdf | Dissertation | 3.11 MB | Adobe PDF | View/Open |