Goronjic, V. (2024). CRDT-based serverless middleware for stateful objects in the edge-cloud continuum [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2024.112715
Die Beibehaltung von Zuständen ist herausfordernd für serverlose Funktionen am Netzwerkrand, da diese üblicherweise auf entfernten Speicherdiensten liegen und dies somit eine potenziell hohe Latenz mit sich bringt. Andere Lösungen halten die Daten entweder nicht lokal, beinhalten Komponenten, die von einer zentralen Komponente abhängig sind, oder sind für Cloud-basierte serverlose Plattformen konzipiert. All diese Lösungen sind daher nicht für den Edge-Bereich geeignet. Es benötigt daher einer Lösung für dieses Problem, die die oben genannten Anforderungen des Edge-Cloud-Kontinuums erfüllt und gleichzeitig in bestehende serverlose Plattformen integrierbar ist. In dieser Arbeit präsentieren wir MISO, eine CRDT-basierte serverlose Middleware für das Edge-Cloud-Kontinuum. Sie stellt sogenannte MISO Stateful Objects für serverlose Funktionen bereit, die mehrere dezentralisierte, konfliktfreie replizierte Datentypen in einem einzigen Objekt bündeln. Die Beiträge dieser Arbeit umfassen: i) das konzeptionelle Modell der MISO Stateful Objects, ii) die MISO-Middleware, bestehend aus dem Architekturmodell und einem Open-Source Software-Prototyp, iii) ein SDK für serverlose Funktionen, welches die Verwendung von MISO Stateful Objects in serverlosen Funktionen ermöglicht und iv) die asynchrone Replikation von MISO Stateful Objects mittels einem Overlay Netzwerk, optimiert in Hinblick auf die Datenmenge und den Ressourcenverbrauch. In unserer Performanceevaluation verwenden wir eine AllReduce-Operation in einer serverlosen Funktion, welche in OpenFaaS läuft. Unsere Lösung benötigte 26.7% weniger Zeit als Redis Enterprise und war fast 2.5-mal schneller als MinIO. Wir evaluieren unseren Replikationsmechanismus mittels einem Open-Source gRPC Benchmark Tool. Wir senden 5 Millionen Anfragen an die Middleware, welche gleichzeitig ein MISO Stateful Object auf mehreren Nodes in unterschiedlich großen Clustern verändern. Unsere Ergebnisse zeigen, dass der Replikationsmechanismus skalierbar ist und Zehntausende von gleichzeitigen Anfragen bewältigen kann. Außerdem beschreiben wir die Auswirkung des Replikationsintervalls auf die RPS, die Latenz, die Experimentdauer und die gesendete Datenmenge. Wir demonstrieren praktisch, dass sich die Middleware nahtlos in eine bestehende serverlose Plattform (OpenFaaS) integrieren lässt. Schließlich zeigen wir, dass unser SDK im oben genannten AllReduce-Experiment weniger Codezeilen benötigt und eine geringere oder ähnliche kognitive Komplexität aufweist wie die anderen beiden verwendeten Lösungen.
de
Maintaining the application state is challenging for serverless functions that run at the edge of the network. This is because the predominant way to maintain the application state using serverless functions is to access remote storage services, which are not suited for the edge due to potential high latency. Other proposed solutions for stateful serverless functions either do not promote data locality, contain components that depend on a centralized authority, or are built for cloud-based serverless platforms, all of which are not suited at the edge. There is a need for a solution to this problem that satisfies the aforementioned requirements of the edge-cloud continuum and is generalizable to multiple serverless platforms. This thesis introduces MISO, a CRDT-based serverless middleware for the edge-cloud continuum. It provides MISO Stateful Objects for serverless functions, which bundle multiple decentralized and conflict-free replicated data types into a single object. The list of contributions of this thesis includes: i) the conceptual model of MISO Stateful Objects, ii) the MISO middleware consisting of the architectural model and an open-source software prototype, iii) an SDK for serverless functions that enables the usage of MISO Stateful Objects within serverless functions, and iv) the asynchronous replication of MISO Stateful Objects using an overlay network optimized towards data transfer and resource consumption. For our performance evaluation, we utilize an AllReduce operation in a serverless function running in OpenFaaS. In this experiment, our solution took 26.7% less time than Redis Enterprise and was almost 2.5 times faster than MinIO. We evaluate the middleware’s replication mechanism with an open-source gRPC benchmark tool to perform 5 million requests concurrently modifying a MISO Stateful Object on clusters of different sizes. Our results indicate that the middleware’s replication is scalable and can handle tens of thousands of concurrent requests. Furthermore, we clearly demonstrate the impact of the replication interval on the RPS, latency, experiment time, and replication traffic. Additionally, we demonstrate that the middleware can be seamlessly integrated into an existing serverless platform (OpenFaas). Finally, we show that our SDK requires fewer lines of code and has less or similar cognitive complexity than the other solutions we utilized in the aforementioned AllReduce experiment.