TU BRAUNSCHWEIG
| Carl-Friedrich-Gauß-Fakultät | Informatik
Informatikzentrum

Umsetzung einer konsensusorientierten Parallelisierung für Mehrkernumgebungen am Beispiele von Apache ZooKeeper

Betreuer Johannes Behl
Professor Prof. Dr. Rüdiger Kapitza
Projekt refit
IBR Gruppe DS (Prof. Kapitza)
Art Masterarbeit
Status laufend

Problem

Der Umgang mit und die effiziente Nutzung von Mehrkernsystemen ist ein Forschungsbereich, der mit der Einführung der ersten handelsüblichen x86-Prozessoren mit mehreren Kernen vor zehn Jahren enorm an Bedeutung gewonnen und seitdem durch die weiteren technischen Entwicklungen nichts an seiner Aktualität eingebüßt hat. Im Kontext der verteilten Systeme stellt sich hier insbesondere die Frage, wie sich Implementierungen von Protokollen geeignet parallelisieren lassen, um Mehrkernprozessoren möglichst effektiv und effizient zu nutzen und gleichzeitig die damit einhergehende Komplexität beherrschbar zu machen. Ein Ansatz, der speziell für Einigungsprotokolle replizierter Dienste entwickelt wurde, ist die Verwendung eines konsensusorientierten Parallelisierungsschemas. Im Gegensatz zur traditionellen Herangehensweise werden hierbei nicht einzeln durchzuführende Aufgaben parallelisiert und auf vorhandene Prozessorkerne verteilt, sondern komplette Instanzen der zwischen Dienstreplikaten ausgeführten mehrphasigen Einigungsprotokolle.

Aufgabenstellung

Gegenstand dieser Arbeit ist die Realisierung und Evaluierung einer solchen konsensusorientierten Parallelisierung am Beispiel des verbreiteten Koordinierungsdienstes Apache ZooKeeper.

In einer ersten Phase ist hierfür die bestehende stufenbasierte Architektur von ZooKeeper genauer zu betrachten. Welche Abhängigkeiten zwischen Modulen gibt es, was wird von eigenen Threads ausgeführt und auf welche Daten wird parallel zugegriffen? Grundlegende Frage ist, was einer parallelen Ausführung von verschiedenen Instanzen des Einigungsprotokolls von ZooKeeper im Wege steht. Im Anschluss soll die Implementierung des Einigungsprotokolls schrittweise zerlegt werden, bis komplette Instanzen unabhängig voneinander abgearbeitet werden können. Problembereiche auf Ebene des Protokolls stellen unter anderem verwendete globale Sequenznummern dar sowie die Bildung von Transaktionen vor der Einigung. Weiterführende Fragen in diesem Zusammenhang sind, wie mit Zugriffen auf persistenten Speicher umzugehen ist und wie auf dem Datenbestand von ZooKeeper möglichst parallel gearbeitet werden kann. Das entstehende System ist ausführlich zu bemessen und mit der Standardimplementierung von ZooKeeper zu vergleichen.


aktualisiert am 19.02.2015, 00:02 von Johannes Behl
printemailtop