FAQ
© 2019 Staats- und Universitätsbibliothek
Hamburg, Carl von Ossietzky

Öffnungszeiten heute09.00 bis 24.00 Uhr alle Öffnungszeiten

Eingang zum Volltext in OPUS

Hinweis zum Urheberrecht

Dissertation zugänglich unter
URN: urn:nbn:de:gbv:18-98138
URL: http://ediss.sub.uni-hamburg.de/volltexte/2019/9813/


Scalable Push-Based Real-Time Queries on Top of Pull-Based Databases

Skalierbare Push-basierte Echtzeitanfragen auf Pull-basierten Datenbanken

Wingerath, Wolfram

pdf-Format:
 Dokument 1.pdf (9.467 KB) 


SWD-Schlagwörter: Datenbank , Big Data , NoSQL-Datenbanksystem , Key-Value-Datenbank , MongoDB , Datenstrom , Datenstrommanagementsystem , Verteiltes System , Web cachi
Freie Schlagwörter (Deutsch): Echtzeitanfragen , Echtzeitdatenbanken , Query-Caching , reaktive Applikationen, dynamische Daten
Freie Schlagwörter (Englisch): real-time queries , real-time databases , query caching , reactive applications , dynamic data
Basisklassifikation: 54.25 , 54.39 , 54.64 , 54.61
Institut: Informatik
DDC-Sachgruppe: Informatik
Dokumentart: Dissertation
Hauptberichter: Ritter, Norbert (Prof. Dr.-Ing.)
Sprache: Englisch
Tag der mündlichen Prüfung: 08.05.2019
Erstellungsjahr: 2018
Publikationsdatum: 24.06.2019
Kurzfassung auf Englisch: Many of today's web applications notify users of status updates and other events in realtime.
But even though more and more usage scenarios evolve around the interaction between users, detecting and publishing changes remains notoriously hard even with state-of-the-art data management systems. While traditional database systems excel at complex queries over historical data, they are inherently pull-based and therefore ill-equipped to push new information to clients. Systems for data stream management and processing, on the other hand, are natively push-oriented and thus facilitate reactive behavior. However, they do not retain data indefinitely and are therefore not able to answer historical queries. The separation between these two system classes gives rise to both high complexity and high maintenance costs for applications that require persistence and real-time change notifications at the same time. How can push-based access be enabled for database queries over historical data collections in a simple and efficient manner?

In this thesis, we explore the system space between pull-oriented database systems and push-oriented stream management systems. Specifically, we focus on the novel system class of real-time databases that bridge the gap between both paradigms by providing collection-based semantics for pull-based and push-based queries alike. Through an in-depth system survey, we uncover deficiencies in existing implementations and scale-prohibitive limitations in their respective designs. In order to address these issues, we propose the system design InvaliDB which makes push-based real-time queries available as an opt-in feature for existing pull-based database systems. InvaliDB exhibits several substantial benefits over current real-time database architectures. First, it avoids the scalability bottlenecks that other systems are constrained by through a novel two-dimensional workload partitioning scheme. Second, our design supports more expressive queries than its peers, including sorted filter queries with limit and offset clauses, aggregations, and joins. Third, InvaliDB is database-agnostic through a pluggable query engine and can therefore be applied to existing (pull-based) application stacks in order to enable push-based data access. We provide an experimental evaluation to demonstrate that sustainable query matching throughput scales linearly with the number of servers employed for query matching, while end-to-end notification latency remains consistently low across all InvaliDB configurations. A detailed case study of our InvaliDB prototype in a production deployment further illustrates that our approach is feasible to implement, enables easy-to-use query interfaces, and is practically useful for data-intensive industry applications.
Kurzfassung auf Deutsch: Heutzutage informieren viele Webapplikationen Benutzer über Status-Updates und andere Ereignisse in Echtzeit. Aber auch wenn die Interaktion zwischen Nutzern immer häufiger in den Vordergrund rückt, so sind selbst moderne Datenverwaltungssysteme nur bedingt zur Erkennung und Propagierung von Zustandsänderungen in der Lage. Während traditionelle Datenbanken für komplexe Anfragen über historische Daten konzipiert wurden, sind sie inhärent Pull-basiert und bieten daher nur eingeschränkte Unterstützung für proaktive Datenzugriffsmuster. Systeme für Datenstromverwaltung und -verarbeitung sind dagegen Push-orientiert und ermöglichen so reaktives Verhalten. Sie speichern Daten jedoch nur für begrenzte Zeit und können folglich keine historischen Anfragen beantworten. Die Trennung zwischen diesen beiden Systemklassen bedingt sowohl hohe Komplexität als auch hohe Wartungskosten bei Anwendungen, die gleichzeitig Persistenz und Echtzeitbenachrichtigungen bei Zustandsänderungen benötigen. Wie kann Push-basierter Zugriff für Anfragen über historische Daten simpel und effizient ermöglicht werden?

In dieser Arbeit untersuchen wir das Spektrum zwischen Pull-orientierten Datenbanksystemen und Push-orientierten Systemen zur Datenstromverwaltung. Insbesondere konzentrieren wir uns auf die neuartige Systemklasse der Echtzeitdatenbanken (real-time databases). Systeme dieser Klasse schließen die Kluft zwischen beiden Paradigmen, indem sie die für Datenbanksysteme übliche Collection-basierte Semantik für traditionelle Pull-basierte Anfragen sowie für Push-basierte Echtzeitanfragen (real-time queries) unterstützen. Durch eine detaillierte Analyse aktueller Systeme decken wir Mängel in konkreten Implementationen sowie konzeptionelle Limitationen in den jeweiligen Architekturen auf. Zur Lösung dieser Probleme schlagen wir das Systemdesign InvaliDB vor, welches Push-basierte Echtzeitanfragen als Opt-in-Feature für existierende Pull-basierte Datenbanksysteme bereitstellt. InvaliDB verfügt über mehrere wesentliche Vorteile gegenüber bestehenden Echtzeitdatenbankarchitekturen. Erstens vermeidet es Flaschenhälse, die die Skalierbarkeit anderer Systeme einschränken, durch ein neuartiges Konzept zur zweidimensionalen Lastverteilung. Zweitens unterstützt unser Design mächtigere Echtzeitanfragen als bestehende Systeme, darunter sortierte Filteranfragen mit Limit- und Offsetklauseln, Aggregationen und Joins. Drittens abstrahiert InvaliDB durch eine austauschbare Komponente zur Anfrageverarbeitung (pluggable query engine) von konkreten Datenbanktechnologien und kann daher auch bestehende (Pull-basierte) Anwendungsstacks um Push-basierte Datenzugriffsmechanismen erweitern. In einer experimentellen Evaluation demonstrieren wir, dass der für eine InvaliDB-Instanz tragbare Durchsatz bei der Anfrageverarbeitung (sustainable query matching throughput) linear mit der Anzahl der für die Anfrageverarbeitung eingesetzten Server skaliert, wobei die Ende-zu-Ende-Latenz über alle InvaliDB-Konfigurationen hinweg konstant niedrig bleibt. Eine detaillierte Fallstudie über unseren InvaliDB-Prototypen im Produktionsbetrieb zeigt darüber hinaus, dass unser Ansatz mit überschaubarem Aufwand implementierbar ist, simple Anfrageschnittstellen ermöglicht und in datenintensiven Industrieanwendungen praktisch einsetzbar ist.