Betreuer | Johannes Behl |
Professor | Prof. Dr. Rüdiger Kapitza |
Projekt | TCLOUDS |
REFIT | |
IBR Gruppe | DS (Prof. Kapitza) |
Art | Masterarbeit |
Status | abgeschlossen |
EinleitungMit 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. ProblemBFT-Systeme werden seit geraumer Zeit erforscht. Dadurch stehen einige prototypische Implementierungen zur Verfügung, die jedoch eine ganze Reihe von Problemen aufweisen:
AufgabenstellungGesucht 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) |
Technische Universität Braunschweig
Universitätsplatz 2
38106 Braunschweig
Postfach: 38092 Braunschweig
Telefon: +49 (0) 531 391-0