Themen für Abschlussarbeiten sind in der Regel im Umfeld der aktuellen Forschungsaktivitäten der Abteilung angesiedelt, im Umfeld verteilter Speichersysteme (BigData/Graph-Verarbeitung in Cluster-/Cloud-Umgebungen). Auch eigene Themenvorschläge können berücksichtigt werden, sofern sie thematisch zum Abteilungsprofil passen. Eine Liste möglicher Themen findet sich am Ende der Seite.


Wenn Sie sich bezüglich eines möglichen Themas informieren möchten oder einen eigenen Themenvorschlag haben, sprechen Sie uns an!





Aktuelle Abschlussarbeitsthemen


  • In parallelen Anwendungen wird solch ein Puffer benötigt, wenn N Threads mit einem Thread kommunizieren möchten

    • Das Kommunikationsmuster entspricht N Schreibern und 1 Leser
    • Beispielsweise, wenn N Threads Netzwerknachrichten in einen Puffer schreiben und 1 Thread diese aggregiert herausnimmt und über einen Socket verschickt.
  • In dieser Arbeit soll ein derartiger Ringpuffer in Java implementiert und evaluiert werden (ohne Netzwerk).

  • Der Ringpuffer soll eine statische Anzahl gleich großer Nachrichten (Java-Instanzen) speichern können.

  • Der Zugriff auf der Ringpuffer soll einmal mithilfe von Sperren und einmal mit sperrfreier Synchronisierung realisiert werden.

  • Die Implementierung soll hinsichtlich dem Durchsatz und der Latenz evaluiert und optimiert werden


Understanding the LMAX Disruptor



  • Sobald viele Threads gleichzeitig Speicher allozieren wollen, so müssen diese Anfragen synchronisiert werden. Hierzu können Sperren oder Spinlocks verwendet werden.

  • Je nachdem wie die Synchronisierung gelöst wurde kann die Skalierbarkeit hinsichtlich der Anzahl Threads dadurch sehr stark eingeschränkt werden

  • In der nachstehenden Publikation wurde ein skalierbares nicht-blockierendes Buddy-System veröffentlicht

  • In dieser Bachelorarbeit soll dieser Ansatz in Java für den Unsafe-Speicherbereich implementiert und anschließend evaluiert werden

  • Der Unsafe-Speicher wird außerhalb des Java-Heaps manuell verwaltet und damit auch außerhalb der Kontrolle des Garbage Collectors


A Non-blocking Buddy System for Scalable Memory Allocation on Multi-core Machine



  • Viele In-Memory Key-Value Stores verwenden zur Verwaltung des lokalen Speichers eine Hash-Tabelle für die Abbildung von der globalen ID (engl. key) auf eine lokale virtuelle Adresse.

  • Faster Hash Index ist ein solcher Ansatz, welcher es zudem ermöglicht die Hash-Tabelle dynamisch zu vergrößern

  • In dieser Bachelorarbeit soll dieses Konzepte in Java implementiert werden, einmal im Java Heap und einmal in Unsafe

  • Beide Ansätze sollen evaluiert und verglichen werden


Faster: A Concurrent Key-Value Store with In-Place Updates



 

  • Einige Key-Value Systeme verwalten den Arbeitsspeicher als ein Protokoll (engl. log)

  • Der Vorteil hierbei ist, dass es zu keiner Fragmentierung kommt, da neue Daten immer am Ende des Log angehängt werden. Damit dies nebenläufig auf Multicore-Rechnern möglich ist, verwenden manche Systeme mehrere Logs

  • Ein großer Nachteil entsteht, wenn Daten aktualisiert werden, da dann im Log mehrere Versionen gespeichert sind. Somit muss das Log irgendwann bereinigt werden (engl. cleaner). Dies kann nebenläufig erfolgen wozu das Log in Segmente unterteilt wird und dann die Bereinigung segmentweise erfolgt.

  • Damit schneller Daten eingefügt werden können, wurden

  • Wie bei allen Systemen wird eine Abbildung des Keys in das Log benötigt.

  • In dieser Projektarbeit sollen zunächst recherchiert werden welche Konzepte es gibt, mit welchen Vor- und Nachteilen. Zudem sollen bestehende Lösungen experimentell untersucht werden und ein Ansatz in Java-Unsafe implementiert werden.


Concurrent Log-Structured Memory for Many-Core Key-Value Stores

Log-structured Memory for DRAM-based Storage



  • Ziel der Arbeit ist es, den Linear Road Benchmark, der auf veraltete Linux- und Perlpakete zurückgreift, in Java neu zu implementieren und mit Apache Flink zu testen.


A Stream Data Management Benchmark



 

  • Ein entfernter Prozeduraufruf wird häufig in verteilten Systemen verwendet

  • In der Regel sind diese Aufrufe komfortabel aber nicht immer sehr effizient

  • In dieser Projektarbeit soll zunächst der Java-basierte Ansatz DaRPC (Data Center RPC) basierend auf InfiniBand jverbs evaluiert werden

  • Später soll aufbauend auf den gewonnen Erkenntnissen ein RPC für neutrino (Bibliothek von der Abt. BS) entwickelt werden.


DaRPC: Data Center RPC

Datacenter RPCs can be General and Fast



 






  • Auf Basis einer bestehenden Bibliotheken zur Überwachung von InfiniBand-Netzwerken soll eine grafische Oberfläche erstellt werden, welche diese Daten aufbereitet und übersichtlich darstellt

  • Die Oberfläche kann beispielsweise mit Grafana erstellt werden
  • Die Bibliothek ist in C++ und Java verfügbar


Detector: A small library for reading the performance counters of all InfiniBand devices in a network

jDetector: A JNI-wrapper for Detector

Grafana: The open observability platform



  • hhuOS ist ein kompakter Betriebssystem für die Lehre
  • Es ist ein multitaskingfähiges 32-Bit Betriebssystem für x86 Prozessoren

  • Geschrieben ist hhuOS in C++ und C

  • In dieser Bachelorarbeit soll ein einfaches Dateisystem für hhuOS geschrieben werden, beispielsweise angelehnt an ext2.
  • Die Integration erfolgt über die vorhandene VFS-Schnittstelle


Weitere Informationen zu hhuOS finden sich hier.



  • In dieser Bachelorarbeit soll eine bestehende TCP/IP-Implementierung auf hhuOS portiert werden
  • Es gibt beispielsweise kompakte Implementierungen aus dem Embedded Bereich, siehe unten.
  • Vorhanden ist ein Ethernet-Treiber


Weitere Informationen zu hhuOS finden sich hier.

Und zu uIP aus Contiki hier.