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

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. Heutzutage informieren viele Webapplikationen Benutzer uber Status-Updates und andere Ereignisse in Echtzeit. Aber auch wenn die Interaktion zwischen Nutzern immer haufiger in den Vordergrund ruckt, so sind selbst moderne Datenverwaltungssysteme nur bedingt zur Erkennung und Propagierung von Zustandsanderungen in der Lage. Wahrend traditionelle Datenbanken fur komplexe Anfragen uber historische Daten konzipiert wurden, sind sie inharent Pull-basiert und bieten daher nur eingeschrankte Unterstutzung fur proaktive Datenzugriffsmuster. Systeme fur Datenstromverwaltung und -verarbeitung sind dagegen Push-orientiert und ermoglichen so reaktives Verhalten. Sie speichern Daten jedoch nur fur begrenzte Zeit und konnen folglich keine historischen Anfragen beantworten. Die Trennung zwischen diesen beiden Systemklassen bedingt sowohl hohe Komplexitat als auch hohe Wartungskosten bei Anwendungen, die gleichzeitig Persistenz und Echtzeitbenachrichtigungen bei Zustandsanderungen benotigen. Wie kann Push-basierter Zugriff fur Anfragen uber historische Daten simpel und effizient ermoglicht 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 schliesen die Kluft zwischen beiden Paradigmen, indem sie die fur Datenbanksysteme ubliche Collection-basierte Semantik fur traditionelle Pull-basierte Anfragen sowie fur Push-basierte Echtzeitanfragen (real-time queries) unterstutzen. Durch eine detaillierte Analyse aktueller Systeme decken wir Mangel in konkreten Implementationen sowie konzeptionelle Limitationen in den jeweiligen Architekturen auf. Zur Losung dieser Probleme schlagen wir das Systemdesign InvaliDB vor, welches Push-basierte Echtzeitanfragen als Opt-in-Feature fur existierende Pull-basierte Datenbanksysteme bereitstellt. InvaliDB verfugt uber mehrere wesentliche Vorteile gegenuber bestehenden Echtzeitdatenbankarchitekturen. Erstens vermeidet es Flaschenhalse, die die Skalierbarkeit anderer Systeme einschranken, durch ein neuartiges Konzept zur zweidimensionalen Lastverteilung. Zweitens unterstutzt unser Design machtigere 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 fur eine InvaliDB-Instanz tragbare Durchsatz bei der Anfrageverarbeitung (sustainable query matching throughput) linear mit der Anzahl der fur die Anfrageverarbeitung eingesetzten Server skaliert, wobei die Ende-zu-Ende-Latenz uber alle InvaliDB-Konfigurationen hinweg konstant niedrig bleibt. Eine detaillierte Fallstudie uber unseren InvaliDB-Prototypen im Produktionsbetrieb zeigt daruber hinaus, dass unser Ansatz mit uberschaubarem Aufwand implementierbar ist, simple Anfrageschnittstellen ermoglicht und in datenintensiven Industrieanwendungen praktisch einsetzbar ist.