Kao, OdejHöger, Mareike Ruth2019-10-232019-10-232019https://depositonce.tu-berlin.de/handle/11303/10101http://dx.doi.org/10.14279/depositonce-9089These days data is collected any time and everywhere. The number of devices we are using every day is steadily growing. Most of those devices collect data about their usage and environment. That data is no longer gathered to answer a particular hypothesis. Instead, it is gathered to find patterns that could build a hypothesis. The collected data is often semi-structured, may stem from different sources, and is probably cluttered. The term BigData emerged for this kind of information. Parallel data processing systems are designed to handle BigData. They work on a large number of parallel working nodes. The high number of nodes and the long runtime of jobs lead to a high failure probability. Existing fault tolerance strategies for parallel data processing systems usually handle faults with full restarts or work in a blocking manner. Either the systems do not consider faults at all, and restart the entire job if a fault occurs, or they save all intermediate data before they start the next task. This thesis proposes better approach to fault tolerance in parallel data processing systems. The basis of the approach reduces restarts and works in a nonblocking manner. The introduced ephemeral materialization points hold intermediate data in memory while monitoring the running job. This monitoring enables the system to choose the sweet spots for materialization. At the same time, the materialization points allow the pipelining of data. Based on this method the thesis introduces several continuous fault tolerance techniques. On the one hand, it covers data and software faults, which are not included by the typical retry methods. On the other hand, it covers further optimizations mfor jobs with stateless tasks. Stateless tasks do not have to reprocess all their input to produce the same output, as they do not have to reach a certain state. The possibility to run a task at any point of the input stream offers the opportunity for further optimizations on the fault tolerance method. In this case it is possible to add additional nodes to the system during recovery or to skip parts of the input stream. The evaluations of the approaches show that they offer a fast recovery with small runtime and disc space overhead in a failure free case.Heutzutage werden Daten überall und zu jeder Zeit gesammelt. Die Anzahl an Geräten die wir im alltäglichen Leben verwenden steigt immer weiter. Diese Geräte sammeln Daten über ihre Nutzung und Umgebung. Diese Daten werden nicht gesammelt um eine bestimmte Hypothese zu untermauern, sondern um Muster zu finden die eine Hypothese bilden können. Die gesammelten Daten sind oft semi-strukturiert, können aus verschiedenen Quellen stammen und sind möglicherweise mangelhaft. Der Begriff BigData hat sich für solche Informationen herausgebildet. Parallele Datenverarbeitungs-Systeme wurden entwickelt um mit BigData zu arbeiten. Sie arbeiten mit einer Vielzahl von parallelen Arbeitsknoten. Die große Anzahl an Maschinen und die typischerweise lange Verarbeitungszeit führt zu einer hohen Fehlerwahrscheinlichkeit. Existierende Fehlertoleranz Strategien für diese Systeme nutzen normalerweise komplette Neustarts oder arbeiten blockierendernd. Entweder können sie gar nicht mit Fehlern umgehen und starten den gesamten Job neu, oder sie speichern alle Zwischenergebnisse bevor der nächste Schritt gestartet wird. Diese Dissertation hat die Absicht einen besseren Ansatz für Fehlertoleranz in parallelen Datenverarbeitungs-Systemen zu finden. Die Grundlage des Ansatzes vermeidet Neustarts und arbeitet in nicht blockierender Weise. Die vorgestellten ephemeral materialization points (Flüchtige Materialisierungspunkte) halten Daten im Speicher, während der Job untersucht wird. Diese Untersuchung ermöglicht es dem System die besten Punkte für die Materialisierung zu finden. Diese Materialisierung blockiert die Verarbeitung nicht. Aufbauend auf dieser Methode stellt die Dissertation verschiedene Fehlertoleranz Mechanismen für parallele Datenverarbeitungs-Systeme vor. Auf der einen Seite behandelt es verschiedene Fehlertypen die in den üblichen Neustart Methoden nicht behandelt werden können, wie Daten- oder Software-Fehler. Auf der anderen Seite betrachtet sie Optimierungen für Jobs mit zustandslosen Teilschritten. Die Zustandslosen Teilschritte müssen nicht die gesamten hereinkommenden Daten wieder verarbeiten, da sie keinen Zustand wieder herstellen müssen. Die Möglichkeit einen Teilschritt an jeder Stelle des hereinkommenden Datenstroms neu zu starten eröffnet die Möglichkeit für weitere Optimierungen. Das System kann während der Wiederherstellung zusätzliche Knoten zu dem Job hinzufügen oder Teile der hereinkommenden Daten auslassen. Die Evaluationen der vorgestellten Methoden zeigen, dass sie eine schnelle Wiederherstellung bieten und gleichzeitig geringe Zusatzkosten in Bezug auf die Laufzeit und den Speicherverbrauch verursachen.en005 Computerprogrammierung, Programme, Datenfault toleranceparallel processingintermediate datamaterialization pointsBig DataFehlertoleranzparallele DatenverarbeitungZwischenergebnisseMaterialisierungspunkteFault tolerance in parallel data processing systemsDoctoral ThesisFehlertoleranz in parallel Datenverarbeitungs-Systemen