Knasmüller, B. (2018). Ausfallsicherheitsmechanismen in Datenstromverarbeitungssystemen [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2018.44180
Datenstromverarbeitung (engl. “Stream Processing”) ist eine Methode zur Verarbeitungund Aggregation von Datenströmen, um neue Informationen zu erschließen. Daraufaufbauende Applikationen (engl. “Stream Processing Applications”; SPAs), die dazuverwendet werden, Datenströme zu analysieren, sind in der Regel als verteilte Systemekonzipiert. Treten in solchen Systemen Fehler oder Kommunikationsstörungen auf,werden Ausfallsicherheitsmechanismen eingesetzt, um einen unterbrechungsfreienBetrieb zu gewährleisten. Aufgrund der Nahezu-Echtzeit-Anforderungen von SPAsmüssen solche im Fehlerfall eine Balance zwischen Konsistenz (d. h. korrekte Ergebnissezu produzieren) und Verfügbarkeit (d. h. diese Ergebnisse schnell genug zu produzieren)finden, da beides zusammen nicht gleichzeitig erreicht werden kann.Redunanz ist das zentrale Element von Ausfallsicherheit. Bestehende Ansätze ausder Literatur ermöglichen Redunanz, indem sie Operatoren (die Bausteine von SPAs)replizieren. Dies greift zu kurz, weshalb wir ein neues Ausfallsicherheitsmodell präsen-tieren, das auf einer höheren Abstraktionsebene angesiedelt ist und auf funktionalerRedundanz auf der Ebene von Pfaden (Abfolgen von Operatoren) beruht.Basierend auf einem konkreten Szenario aus der Praxis identifizieren wir Anforderun-gen anPathfinder, einem neuen Ausfallsicherheitsframework, und evaluieren es anhandeines Beispiels aus der Praxis. Pathfinder verbessert die Schwächen bisheriger Ansätze,indem SPA-Entwicklern ermöglicht wird, funktionale Redundanz zu spezifizieren. ZurLaufzeit reagiert Pathfinder auf Defekte, indem auf einen fehlerfreien Alternativpfadgewechselt wird, der eine ähnliche Funktionalität bietet. Ein Schutzschalter-ähnlicherMechanismus dient schließlich dazu, auf geordnete Weise wieder auf den Hauptpfadzurückzukehren, sobald der Defekt behoben wurde.Im direkten Vergleich mit einer vollständig redundanten Replizierung ist es mit unsererLösung möglich, etwa 30% der Betriebskosten zu sparen, während eine vergleichbareVerfügbarkeit erzielt werden kann.Abschließend wird durch einige Experimente verdeutlicht, dass die Mechanismenzur Fehlerdetektion und Ausfallsicherheit wie erwartet funktionieren und nur einengeringen Mehraufwand hinsichtlich der Performance verursachen.
de
Stream processing is a practice where continuous data streams are processed and aggregated in near real-time, ultimately resulting in the discovery of new information. Stream processing applications (SPAs) are used to analyse data streams and are often deployed in a distributed manner for performance reasons. When faced with partial failures or network communication outages, fault tolerance mechanisms must ensure a continuous operation. Due to the near-real-time requirements, these mechanisms have to balance the need for consistency (i.e., producing correct results) and availability (i.e., producing results fast enough) in case of failures since fulfilling both at the same time is impossible. The key concept of fault tolerance is redundancy. Existing fault tolerance approaches for SPAs implement redundancy by replicating operators, the building blocks of an SPA. We argue that this approach is not sufficient and present a novel fault tolerance model which focuses on functional redundancy on the level of paths (sequences of operators). Based on a concrete motivational scenario, we identify requirements of Pathfinder, our new fault tolerance framework, and evaluate it based on our motivational scenario. Pathfinder addresses the shortcomings of existing approaches by allowing SPA developers to specify functional redundancy. At runtime, Pathfinder reacts to faults by switching to a fault-free path with a similar functionality. To restore the main path once the failed operator has recovered, Pathfinder uses the circuit breaker pattern which has been proven in the domain of microservices. By comparing our approach to a fully redundant replication, we show that 30% of total operational costs can be saved while achieving a similar level of availability. Finally, several experiments show that Pathfinder’s failure detection and fault tolerance mechanisms are working as expected and only add a minimal performance overhead.