Topic: Evaluation und Weiterentwicklung von Serialisierungsverfahren für Odysseus

Topic: Evaluation und Weiterentwicklung von Serialisierungsverfahren für Odysseus

Personal details

Title Evaluation und Weiterentwicklung von Serialisierungsverfahren für Odysseus
Description

Hintergrund

Odysseus ist ein Datenstrommanagementsystem, das kontinuierlich eintreffende Daten in Echtzeit verarbeitet. Anders als bei klassischen Datenbanksystemen werden die Daten dabei nicht dauerhaft innerhalb des Systems gespeichert, sondern als fortlaufende Datenströme durch Anfragen und Operatoren verarbeitet. Insbesondere bei der verteilten Verarbeitung müssen große Mengen von Daten zwischen verschiedenen Komponenten oder Odysseus-Knoten übertragen werden.

Für die Übertragung verwendet Odysseus ein eigenes schemaorientiertes Serialisierungskonzept. Auf Grundlage des Schemas eines Datenstroms werden typspezifische Data Handler erzeugt, die einzelne Attribute eines Tupels serialisieren und deserialisieren. Das Verfahren unterstützt unter anderem primitive und komplexe Datentypen, verschachtelte Tupel, Nullwerte sowie zusätzliche Metadaten. Binäre Daten können dabei unmittelbar in beziehungsweise aus Java-ByteBuffer-Objekten geschrieben und gelesen werden.

Neben diesem Odysseus-spezifischen Verfahren existieren etablierte Serialisierungsansätze wie Protocol Buffers, Apache Avro, FlatBuffers oder Apache Arrow. Diese verfolgen unterschiedliche Ziele hinsichtlich Verarbeitungsgeschwindigkeit, Speicherbedarf, Schemaunterstützung, Kompatibilität und direktem Zugriff auf serialisierte Daten.

Ziel der Arbeit

Ziel der Arbeit ist es, das bestehende Serialisierungskonzept von Odysseus systematisch zu untersuchen und mit ausgewählten etablierten Serialisierungsverfahren zu vergleichen. Dabei soll insbesondere betrachtet werden, welche Anforderungen ein Datenstrommanagementsystem an die Serialisierung stellt und wie gut die verschiedenen Verfahren diese Anforderungen erfüllen.

Auf Grundlage der Ergebnisse sollen mögliche Verbesserungen des bestehenden Verfahrens identifiziert werden. Mindestens eine ausgewählte Optimierung oder ein alternatives Serialisierungsverfahren soll prototypisch in Odysseus integriert und experimentell evaluiert werden.

Home institution Department of Computing Science
Associated institutions
Type of work practical / application-focused
Type of thesis Bachelor's or Master's degree
Author Dr. Marco Grawunder
Status available
Problem statement

Aufgabenstellung

Im Rahmen der Arbeit sollen insbesondere die folgenden Aufgaben bearbeitet werden:

  • Analyse des bestehenden Serialisierungskonzepts von Odysseus und der beteiligten Data Handler
  • Erarbeitung der Anforderungen an Serialisierungsverfahren in einem verteilten Datenstrommanagementsystem
  • Recherche und Auswahl geeigneter Vergleichsverfahren
  • Entwicklung einer gemeinsamen Test- und Benchmark-Infrastruktur
  • Implementierung beziehungsweise Anbindung der ausgewählten Serialisierungsverfahren
  • Durchführung reproduzierbarer Microbenchmarks
  • Integration mindestens einer alternativen oder optimierten Serialisierungsvariante in Odysseus
  • Evaluation der Auswirkungen auf reale Datenstromanfragen
  • Dokumentation und Bewertung der Ergebnisse
  • Ableitung einer Empfehlung für die zukünftige Serialisierung in Odysseus

Als Vergleichsverfahren kommen beispielsweise Protocol Buffers, Apache Avro und FlatBuffers infrage. Zusätzlich kann ein textbasiertes Verfahren wie JSON als Referenz verwendet werden. Die endgültige Auswahl und Abgrenzung der untersuchten Verfahren erfolgt im Rahmen der Arbeit.

Evaluation

Die Verfahren sollen anhand unterschiedlicher Datenstrukturen und Nutzungsszenarien untersucht werden. Dazu gehören beispielsweise:

  • schmale und breite Tupel
  • primitive und komplexe Datentypen
  • Zeichenketten und Daten variabler Länge
  • verschachtelte Tupelstrukturen
  • unterschiedliche Anteile an Nullwerten
  • Tupel mit und ohne zusätzliche Metadaten
  • kleine und große Nachrichten
  • einzelne Tupel und Folgen mehrerer Tupel

