Distributed Computing on Event-Sourced Graphs
Total Page:16
File Type:pdf, Size:1020Kb
Distributed Computing on Event-Sourced Graphs Dissertation zur Erlangung des Doktorgrades Dr.rer.nat. der Fakultät für Ingenieurwissenschaften, Informatik und Psychologie der Universität Ulm vorgelegt von Benjamin Erb aus Bonn Institut für Verteilte Systeme Fakultät für Ingenieurwissenschaften, Informatik und Psychologie Universität Ulm 2019 DISTRIBUTEDCOMPUTING ONEVENT-SOURCEDGRAPHS BENJAMINERB Institut für Verteilte Systeme Universität Ulm DISTRIBUTEDCOMPUTING ONEVENT-SOURCEDGRAPHS DISSERATION zur Erlangung des Doktorgrades Dr. rer. nat. der Fakultät für Ingenieurwissenschaften, Informatik und Psychologie der Universität Ulm vorgelegt von BENJAMINERB aus Bonn, Deutschland 2 0 1 9 Amtierender Dekan Prof. Dr.-Ing. Maurits Ortmanns Gutachter Prof. Dr. rer. nat. Frank Kargl Prof. Dr. rer. nat. Dr. h. c. Kurt Rothermel Tag der Promotion 04.12.2019 kontakt [email protected] www.benjamin-erb.de ABSTRACT Modern applications with increasingly connected domain topologies require Motivation. processing and programming abstractions that reflect the network structure inherent to these applications. At the same time, data-intensive applications necessitate more and more online processing capabilities when consuming in- coming streams of events to execute continuous computations and provide fast results. Only very few systems have taken into account the combined chal- lenge of executing graph processing on a dynamically evolving graph. How- ever, this is a critical capability as timely computations enable reactive applica- tion behaviors upon graph changes. In addition, no existing system supports processing on a live graph and on past version of that evolving graph at the same time. The distinct characteristics of event processing and graph computing, as Problem statement. well as batch processing and live processing yield specific requirements for any computing platform that unifies these approaches. Solutions require (i) data management strategies to keep track of the continuous graph evolution, (ii) ap- propriate graph processing models that can simultaneously handle computa- tions and graph updates, and (iii) an efficient platform implementation that provides the necessary performance at runtime. To this end, this thesis suggests a combination of an adapted actor model, Approach. an event-sourced persistence layer, and a vertex-based, asynchronous live pro- gramming model. The event-sourced actor model enables highly concurrent computations in which the full application history is implicitly persisted. This model is then refined into a live graph processing model with a particular fo- cus on asynchronicity, liveness, and parallel execution support. At the same time, the use of event sourcing enables the model to reconstruct global and consistent graph representations from arbitrary points of the timeline. These graph representations form the basis for decoupled, non-live graph processing models. The chronograph platform represents an implementation of the event- Result. sourced graph model. The platform ingests external update streams and main- tains a live graph representation as part of a user-specified graph application. It thus enables live and offline computations on event-driven, history-aware graphs and supports different processing models on the evolving graph. This thesis provides the following contributions: (i) a distributed comput- Conclusion & ing approach with history support based on the actor model and event sourc- contributions. ing, as wall as corresponding and supplementary concepts, (ii) a data man- agement approach for evolving graphs that builds on the event-sourced actor model, (iii) a set of novel and adapted programming and processing models that integrate well with event-sourced graphs, (iv) a distributed platform archi- tecture that implements the event-sourced graph model; and (v) an evaluation framework for such live graph processing systems. ZUSAMMENFASSUNG Moderne Software-Systeme bilden immer komplexere Szenarien mit zuneh- Motivation. mend vernetzteren Anwendungsdaten ab. Dies erfordert neue Verabreitungs- modelle, welche die Vernetzung der Daten miteinbezieht. Gleichzeitig erfor- dern datenintensive Anwendungen vermehrt eine echtzeitnahe Verarbeitung, um auf eingehenden Datenströmen kontinuierliche Berechnungen mit zeitna- hen Berechnungen durchzuführen. Kaum ein System erlaubt bisher die Kom- bination beider Ansätze – kontinuierliche Berechnungen auf Graphen, die sich zugleich auf Basis von externen Ereignisströmen verändern. Dies ist je- doch eine wichtige Fähigkeit, wenn Anwendungen kontinuierlich auf dynami- schen Graphen operieren und auf Veränderungen reagieren müssen. Zudem unterstützt keines der existierenden Systeme sowohl Berechnungen auf dem Live-Graph als auch auf älteren Versionen des Graphs. Ein solches System muss einerseits die Anforderungen von Event Proces- Problemstellung. sing und Graph Processing gegeneinander abwägen, als auch die Konzepte echtzeitnaher und stapelbasierter Berechnungen zusammenführen. Dies er- fordert (i) Datenverwaltungsstrategien zur Verfolgung des sich entwickelnden Graphs, (ii) angemessene Ausführungsmodelle, die gleichzeitig Berechnun- gen und Graph-Änderungen verarbeiten können sowie (iii) eine Implemen- tierung der Plattform, die zur Laufzeit die erforderliche Leistung bereitstellt. In dieser Arbeit wird die Kombination des Aktor-Modells, Event Sourcing, Eigener Ansatz. sowie einem vertex-basierten, asynchronen Programmiermodell vorgeschla- gen. Das resultierende Modell ermöglicht ermöglicht hochgradig parallele Be- rechnungen bei gleichzeitiger Persisitierung der vollständingen Zustandshis- torie de Aktoren. Dieses Modell dient als Grundlage für ein darauf aufbau- endes Verarbeitungsmodell für Graphen mit besonderem Schwerpunkt auf Asynchronität, Reaktionsvermögen und Unterstützung der parallelen Ausfüh- rung. Gleichzeitig ermöglicht der Einsatz von Event Sourcing die konsistente und globale Rekonstruktion beliebiger Graph-Zustände aus der Zeitleiste, wel- che als Grundlage für weitere, entkoppelte Berechnungen. chronograph implementiert als Plattform das konzeptuelle Modell und Ergebnis. führt benutzerdefinierte Graph-Anwendungen auf sich ändernden Graphen aus. Externe Datenströme dienen dabei als Quelle für Änderungen, welche vom System direkt eingepflegt werden. chronograph unterstützt gleichzeitig verschiedene Berechnungsmodelle, sowohl auf dem Live-Graphen, als auch auf älteren Graph-Versionen. Diese Arbeit bietet die folgenden Beiträge: (i) ein Konzept für verteilte, Zusammenfassung persistierte Berechnungen auf Basis des Aktor-Modells und Event Sourcing, der Beiträge. (ii) ein darauf aufbauender Data-Management-Ansatz für sich ändernde Gra- phen, (iii) eine Reihe von neuartigen und darauf angepassten Programmier- und Verarbeitungsmodellen für Graphen, (iv) eine verteilte Plattformarchi- tektur, die das konzeptuelle Modell implementiert und (v) ein Framework zur Evaluation solcher Systeme. PUBLICATIONS Parts of this thesis have been published in the following publications on dis- Peer-reviewed tributed graph computing and event sourcing. The list also contains other conference papers, workshop papers, and peer-reviewed publications of the author up to the time of submitting this journal articles by the thesis, including contributions on concurrent programming, distributed and author. mobile applications, scalable database systems, computer networks, network security, and psychological aspects of privacy: 1. Erb, B., Kaufmann, S., Schlecht, T., Schaub, F., Weber, M., “diretto: A Toolkit for Distributed Reporting and Collaboration.” In: Mensch & Computer 2011: überMEDIEN ÜBERmorgen. Chemnitz: Oldenbourg Verlag, 2011, pp. 151–160. doi: 10.1524/9783486712742.151. 2. Erb, B., Kargl, F., Domaschka, J., “Concurrent Programming in Web Applications.”In: it-Information Technology 56.3 (2014), pp. 119–126. doi: 10.1515/itit-2013-1030. 3. Erb, B., Kargl, F., “Combining Discrete Event Simulations and Event Sourcing.” In: Proceedings of the 7th International ICST Conference on Simulation Tools and Techniques. SIMUTools ’14. Lisbon, Portugal: ICST (Institute for Computer Sciences, Social-Informatics and Telecommuni- cations Engineering), 2014, pp. 51–55. doi: 10 . 4108 / icst . simutools . 2014.254624. 4. Erb, B., Kargl, F., “A Conceptual Model for Event-sourced Graph Com- puting.” In: Proceedings of the 9th ACM International Conference on Distributed Event-Based Systems. DEBS ’15. Oslo, Norway: ACM, 2015, pp. 352–355. doi: 10.1145/2675743.2776773. 5. Erb, B. Towards Distributed Processing on Event-sourced Graphs. Ex- tended Abstract. Doctoral Symposium of the 9th ACM International Conference on Distributed Event-Based Systems. Ulm University, 2015. doi: 10.13140/RG.2.1.3273.3289. 6. Erb, B., Habiger, G., Hauck, F. J., “On the Potential of Event Sourcing for Retroactive Actor-based Programming.” In: First Workshop on Pro- gramming Models and Languages for Distributed Computing. PMLDC ’16. Rome, Italy: ACM, 2016, pp. 1–5. doi: 10.1145/2957319.2957378. 7. Erb, B., Kargl, F., “Chronograph: A Distributed Platform for Event- Sourced Graph Computing.” In: Proceedings of the Posters and De- mos Session of the 17th International Middleware Conference. Middle- ware Posters and Demos ’16. Trento, Italy: ACM, 2016, pp. 15–16. doi: 10.1145/3007592.3007601. xii 8. Erb, B., Meißner, D., Pietron, J., Kargl, F., “Chronograph: A Distributed Processing Platform for Online and Batch Computations on Event- sourced Graphs.” In: Proceedings of the 11th ACM International Con-