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

Abhärtung von persistenten Heap-Speicher mit Hilfe von Transaktionen

Bearbeiter(anonym, Login erforderlich)
BetreuerArthur Martens
ProfessorProf. Dr. Rüdiger Kapitza
Projektdanceos
IBR GruppeDS (Prof. Kapitza)
ArtBachelorarbeit
Statusabgeschlossen
Beginn14.03.2016

Motivation

Wird einem Computer der Strom entzogen, so gehen heutzutage alle Daten im Arbeitsspeicher verloren. Um Datenverlust zu vermeiden müssen Daten mit viel Zeitaufwand auf die Festplatte geschrieben werden. Abhilfe hierfür versprechen neue RAM-Module mit nichtflüchtigem Speicher (NVRAM) wie z.B. Intels 3D XPoint oder batteriegestützte RAM-Module. NVRAM verbindet Byte-Adressierbarkeit und Geschwindigkeit herkömmlicher RAM-Bausteine mit den Persistenzeigenschaften von Festplatten.

Basierend auf NVRAM wurde am IBR ein neuer Speicherallokator namens NVMALLOC entwickelt der einen persistenten Heap-Speicher realisiert. Die Besonderheit von NVMALLOC liegt darin, dass bereits allozierte Bereiche mit Daten nach einem Neustart des Programms wiedergefunden und weiterbenutzt werden können.

Bei der Arbeit mit persistentem Heap-Speicher können jedoch zwei Probleme auftreten: Findet während eines Datenzugriffs ein Stromausfall statt, so können die persistenten Datenstrukturen in einen inkonsistenten Zustand geraten. Ein anderes Problem stellen flüchtige Bitfehler dar, die durch Umweltstrahlung ausgelöst werden. Wenn diese Bitkipper persistente Daten betreffen, kann dies die Integrität der Anwendung auf Dauer beschädigen und dann nur noch mit Datenverlust beseitigt werden.

Aufgabenstellung

Im Rahmen dieser Bachelorarbeit soll der von NVMALLOC verwaltete Heap-Speicher gegenüber Stromausfällen und transienten Bitfehlern abgehärtet werden. Um inkonsistente Daten zu vermeiden soll NVMALLOC um einen Softwarebasierten Transaktionalen Speicher (STM) erweitert werden. Hierfür soll die Bibliothek TINYSTM verwendet werden. Für die Abhärtung des Heap-Speichers gegen transiente Bitfehler sollen dann TINYSTM und NVMALLOC aufeinander angepasst werden. NVMALLOC soll hierfür Speicher für Fehlertoleranzmechanismen und Schnittstellen für die einfache Bedienung bereitstellen. TINYSTM soll dann erweitert werden damit bei dem Abschluss einer Transaktion alle Worte in NVMALLOC, auf die zugegriffen wurde, überprüft und gegebenenfalls repariert werden können.

Die implementierte Lösung soll durch Unit-Tests auf die korrekte Erfüllung der funktionalen Anforderungen (Erhaltung der Datenkonsistenz, Toleranz von Bitfehlern) untersucht werden. Weiterhin soll der Performance-Einfluss durch die Abhärtungsmaßnahmen ermittelt werden. Hierfür sollen Micro-Benchmarks sowie einzelne Testfälle zu üblichen Datenstrukturen wie Listen etc. herangezogen werden. Als Letztes gilt es zu untersuchen wie groß ein Transaktionslog sein darf, damit dieser im Falle eines Stromausfalls noch sicher in den persistenten Speicher übertragen werden kann.


aktualisiert am 15.06.2016, 09:40 von Arthur Martens
printemailtop