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

Auf eigenen Beinen: Systematische Untersuchung von Kommunikationsansätzen für ein zukünftiges BFT-System

BetreuerJohannes Behl
ProfessorProf. Dr. Rüdiger Kapitza
Projekttclouds
refit
IBR GruppeDS (Prof. Kapitza)
ArtMasterarbeit
Statusabgeschlossen

Einleitung

Mit der zunehmenden Verlagerung weiter Bereiche unseres Lebens ins Netz der Netze kommt der Verlässlichkeit und Sicherheit der dort angebotenen und verwendeten Dienste eine stetig zunehmende Bedeutung zu. Dem gegenüber steht jedoch die steigende Komplexität der dahinter liegenden Hard- und Softwaresysteme. Nicht nur dies macht es praktisch unmöglich, das Auftreten von Fehlern im laufenden Betrieb von vornherein vollständig auszuschließen. Es gilt somit, Dienste derart umzusetzen, dass sie bis zu einem gewissen Grad tolerant gegen auftretende Fehler sind.

In vielen Fällen werden bei diesbezüglichen Vorkehrungen nur bestimmte Klassen von Fehlern berücksichtigt, zum Beispiel Fehler, die ausschließlich zu Abstürzen von Teilsystemen führen. Andere Fehlerklassen, transiente Hardwarefehler beliebiger Art, Angriffe auf Dienste und ihre Kompromittierung, Softwarefehler, die zu unvorhersehbarem Verhalten führen usw., bleiben dabei außen vor. Insbesondere für kritische Dienste wäre es jedoch mehr als nur wünschenswert, wenn diese in der Lage wären, beliebige Fehler zu tolerieren. So genannte byzantinisch fehlertolerante (BFT) Systeme werden benötigt.

Problem

BFT-Systeme werden seit geraumer Zeit erforscht. Dadurch stehen einige prototypische Implementierungen zur Verfügung, die jedoch eine ganze Reihe von Problemen aufweisen:

  • Sie betrachten häufig nur einen bestimmten Forschungsaspekt, sind also fernab von vollständig.
  • Sie sind mangelhaft konzipiert, folglich schlecht wart- und erweiterbar.
  • Sie sind nicht flexibel genug, um für unterschiedliche Umgebungen und Anforderungen angepasst zu werden.
  • Sie beziehen Anforderungen moderner Hard- und Softwareumgebungen wie NUMA-Mehrkernsysteme, NVRAM und verwaltete Sprachen kaum mit ein.
All dies ver- oder zumindest behindert sowohl den praktischen Einsatz solcher Systeme als auch die Forschung in diesem Bereich.

Aufgabenstellung

Gesucht wird daher die Grundlage, mithin das Kommunikationssystem für ein flexibles, das heißt statisch und dynamisch anpassbares, hoch performantes Framework für BFT-Systeme, das effizienten Gebrauch von heutigen und zukünftigen Hard- und Softwarearchitekturen macht. Hierfür sollen mögliche Konzeptionen für ein solches nachrichtenorientiertes Kommunikationssystem systematisch sowohl theoretisch als auch anhand prototypischer Implementierungen untersucht werden.

Zuerst müsste der Lösungsraum abgesteckt werden: Asynchroner vs. synchroner, gepufferter vs. ungepufferter, zuverlässiger vs. unzuverlässiger, blockierender vs. nicht blockierender Nachrichtenversand; ereignis- vs. thread-basierte Verarbeitung; Schnittstelle zur Anwendung basierend auf Chunks und Nachrichten mit fixer oder variabler Größe oder gar Objektschnittstellen; Warteschlangen, Ringpuffer oder sonstiges als interne Speicherstrukturen, usw. usf.

Die möglichen Lösungen wären anschließend in geeigneter Weise in Java zu implementieren und auf Grundlage eines einfachen Einigungsprotokolls zu evaluieren. Vielversprechende Ansätze würde man zu guter Letzt versuchen, so weit es geht für moderne NUMA-Mehrkernarchitekturen zu optimieren. (Optimierung auf Ebene der Nachrichten, des Speicher-Layouts und der Prozessorbenutzung - Stichworte: Multi-Level-Caches, Garbage Collection, unter Umständen multiskalare Out-of-order-Ausführung)


aktualisiert am 04.02.2015, 11:15 von Johannes Behl
printemailtop