Sprungmarken

Servicenavigation

Hauptnavigation

Sie sind hier:

Hauptinhalt

Projektgruppe 635: BearDB

PG635: BearDB - Ein Datenbankmanagementsystem auf Taskbasis

Betreuer

Jens Teubner, Roland Kühn, Jan Mühlig

Beschreibung

Relationale Datenbankmanagementsysteme (DBMS) sind ein weitverbreitetes, u.a. kommerziell verfügbares Werkzeug, das in vielfältigen Anwendungen zur Verwaltung und Verarbeitung von Daten und der damit ausgedrückten Information eingesetzt wird. Dabei erfüllen sie eine Vielzahl an Aufgaben, wobei die wichtigsten Aufgaben die konsistente und persistente Speicherung von Daten sowie die effiziente Abfrage solcher Datenbestände durch eine deklarative Anfragesprache sind.
Grundsätzlich lassen sich DBMSs in zwei verschiedene Benutzerparadigmen einordnen. Analytische Systeme werden vorwiegend zyklisch mit neuen Daten befüllt; ihre Hauptaufgabe ist die effiziente Bereitstellung angefragter Daten für komplexe Analysen. Transaktionale Systeme hingegen zeichnen sich durch die schnelle Verarbeitung vorwiegend schreibender Operationen, wie beispielsweise Hinzufügen neuer oder die Änderung vorhandener Daten, aus. Dabei muss die Integrität der Daten bei parallelen Anfragen verschiedener Benutzer gewahrt bleiben. Online-Shops und E-Commerce-Systeme sind Beispiele für transaktionale Systeme. Während analytische Systeme häufig leselastige Operationen ausführen, welche sich im Allgemeinen einfach parallelisieren lassen, stellen transaktionale Systeme oftmals eine große Herausforderung, bezüglich der Ausnutzung paralleler Hardwarearchitekturen dar. In einem transaktionalen Szenario könnten einzelne Transaktionen von einzelnen Threads ausgeführt werden. Soll jedoch der gleiche Datensatz von unterschiedlichen Transaktionen modifiziert werden, muss die Integrität der Daten auf verschiedenen Ebenen sichergestellt werden: Zum einen müssen die Daten konsistent sein; zum anderen müssen parallel laufende Transaktionen voneinander isoliert werden. Die einzelnen Threads sowie prallele Transaktionen müssen in diesem Fall synchronisiert werden. Dies wird zum Beispiel durch Methoden des gegenseitigen Ausschlusses sowohl auf Threadebene, etwa mit Hilfe eines sogenannten Mutex, als auch auf Transaktionsebene (via 2-Phase-Locking-Protokoll) umgesetzt. Durch den Mehraufwand durch Synchronisation konkurrierender Kontrollflüsse kann die Leistung des DBMS jedoch negativ beeinflusst werden. Aus diesem Grund haben sich im Laufe der letzten Jahren alternative Formen der Synchronisation etabliert, z. B. das Tasking.

Zielstellung der Projektgruppe

Die Projektgruppe soll gezielt Probleme bei der parallelen, konkurrierenden und transaktionalen Verarbeitung von Daten identifizieren, verschiedene abstrakte Lösungsansätze dafür entwickeln, umsetzen und evaluieren. In einem ersten Schritt soll dabei das Task-Konzept als Alternative zu klassischen Kontrollflüssen, wie z.B. Threads mit Hilfe von zunächst einfachen Anwendungen aus dem Datenbank-Kontext evaluiert werden. Dafür müssen die Teilnehmer einerseits das Task-Konzept inklusive eines Task-Schedulers und andererseits Task-gestützte Datenstrukturen implementieren. Für letztere bieten sich Indexstrukturen wie beispielsweise B-Bäume oder Hashtabellen an. Auf Basis der entwickelten Datenbankstrukturen sollen transaktionale Operatoren entwickelt und zu einem Gesamtsystem kombiniert werden. Im nächsten Schritt soll das entwickelte Datenbankmanagementsystem in einer geschlossenen Bare-Metal-Umgebung implementiert werden. Dafür kann auf ein bereits bestehendes Framework wie z. B. das freie Betriebssystem Unikraft2 zurückgegriffen werden. Eine besonders spannende Aufgabe wird an dieser Stelle in der nativen Implementierung des Task-Modells liegen: Während Tasks im ersten Schritt auf Basis von Threads entwickelt werden, sollen in der Bare-Metal-Umgebung Tasks als native Abstraktion von Kontrollflüssen genutzt werden. Dadurch kann ein deutlicher Leistungsgewinn gegenüber bestehenden Systemen erwartet werden. Für die Evaluierung des Systems steht der Projektgruppe jederzeit moderne Hardware in Form von Intel- und ARM-Server-Prozessoren der neuesten Generation zur Verfügung.
Insbesondere sind auch negative Ergebnisse hier von Interesse, etwa wenn erklärt werden kann, warum ein vielversprechender Ansatz doch nicht funktioniert hat, sodass diese bei der Einschätzung künftiger Probleme dienlich sein kann.



Nebeninhalt

Kontakt

Prof. Dr. Jens Teubner
Tel.: 0231 755-6481
Roland Kühn
Tel.: 0231 755-2748
Jan Mühlig
Tel.: 0231 755-5677