Contact Details

Appointments

Please come by or send me an Email if you need an appointment.

Gerhard Habiger

Until October 2015, Gerhard Habiger studied Computer Science at the University of Ulm. Shortly thereafter he started working at the Institute of Distributed Systems as a research assistant.

Teaching

Exercises for Lectures

  • Fault Tolerant Distributed Systems - FTDS (english) [SuSe 2019]
  • Multimedia Communication - MMK (german) [WiSe 18/19]
  • Fault Tolerant Distributed Systems - FTDS (english) [SuSe 2018]
  • Multimedia Communication - MMK (german) [WiSe 17/18]
  • Fault Tolerant Distributed Systems - FTDS (english) [SuSe 2017]
  • Architectures for Distributed Internet Services - AvID (german) [SuSe 2017]
  • Multimedia Communication - MMK (german) [WiSe 16/17]
  • Architectures for Distributed Internet Services - AvID (german) [SuSe 2016]

Seminars

  • Research Trends in Distributed Systems - RTDS [SuSe 2019]
  • Research Trends in Distributed Systems - RTDS [WiSe 18/19]
  • Research Trends in Distributed Systems - RTDS [SuSe 2018]
  • Research Trends in Distributed Systems - RTDS [WiSe 17/18]
  • Research Trends in Distributed Systems - RTDS [SuSe 2017]
  • Research Trends in Distributed Systems - RTDS [WiSe 16/17]
  • Research Trends in Distributed Systems - RTDS [SuSe 2016]
  • Effective Java - KTT (German) [SuSe 2016]

Lab Projects

  • Development of Middleware Systems - MWE [SuSe 2018]
  • Development of Middleware Systems - MWE [WiSe 17/18]
  • Development of Middleware Systems - MWE [SuSe 2017]
  • Development of Middleware Systems - MWE [WiSe 16/17]
  • Development of Middleware Systems - MWE [SuSe 2016]

Thesis or project topics

