Gerhard Habiger
Gerhard Habiger received his MSc in Computer Science from Ulm University, Germany, in 2015. Since then he has been working as a research and teaching assistant in the Institute of Distributed Systems at Ulm University, while pursuing his PhD.
His research topics include the advancement of SMR-systems and deterministic scheduling, as well as the performance optimization of these systems, using, among others, techniques like Reinforcement Learning.
Research Interests
- Distributed Systems
- Parallelized state machine replication
- Deterministic schedulers
- Self-optimization of parallelized SMR
- Scheduler reconfiguration
- Resource efficiency
- Reinforcement Learning for online optimization problems
Publications
Teaching
Exercises for Lectures
- Fault Tolerant Distributed Systems - FTDS (english) [SuSe 2021]
- Multimedia Communication - MMK (german) [WiSe 20/21]
- Fault Tolerant Distributed Systems - FTDS (english) [SuSe 2020]
- Multimedia Communication - MMK (german) [WiSe 19/20]
- 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 [WiSe 21/22]
- Proseminar Effective Java - KTT [WiSe 2021/22]
- Research Trends in Distributed Systems - RTDS [SuSe 2021]
- Research Trends in Distributed Systems - RTDS [WiSe 20/21]
- Research Trends in Distributed Systems - RTDS [SuSe 2020]
- Research Trends in Distributed Systems - RTDS [WiSe 19/20]
- 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]
- Proseminar 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]
Abschlussarbeiten und Projekte
M. Kempfle, 鈥濩onsensus replacement in a modular state-machine replication framework: trial and evaluation,鈥 Masterarbeit VS-2021-11M, G. Habiger (Betreuung), F. J. Hauck (Pr眉fer), Inst. f. Vert. Sys., Univ. Ulm, 2021 鈥 Abgeschlossen.
U. Eser, 鈥濨enchmarking of BFT-SMaRt with YCSB,鈥 Projektarbeit VS-2021-22P, G. Habiger (Betreuung), F. J. Hauck (Pr眉fer), Inst. of Distr. Sys., Ulm Univ., 2021 鈥 Abgeschlossen.
The YCSB is an open source benchmarking specification and framework for evaluating the performance of database-like software. Since its release in 2010, it has evolved into a de facto stan-dard for benchmarking commercial products like Redis, HBase, Cassandra and many others. Not only in the industry, but also in the scientific community, many researchers are using the YCSB to evaluate and compare their scientific findings and software artifacts against other published solutions. This project should create a YCSB Client implementation and workloads for benchmarking our platform for replicated state-machines built within our institute in the recent years. State-machine replication is a technique for providing high levels of fault-tolerance. In research projects we extended the existing BFT-SMaRt framework for our use. In the future we would like to use the results of this project to evaluate performance changes when extending the framework further. Students with previous knowledge in these areas are preferred, but the necessary skills can also be acquired during the project. At the end of the project, a thorough comparison of the newly YCSB-enabled software artifacts should be conducted.
M. Benz, 鈥濵odular State Machine Replication,鈥 Masterarbeit, G. Habiger (Betreuung), F. J. Hauck (Pr眉fer), Inst. of Distr. Sys., Ulm Univ., 2019 鈥 Abgeschlossen.
M. Kempfle, 鈥濱ntegration of etcd4j and BFT-SMaRt Parallel,鈥 Projektarbeit, G. Habiger (Betreuung), F. J. Hauck (Pr眉fer), Inst. of Distr. Sys., Ulm Univ., 2019 鈥 Abgeschlossen.
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.
T. Nguyen, 鈥濸arallelizing a Java Re-implementation of etcd,鈥 Bachelorarbeit, G. Habiger (Betreuung), F. J. Hauck (Pr眉fer), Inst. of Distr. Sys., Ulm Univ., 2018 鈥 Abgeschlossen.
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.
O. Finnendahl, 鈥濫nabling Snapshotting in Multithreaded BFT-SMaRt,鈥 G. Habiger (Betreuung), F. J. Hauck (Pr眉fer), Inst. of Distr. Sys., Ulm Univ., 2018 鈥 Abgeschlossen.
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, 鈥濫nabling Snapshotting in Multithreaded BFT-SMaRt,鈥 Projektarbeit, G. Habiger (Betreuung), F. J. Hauck (Pr眉fer), Inst. of Distr. Sys., Ulm Univ., 2018 鈥 Abgeschlossen.
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.
M. J盲ckle and C. Vogel, 鈥濸rovisioning, Monitoring and Snapshotting of BFT-SMaRt,鈥 G. Habiger (Betreuung), F. J. Hauck (Pr眉fer), Inst. of Distr. Sys., Ulm Univ., 2017 鈥 Abgeschlossen.
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.
P. Butz, 鈥濱mplementation, Deployment and Evaluation of UDS,鈥 G. Habiger (Betreuung), F. J. Hauck (Pr眉fer), Inst. of Distr. Sys., Ulm Univ., 2017 鈥 Abgeschlossen.
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.
A. Knittel, 鈥濱mplementation of asynchronous request handling in BFT SMaRt,鈥 G. Habiger (Betreuung), F. J. Hauck (Pr眉fer), Inst. of Distr. Sys., Ulm Univ., 2016 鈥 Abgeschlossen.
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.