Traub, Jonas, Markl, Volker, Rabl, Tilmann, Breß, Sebastian, Katsifodimos, Asterios, Technische Universität Berlin, El Abbadi, Amr, and Bifet, Albert
The Internet of Things (IoT) consists of billions of devices which form a cloud of network-connected sensor nodes. These sensor nodes supply a vast number of data streams with massive amounts of sensor data. Real-time sensor data enables diverse applications including traffic-aware navigation, machine monitoring, and home automation. Current stream processing pipelines are demand-oblivious, which means that they gather, transmit, and process as much data as possible. In contrast, a demand-based processing pipeline uses requirement specifications of data consumers, such as failure tolerances and latency limitations, to save resources. In this thesis, we present an end-to-end architecture for demand-based data stream gathering, processing, and transmission. Our solution unifies the way applications express their data demands, i.e., their requirements with respect to their input streams. This unification allows for multiplexing the data demands of all concurrently running applications. On sensor nodes, we schedule sensor reads based on the data demands of all applications, which saves up to 87% in sensor reads and data transfers in our experiments with real-world sensor data. Our demand-based control layer optimizes the data acquisition from thousands of sensors. We introduce time coherence as a fundamental data characteristic, which is the delay between the first and the last sensor read that contribute values to a tuple. A large scale parameter exploration shows that our solution scales to large numbers of sensors and operates reliably under varying latency and coherence constraints. On stream analysis systems, we tackle the problem of efficient window aggregation. We contribute a general aggregation technique, which adapts to four key workload characteristics: Stream (dis)order, aggregation types, window types, and window measures. Our experiments show that our solution outperforms alternative solutions by an order of magnitude in throughput, which prevents expensive system scale-out. We further derive data demands from visualization needs of applications and make these data demands available to streaming systems such as Apache Flink. This enables streaming systems to preprocess data with respect to changing visualization needs. Experiments show that our solution reliably prevents overloads when data rates increase. Im Internet der Dinge (engl. Internet of Things/IoT) fungieren Milliarden von Geräten als Sensorknoten und formen eine Datenwolke (engl. Cloud). Diese Sensorknoten produzieren in Echtzeit eine Vielzahl von Datenströmen mit enormen Datenmengen und ermöglichen somit verschiedenste Anwendungen, wie die Automation von Gebäuden, die Überwachung von Maschinen und eine Navigation auf Basis aktueller Verkehrsdaten. Momentan werden in der Regel bedarfsunabhängig so viele Sensordaten wie möglich erhoben. Im Gegensatz dazu steht ein bedarfsorientiertes System, welches Anforderungsspezifikationen von Datennutzern, wie zum Beispiel Fehlertoleranzen und zulässige Latenzen, verwendet, um Ressourcen zu sparen. Die vorliegende Arbeit stellt eine Ende-zu-Ende Architektur vor, mit der Sensordaten bedarfsabhängig erhoben, übertragen und verarbeitet werden können. Der Datenbedarf einer Anwendung ergibt sich aus den Anforderungen an die Eingabedatenstöme. Die vorgestellte Lösung vereinheitlicht die Spezifikation des Datenbedarfs, sodass der Bedarf aller laufenden Anwendungen gebündelt werden kann. An Sensorknoten können so Lesevorgänge abhängig vom gemeinsamen Bedarf aller Anwendungen ausgeführt werden. In Experimenten ergab sich dadurch eine Einsparung von bis zu 87% des Datenverkehrs. Ein neuartiges Sensorkontrollsystem optimiert die Datenerhebung von einer Vielzahl von Sensorknoten und etabliert die zeitliche Kohärenz als essentielle Eigenschaft von Datentupeln. Die zeitliche Kohärenz beschreibt die Verzögerung zwischen dem ersten und letzten Lesevorgang, der Sensorwerte zu einem Tupel beisteuert. Eine umfassende Untersuchung zeigt, dass das System zu tausenden Sensorknoten skaliert und auch bei variierenden Rahmenbedingungen effizient ist. Zur Optimierung der Performanz von Systemen zur Datenstromenanalyse wird eine allgemeine Aggregationstechnik vorgestellt. Diese passt sich automatisch an die zeitliche Sortierung von Datenströmen, die Art der Aggregationsfunktionen, die Art der Fenster und die Dimensionen, in denen Fenster definiert sind, an. In Experimenten verzehnfachte dieser adaptive Ansatz den Datendurchsatz im Vergleich zu alternativen Techniken. Abschließend betrachtet die vorliegende Arbeit den Datenbedarf von Anwendungen, die Datenstöme in Echtzeit visualisieren. Dabei wird der Datenbedarf von Visualisierungseinstellungen abgeleitet, welche von Benutzern jederzeit interaktiv verändert werden können, und dann Systemen zur Datenstromanalyse, wie zum Beispiel Apache Flink, bereitgestellt. So können diese Systeme große Datenmengen bedarfsorientiert und in Echtzeit vorverabeiten. Experimete zeigen, dass die gezeigte Lösung auch bei steigenden Datenraten eine Systemüberlastung verhindert.