M. Kempfle, “Integration of etcd4j and BFT-SMaRt Parallel,” Project, G. Habiger (Supervisor), F. J. Hauck (Examiner), Inst. of Distr. Sys., Ulm Univ., 2019 – Taken.
In our recent research, teaching, and project work, we re-implemented etcd – a popular and well-known fault-tolerant key-value store – in Java, resulting in a multithreaded version that is easier to integrate into our research prototypes. Additionally, recent projects have looked at the State Machine Replication framework BFT-SMaRt, especially our own parallelized version of it, and worked on a way to enable snapshotting functionality. This project aims at integrating these two prototypes – etcd4J and BFT-SMaRt Parallel – into one working project, to yield a fully working, state machine replicated and fault-tolerant version of etcd4J. Further work includes testing and benchmarking this solution. The project can be modified to fit 8 or 16 ECTS.
O. Finnendahl, “Enabling Snapshotting in Multithreaded BFT-SMaRt,” G. Habiger (Supervisor), F. J. Hauck (Examiner), Inst. of Distr. Sys., Ulm Univ., 2018 – Completed.
Für die Verwaltung großer verteilter Systeme werden in der Regel Koordinierungsdienste wie ZooKeeper oder etcd eingesetzt. Um maximale Ausfallsicherheit und dennoch starke Konsistenzgarantien zu gewährleisten, sind solche Koordinierungsdienste durch State Machine Replication repliziert. Ein Problem dieses Replizierungsansatzes ist die zumeist schlechte Ausnutzung heutiger Multicore-Systeme. In unserer Forschung beschäftigen wir uns mit Methoden, SMR-replizierte Software zu beschleunigen und auch Multithreading zu erlauben. Hierfür sind unter anderem vergleichende Messungen mit etcd vorgesehen. Da etcd selbst komplett in Go geschrieben ist, sich unsere Forschung momentan jedoch auf Java konzentriert, soll in diesem Projekt die nach außen hin sichtbare API und dafür nötige Funktionalität von etcd in Java nachimplementiert werden. Es können dabei nahezu alle Schwierigkeiten die sich durch die Verteilung ergeben (Netzwerkkommunikation und -fehler, Konsensus, etc.) vernachlässigt werden. Es wird primär die Funktionalität, die eine nicht-verteilte Installation von etcd mit einem Host bereitstellen würde, verlangt.
M. Benz, “Enabling Snapshotting in Multithreaded BFT-SMaRt,” Project, G. Habiger (Supervisor), F. J. Hauck (Examiner), Inst. of Distr. Sys., Ulm Univ., 2018 – Completed.
BFT-SMaRt ist eine Java Library für die einfache Entwicklung von Anwendungen, die durch State Machine Replication ausfallsicher und sogar robust gegenüber beliebigen (byzantinischen) Fehlern laufen können. Ziel unserer Forschung ist die Beschleunigung von State Machine Replication, wozu wir in den letzten Monaten BFT-SMaRt um Multithreading-Komponenten erweitert haben. Ein Problem hierbei ist, dass das für die Fehlertoleranz zwingend notwendige Snapshotting erheblich erschwert wird und zur Zeit für unsere Optimierungen ausgeschaltet bleiben muss. Dieses Projekt soll auf der Basis vorangegangener Projekte Wege ergründen, wie Snapshotting in Verbindung mit Multithreading in BFT-SMaRt reaktiviert werden kann, sowie Implementierungen und Messungen der gefundenen Ansätze bereitstellen.
T. Nguyen, “Parallelizing a Java Re-implementation of etcd,” Bachelor's thesis, G. Habiger (Supervisor), F. J. Hauck (Examiner), Inst. of Distr. Sys., Ulm Univ., 2018 – Completed.
Ein kürzlich abgeschlossenes Studierendenprojekt reimplemen-tierte den verteilten Key-Value Store etcd in Java. Um diese Implementierung für zukünftige Forschung an fehlertoleranten Systemen weiter zu verwenden, soll dieses Projekt die Java-Implementierung parallelisieren. Durch intelligentes Locking in der zugrunde liegenden Datenstruktur soll ein möglichst hoher Grad an Parallelität erreicht werden, während die Korrektheit des Systems in allen Fällen bestehen bleibt. Anschließend sollen durch Messungen die Performance-veränderungen gegenüber der sequentiellen Variante gezeigt werden.
P. Butz, “Implementation, Deployment and Evaluation of UDS,” G. Habiger (Supervisor), F. J. Hauck (Examiner), Inst. of Distr. Sys., Ulm Univ., 2017 – Completed.
The increasing world wide spread of computers and mobile devices combined with better international network set high demands on service providers. A huge number of parallel access to services offered in the Internet requires huge throughput. At the same time, the availability of services is key, especially in areas like financial and cloud services. Data centers provide these requirements by replicating critical services and data among numerous computers. However, this distribution means that hardware failures are not the exception but become the rule. The State Machine Replication (SMR) approach is an attempt to allow the recovery of crashed servers. Additionally, manipulations of servers and software failures are still a problem of such systems. Byzantine fault tolerant systems build up on state machine replication and face this issue by allowing clients to validate the correctness of service responses. However, SMR requires the client requests to arrive in the same order on every server, so that this has to be decided by a consensus. Furthermore, SMR requires deterministic processing, so that the states among all machines are equal, which is usually ensured by sequential request processing. This seems inefficient, especially considering multi core and multi CPU hardware of today's server systems. Enabling parallel request processing while fulfilling the demands of SMR requires a deterministic scheduler. These are complex and more resource-intensive than general schedulers. The aim of this thesis is the implementation of such a scheduler and the evaluation of the performance to gain knowledge about the efficiency of those schedulers to compare the overhead in scheduling with the gained parallelization. As a result, the overhead in deterministic scheduling is a huge factor, which only allows a performance improvement up to a certain point based on the cost of computations within critical sections.
M. Jäckle and C. Vogel, “Provisioning, Monitoring and Snapshotting of BFT-SMaRt,” G. Habiger (Supervisor), F. J. Hauck (Examiner), Inst. of Distr. Sys., Ulm Univ., 2017 – Completed.
This project deals with the implementation of a platform to support the further development of the BFT-SMaRt Java library. In addition, a currently disabled feature, called checkpointing, should be examined closely and maybe reimplemented in the parallel version of BFT-SMaRt which uses UDS. The first part resulted in a feature-rich platform that encompasses automatic deployment and provisioning as well as live-monitoring capabilities for application related metrics. Parallel checkpointing is not working yet, but was researched extensively and some base work was done to facilitate future developers entering the project. In detail, an extended documentation for BFT-SMaRt was created and several approaches were discussed.
A. Knittel, “Implementation of asynchronous request handling in BFT SMaRt,” G. Habiger (Supervisor), F. J. Hauck (Examiner), Inst. of Distr. Sys., Ulm Univ., 2016 – Completed.
Current research efforts of our institute include a project on deterministic scheduling of multithreaded applications for State Machine Replication (SMR) systems with Byzantine Fault Tolerance (BFT). One part of this project aims to integrate our own work on deterministic scheduling with the BFT SMaRt library. Currently, BFT SMaRt only supports synchronous request-response patterns, whereas our planned SMR platform needs these patterns to be asynchronous. The goals of this project are (i) to analyze the existing BFT SMaRt codebase, (ii) to implement the necessary interfaces for asynchronous request handling and (iii) to integrate these changes into the existing BFT SMaRt libraries.