title: Accelerating Event Stream Processing in On- and Offline Systems
Creators: name: Körber, Michael
Publisher: name: Philipps-Universität Marburg
Year: 2021
Subjects: event stream processing
Hochschulschrift
database
iGPU
Data processing Computer science
Informatik
Mustererkennung
data stream
Datenstrom
Ereignisstromverarbeitung
database index
Datenbank
pattern matching

description: Die stetig wachsende Anzahl an Datenproduzenten und deren ständig wachsendes Datenvolumen macht die Erfassung, Analyse und das Speichern potenziell unendlicher Datenströme zu entscheidenden Aufgaben der heutigen Datenverarbeitungslandschaft. Eine weit verbreitete Form von Datenströmen sind Ereignisströme, die aus kontinuierlich eintreffenden Meldungen über bestimmte Ereignisse der realen Welt bestehen. So erzeugt beispielsweise ein Temperatursensor einen Ereignisstrom, indem er regelmäßig die Temperatur misst und diese mit der Messzeit meldet, falls sich eine wesentliche Änderung gegenüber der vorherigen Messung ergibt. In dieser Arbeit betrachten wir zwei Arten der Ereignisstromverarbeitung: online und offline. Online bedeutet, dass die Ereignisse verarbeitet werden, sobald sie eintreffen. Die Verabeitung erfolgt hierbei ausschließlich im Hauptspeicher. Offline bedeutet hingegen, dass die Ereignisdaten zuvor in einem nichtflüchtigen Speicher abgelegt werden. Moderne scale-out Datenstromsysteme wie Apache Flink oder Spark Streaming unterstützen beide Verarbeitungsmodi. Allerdings weisen solche Systeme zwei gravierende Schwächen auf, welche Ihre Leistung negativ beeinträchtigen. Erstens laden sie für die Offline-Verarbeitung den gesamten Datenstrom vom Sekundärspeicher und überführen alle Daten sequentiell in die zugehörige Online-Engine. Hierbei dominieren die Kosten für den Sekundärspeicherzugriff schnell die gesamten Verarbeitungskosten. Zweitens konzentrieren sich diese Systeme auf die Verteilung von Berechnungen über die Knoten eines Clusters, nutzen jedoch die verfügbaren Resourcen einzelner Knoten nur zu einem Bruchteil. Diese Arbeit beschreibt drei Ansätze zum Lösen dieser Probleme. Zunächst werden neuartige Techniken zur Offline-Verarbeitung von zwei wichtigen Anfragetypen (fensterbasierte Aggregation und sequenzieller Musteranfragen) vorgestellt. Wir nutzen gut erforschte Indexierungstechniken, um die Gesamtmenge der aus dem Sekundärspeicher zu lesenden Daten zu reduzieren und zeigen, dass sich dadurch die Gesamtlaufzeit der Anfragen erheblich verbessert. Insbesondere entwickeln wir die ersten indexbasierten Algorithmen für Musteranfragen, die mit der Match_Recognize-Klausel ausgedrückt werden, einem neuen und leistungsstarken SQL Feature, das bisher nur wenig Beachtung gefunden hat. Zweitens zeigen wir, wie man die Ressourcenauslastung einzelner Knoten maximieren kann, indem man die Möglichkeiten moderner Hardware voll ausschöpft. Zu diesem Zweck entwickeln wir ein prototypisches Shared-Memory-CPU-GPU Ereignisverarbeitungssystem. Das System bietet Implementierungen aller wichtigen Ereignisverarbeitungsoperatoren (Filterung, fensterbasierte Aggregation, fensterbasierter Join und sequenzielle Musteranfragen). In Experimenten zeigen wir, dass ein solch hardwarenahes System in Bezug auf die Ressourcennutzung und den Verarbeitungsdurchsatz den hardwareunabhängigen Systemen überlegen ist. Schließlich stellen wir TPStream vor, einen neuen Operator für Musteranfragen über zeitliche Intervalle. TPStream benötigt zum Erstellen von Ergebnissen nur eine sehr geringe Latenz und ist im Gegensatz zu sequenziellen Musteranfragen auch für unpartitionierte Eingabeströme leicht parallelisierbar. Dies führt zu einer gesteigerten Ressourcennutzung, insbesondere bei modernen CPUs mit mehreren Kernen.
description: Due to a growing number of data producers and their ever-increasing data volume, the ability to ingest, analyze, and store potentially never-ending streams of data is a mission-critical task in today's data processing landscape. A widespread form of data streams are event streams, which consist of continuously arriving notifications about some real-world phenomena. For example, a temperature sensor naturally generates an event stream by periodically measuring the temperature and reporting it with measurement time in case of a substantial change to the previous measurement. In this thesis, we consider two kinds of event stream processing: online and offline. Online refers to processing events solely in main memory as soon as they arrive, while offline means processing event data previously persisted to non-volatile storage. Both modes are supported by widely used scale-out general-purpose stream processing engines (SPEs) like Apache Flink or Spark Streaming. However, such engines suffer from two significant deficiencies that severely limit their processing performance. First, for offline processing, they load the entire stream from non-volatile secondary storage and replay all data items into the associated online engine in order of their original arrival. While this naturally ensures unified query semantics for on- and offline processing, the costs for reading the entire stream from non-volatile storage quickly dominate the overall processing costs. Second, modern SPEs focus on scaling out computations across the nodes of a cluster, but use only a fraction of the available resources of individual nodes. This thesis tackles those problems with three different approaches. First, we present novel techniques for the offline processing of two important query types (windowed aggregation and sequential pattern matching). Our methods utilize well-understood indexing techniques to reduce the total amount of data to read from non-volatile storage. We show that this improves the overall query runtime significantly. In particular, this thesis develops the first index-based algorithms for pattern queries expressed with the Match_Recognize clause, a new and powerful language feature of SQL that has received little attention so far. Second, we show how to maximize resource utilization of single nodes by exploiting the capabilities of modern hardware. Therefore, we develop a prototypical shared-memory CPU-GPU-enabled event processing system. The system provides implementations of all major event processing operators (filtering, windowed aggregation, windowed join, and sequential pattern matching). Our experiments reveal that regarding resource utilization and processing throughput, such a hardware-enabled system is superior to hardware-agnostic general-purpose engines. Finally, we present TPStream, a new operator for pattern matching over temporal intervals. TPStream achieves low processing latency and, in contrast to sequential pattern matching, is easily parallelizable even for unpartitioned input streams. This results in maximized resource utilization, especially for modern CPUs with multiple cores.