Mögliche Bewertungskriterien sind:

  • Serialisierungs- und Deserialisierungsgeschwindigkeit
  • erreichbarer Datendurchsatz
  • Verarbeitungslatenz
  • Größe der serialisierten Daten
  • Speicherbedarf und Anzahl temporärer Objekte
  • Garbage-Collection-Aufwand
  • CPU-Auslastung
  • Integrationsaufwand
  • Unterstützung dynamischer und verschachtelter Schemata
  • Verhalten bei Änderungen eines Schemas

Die Evaluation soll sowohl isolierte Benchmarks als auch Ende-zu-Ende-Messungen innerhalb von Odysseus umfassen.

Mögliche Optimierungen

Abhängig von den Ergebnissen der Analyse können unter anderem folgende Ansätze untersucht und prototypisch umgesetzt werden:

  • kompaktere Codierung von Nullwerten, beispielsweise durch eine Null-Bitmap
  • schema-spezifische oder generierte Serialisierer
  • Verringerung dynamischer Methodenaufrufe
  • Vermeidung unnötiger Zwischenobjekte und Speicherallokationen
  • effizientere Behandlung von Zeichenketten und variabel langen Datentypen
  • blockweise Serialisierung mehrerer Tupel
  • optimierte Übertragung wiederkehrender Metadaten
  • Einführung einer expliziten Format- oder Schemaversion
  • direkter Zugriff auf ausgewählte Attribute innerhalb serialisierter Daten

Die konkrete Optimierung wird auf Grundlage der vorherigen Analyse ausgewählt.

Erwartete Ergebnisse

Als Ergebnisse der Arbeit werden erwartet:

  • eine strukturierte Analyse des bestehenden Odysseus-Verfahrens
  • ein begründeter Vergleich mit etablierten Serialisierungsverfahren
  • eine reproduzierbare Benchmark-Suite
  • eine prototypische Integration mindestens einer alternativen oder verbesserten Serialisierung
  • eine experimentelle Auswertung unter realistischen Bedingungen
  • eine Empfehlung für die zukünftige Weiterentwicklung der Serialisierung in Odysseus
  • der dokumentierte und in die bestehende Softwarestruktur integrierbare Quellcode

Erweiterung für eine Masterarbeit

Im Rahmen einer Masterarbeit soll über den grundlegenden Vergleich hinaus ein erweitertes Serialisierungskonzept für Odysseus entwickelt werden. Dieses soll unterschiedliche Anforderungen und Charakteristika von Datenströmen berücksichtigen und darf sich nicht auf die Integration eines einzelnen bestehenden Verfahrens beschränken.

Mögliche Schwerpunkte der Erweiterung sind:

  • Entwicklung eines adaptiven Serialisierungskonzepts, das abhängig von Schema, Tupelgröße, Datenrate oder Netzwerkeigenschaften eine geeignete Strategie auswählt
  • Vergleich von tupelbasierter, blockbasierter und spaltenorientierter Serialisierung
  • Untersuchung von Apache Arrow oder vergleichbaren spaltenorientierten Speicherformaten
  • automatische Generierung schema-spezifischer Serialisierer
  • Unterstützung und Bewertung von Schemaänderungen während des laufenden Betriebs
  • Entwicklung eines Verfahrens zur Aushandlung von Serialisierungsformat und Schemaversion zwischen verteilten Odysseus-Knoten
  • Vermeidung einer vollständigen Deserialisierung, wenn Operatoren nur auf einzelne Attribute eines Tupels zugreifen
  • Untersuchung des Verhaltens bei unterschiedlichen Netzwerklatenzen und Bandbreiten
  • Entwicklung eines Kostenmodells zur automatischen Auswahl einer Serialisierungsstrategie

Für eine Masterarbeit werden außerdem eine vertiefte wissenschaftliche Einordnung, eine umfangreichere experimentelle Evaluation sowie die Entwicklung und Bewertung eines eigenständigen Lösungsansatzes erwartet.

Requirement

Voraussetzungen

  • gute Kenntnisse in Java
  • Interesse an Datenstromverarbeitung und verteilten Systemen
  • grundlegendes Verständnis von Datenstrukturen und binären Datenrepräsentationen
  • Bereitschaft zur systematischen Durchführung und Auswertung von Performance-Messungen
  • hilfreich, aber nicht zwingend erforderlich: Erfahrungen mit Java NIO, ByteBuffer, JMH oder Netzwerkkommunikation
Created 16/09/26

Study data

Departments
  • Informationssysteme - Data Science
Degree programmes
  • Bachelor's Programme Business Informatics
  • Master's Programme Computing Science
  • Bachelor's Programme Computing Science
  • Master's Programme Business Informatics
Assigned courses
Contact person