Time: upon consultation
Location: APB 3043
Quantity: 0V/0Ü/8P SWS
Language: German (English on request)
Modules: INF-PM-FPA, INF-04-KP, MINF-04-KP-FG3

Themengebiet 1

Aufgabe

Datenbanken nutzen spezielle Anfragesprachen, um Zugriff auf gespeicherte Daten zu ermöglichen. In relationalen Systemen werden Anfragen beispielsweise mittels SQL formuliert. SQL versteckt die physischen Eigenschaften der gespeicherten Daten wie Dateipfade, Formate, Kompression usw. hinter einer deklarativen, inhaltsorientierten Schnittstelle. Anwender formulieren ein abstrakte Beschreibung der gesuchten Daten und können sich auf das Datenbanksystem verlassen, diese Anfrage in einen effizienten physischen Anfrageplan zu übersetzen.

Im Forschungspraktikum DB-Anwendungsentwicklung soll ein neuer Ansatz zur Entwicklung und Übersetzung von Datenbank Anfragesprachen vervollständigt und erprobt werden. Als Grundlage dient eine prototypische Umsetzung, die eine Teilmenge von SQL in eine flexible interne Darstellung übersetzt. Der Prototyp ist in Scala programmiert und nutzt Scalas flexible und erweiterbare Syntax, um SQL als eingebettete domänenspezifische Sprache zu implementieren.

Im laufe des Praktikums soll der Sprachumfang des Prototyps ausgebaut werden und es soll eine Übersetzung der internen Darstellung in ausführbare Programme realisiert werden. Zielplatform der Übersetzung ist das BigData Verarbeitungs-System Apache Flink. Neben SQL kann auch die Übersetzung von konjunktiven Graph-Anfragen oder Ausdrücken der linearen Algebra untersucht werden.

Organisation

  • Die Anmeldung zum Forschungspraktikum erfolgt per E-Mail an Johannes Luong.
  • Die Arbeit im Praktikum wird in einer Gruppe zu ca. 2-4 Personen stattfinden.
  • Den Forschungspraktikumsschein erhalten entweder alle Gruppenmitglieder oder niemand, es sei denn, ein Gruppenmitglied scheidet vorzeitig aus dem Praktikum aus.

Themengebiet 2

Hintergrund und Aufgabenstellung

Um die Ausführung von Datenbankoperatoren zu beschleunigen, werden häufig die Vektorerweiterungen moderner CPUs genutzt, z.B. Intels SSE und AVX. Neue Versionen dieser Erweiterungen zeichnen sich i.d.R. vorallem durch eine höhere Bitbreite aus, jedoch wird auch der Funktionsumfang der Instruktionen gelegentlich erweitert. AVX-512 vereint diese beiden Aspekte. So bietet es die doppelte Bitbreite gegenüber seinem Vorgänger, AVX2, sowie neue Instruktionen, z.B. zum Erstellen disjunkter Teilmengen. In diesem Praktikum sollen diese Erweiterungen gezielt genutzt werden um eine Auswahl an Datenbankoperatoren mit Hilfe von AVX-512 zu optimieren.

Hinweise

  • Die Umsetzung soll in C/C++ erfolgen
  • Erfahrungen mit SIMD-Instruktionen und der Parallelisierung von Threads sind von Vorteil
  • Interessenten melden sich per E-Mail an Annett Ungethüm