Please use this identifier to cite or link to this item: http://dx.doi.org/10.14279/depositonce-5132
Main Title: Massively parallel stream processing with latency guarantees
Translated Title: Massiv parallele Streamdatenverarbeitung mit Latenzgarantien
Author(s): Lohrmann, Björn
Advisor(s): Kao, Odej
Referee(s): Kao, Odej
Freytag, Johann-Christoph
Sattler, Kai-Uwe
Granting Institution: Technische Universität Berlin
Type: Doctoral Thesis
Language Code: en
Abstract: A new class of stream processing engines has recently established itself as a platform for applications in numerous domains, such as personalized content- and ad-serving, online recommender systems or social media analytics. These new engines draw inspiration from Big Data batch processing frameworks (Google's MapReduce and its descendants) as well existing stream processing engines (e.g. Borealis and STREAM). They process data on-the-fly without first storing it in a file system and their core programming abstractions hide the complexity of distributed-parallel programming. Although stream processing applications commonly need to process ingested data within time bounds, this new class of engines so far computes results "as fast as possible". As variations in workload characteristics are often hard to predict and outside the control of the application, this may quickly lead to a situation where "as fast as possible" becomes "not fast enough" for the application. This thesis revisits the design of this new class of stream processing engines. The core question addressed by this thesis is how latency requirements can be specified and continuously enforced within these engines in a resource-efficient manner. To this end, this thesis contributes (1) a formalism and associated semantics for expressing latency requirements for stream processing applications, (2) a set of techniques for engines to enforce them and (3) an evaluation of the effectiveness of the presented techniques. The proposed techniques optimize resource efficiency by automatically adjusting the data shipping strategy between data flow tasks and adapting the mapping between tasks and execution threads at runtime. Furthermore, based on workload statistics measured at runtime, they adapt the application's parallelism by exploiting the elasticity of shared, resource-managed compute clusters. To evaluate their effectiveness, they have been implemented in a research prototype and an experimental evaluation with several application workloads has been conducted on a large commodity cluster.
In den vergangenen Jahren hat sich eine neue Generation von Systemen zur Streamdatenverarbeitung etabliert, die ihre Anwendung zum Beispiel in Echzeit-Empfehlungssystemen, personalisiertem Online-Marketing und der Analyse von Daten aus sozialen Netzwerken findet. Diese neuartigen Systeme vereinen Eigenschaften batch-orienter Datenanalysesysteme aus dem Big Data Bereich (z.B. Google MapReduce), mit denen klassischer Systeme zur Streamdatenverarbeitung (z.B. Borealis und STREAM). Zumeist handelt es sich hierbei um Software-Frameworks deren Programmierabstraktionen die Komplexität paralleler Programmierung kapseln und deren Fokus die Verarbeitung eingehender Daten ohne vorherige persistente Speicherung ist. Obwohl konkrete Anwendungen der Streamdatenverarbeitung eingehende Daten für gewöhnlich innerhalb enger Zeitgrenzen verarbeiten müssen, ist der Fokus der existierenden Systeme diese Verarbeitung "so früh wie möglich" durchzuführen. Schwer vorhersagbare und unkontrollierbare Schwankungen in der Verarbeitungslast führen jedoch schnell zu einer Situation in der "so früh wie möglich" sich als "nicht früh genug" für die Anwendung erweist. Aufbauend auf dem aktuellen Design von Systemen zur Streamdatenverarbeitung, behandelt diese Arbeit im Kern die Frage, wie sich die Latenzanforderungen von Anwendungen spezifizieren and zur Laufzeit ressourceneffizient garantieren lassen können. Die wissenschaftlichen Beiträge dieser Arbeit sind (1) ein Formalismus zur Spezifikation von Latenzanforderungen von Anwendungen der Streamdatenverarbeitung, (2) ein Satz an Verfahren, die derart spezifizierte Latenzanfordungen zur Laufzeit umsetzen und (3) eine experimentelle Evaluation dieser Verfahren. Die in dieser Arbeit beschriebenen Verfahren optimieren die Ressourceneffizienz durch Anpassung der Datenübertragungsstrategien und der Abbildung von Anwendungsteilen auf Threads zur Laufzeit. Basierend auf Messungen bestimmter Aspekte der Anwendungslast, passen sie zudem die Parallelität dieser Anwendungen zur Laufzeit an, unter Ausnutzung der Ressourcen-Elastizität aktueller Cluster Management Systeme. Die genannten Verfahren sind im Rahmen dieser Arbeit prototypisch implementiert und in mehreren Anwendungsszenarien auf einem großen Rechencluster experimentell evaluiert worden.
URI: http://depositonce.tu-berlin.de/handle/11303/5461
http://dx.doi.org/10.14279/depositonce-5132
Exam Date: 26-Nov-2015
Issue Date: 2016
Date Available: 19-May-2016
DDC Class: DDC::000 Informatik, Informationswissenschaft, allgemeine Werke::000 Informatik, Wissen, Systeme::000 Informatik, Informationswissenschaft, allgemeine Werke
Subject(s): massively parallel stream processing
latency guarantees
latency constraints
elastic scaling
massiv parallele Streamdatenverarbeitung
Latenzgarantien
elastische Skalierung
Creative Commons License: https://creativecommons.org/licenses/by/4.0/
Appears in Collections:Technische Universität Berlin » Fakultäten & Zentralinstitute » Fakultät 4 Elektrotechnik und Informatik » Institut für Telekommunikationssysteme » Publications

Files in This Item:
File Description SizeFormat 
lohrmann_bjoern.pdf1.53 MBAdobe PDFThumbnail
View/Open


Items in DepositOnce are protected by copyright, with all rights reserved, unless otherwise indicated.