Function-as-a-Service (FaaS) is an event-driven serverless cloud computing model in which small, stateless functions are invoked in response to events, such as HTTP requests, new database entries, or messages. Current FaaS platform assume that each function invocation corresponds to a single event. However, from an application perspective, it is desirable to invoke functions in response to a collection of events of different types or only with every n\textsuperscript{th} event. To implement this today, a function would need additional state management, e.g., in a database, and custom logic to determine whether its trigger condition is fulfilled and the actual application code should run. In such an implementation, most function invocations would be rendered essentially useless, leading to unnecessarily high resource usage, latency, and cost for applications. In this paper, we introduce multi-event triggers, through which complex conditions for function invocations can be specified. Specifically, we introduce abstractions for invoking functions based on a set of $n$ events and joins of multiple events of different types. This enables application developers to define intricate conditions for function invocations, workflow steps, and complex event processing. Our evaluation with a proof-of-concept prototype shows that this reduces event--invocation latency by 62.5\% in an incident detection use-case and that our system can handle more than 300,000 requests per second on limited hardware, which is sufficient load for implementation in large FaaS platforms.
Function-as-a-Service (FaaS) ist ein ereignisgesteuertes, serverloses Cloud-Computing-Modell, bei dem kleine, zustandslose Funktionen durch Ereignisse wie HTTP-Anfragen, neue Datenbankeinträge oder Nachrichten aufgerufen werden. Aktuelle FaaS-Plattformen gehen davon aus, dass jeder Funktionsaufruf einem einzelnen Ereignis entspricht. Aus Anwendungsperspektive ist es jedoch wünschenswert, dass Funktionen auf Sammlungen verschiedener Ereignistypen reagieren oder nur bei jedem n-ten Ereignis aufgerufen werden. Um dies zu erreichen, benötigen Funktionen zusätzliche Zustandsverwaltung (wie Datenbanken) und benutzerdefinierte Logik zur Bestimmung, ob Triggerbedingungen erfüllt sind. Dieses Paper stellt Multi-Event Triggers vor, die es ermöglichen, komplexe Funktionsaufrufsbedinungen zu spezifizieren. Die Evaluierungsergebnisse zeigen, dass dieser Ansatz in Ereigniserkennungsanwendungsfällen die Ereignis-Aufrufs-Latenz um 62,5% reduziert und das System auf begrenzter Hardware über 300.000 Anfragen/Sekunde verarbeiten kann.
Aktuelle FaaS-Plattformen weisen eine grundlegende Einschränkung auf: Jeder Funktionsaufruf kann nur auf ein einzelnes Ereignis reagieren. In praktischen Anwendungen sind jedoch häufig komplexere Triggermuster erforderlich:
Fan-in/Join-Muster: Mehrere verschiedene Ereignistypen müssen gesammelt werden, bevor die Funktion ausgelöst wird
Zähl-Trigger: Die Funktion wird nur nach jedem n-ten Ereignis ausgelöst
Komplexe Bedingungstrigger: AND/OR-Kombinationsbedingungen basierend auf Ereignistyp und -menge
Um die Vorteile des FaaS-Programmiermodells (lose Kopplung, automatische Skalierung, einfache Entwicklung) zu bewahren, muss die Multi-Event-Trigger-Logik in den Triggermechanismus der FaaS-Plattform integriert werden, anstatt dass Anwendungsentwickler dies manuell handhaben.
Konzept der Multi-Event Triggers: Erweiterung des FaaS-Funktions-Triggermechanismus zur Unterstützung komplexer Triggerbedingungen basierend auf Ereignissammlungen
MET-Engine-Architektur: Entwurf einer Multi-Event-Trigger-Engine, die in bestehende FaaS-Plattformen integriert werden kann
Prototypentwicklung: Implementierung eines Proof-of-Concept-Prototyps zur Demonstration der Machbarkeit des Designs
Leistungsbewertung: Validierung des Potenzials und der Leistung von Multi-Event Triggern in Ereigniserkennungsanwendungsfällen
Multi-Event Triggers ermöglichen es Entwicklern, komplexe Triggerregeln zu definieren, die angeben, wann eine Funktion bei Erfüllung bestimmter Ereigniskombinationsbedingungen aufgerufen wird. Triggerregeln bestehen aus Ereignistypen und entsprechenden Mengen und unterstützen Kombinationen von AND- und OR-Bedingungen.
Die Besonderheit dieses Ansatzes liegt darin, dass Funktionen nur aufgerufen werden, wenn vollständige Triggerbedingungen erfüllt sind, was unnötige Ausführungen reduziert und Sperrmechanismen für Racebedingungen vermeidet.
Geografische Verteilungsgrenzen: Aktuelles Design konzentriert sich auf Multi-Node-Single-Rack-Setups, nicht geeignet für geografisch verteilte Multi-Event Triggers
NOT-Bedingungen nicht unterstützt: Aufgrund der Unmöglichkeit, in verteilten Umgebungen zu garantieren, dass bestimmte Ereignistypen nicht empfangen wurden
Ereignissynchronisierungsprobleme: Behandlung von Ereignisverlusten und Synchronisierungsproblemen durch Sensorausfälle erforderlich
Geografische Verteilungsgrenzen: Unzureichende Unterstützung für global verteilte Anwendungsszenarien
Einfache Fehlertoleranz: Unzureichende Behandlungsmechanismen für Netzwerkpartitionierung, Knotenfehler und andere Anomalien
Ausdruckskraft von Triggerregeln: Aktuelle AND/OR-Kombinationen können möglicherweise nicht alle komplexen Geschäftsszenarien abdecken
Integration mit bestehenden Plattformen: Als externe Komponente integriert, kann möglicherweise nicht vollständig interne Plattformoptimierungen nutzen
Das Paper zitiert 34 verwandte Literaturquellen, die hauptsächlich folgende Bereiche abdecken:
FaaS-Plattformen und Triggermechanismus-Forschung
Serverlose Workflow-Orchestrierung
Zustandsverwaltung und komplexe Ereignisverarbeitung
Leistungsbewertung und Benchmarking
Wichtige Referenzen umfassen AWS Lambda-Architekturanalyse, Übersichten zu serverlosen Berechnungen sowie verwandte Workflow-Orchestrierungssysteme.
Dieses Paper stellt eine innovative Lösung für eine wichtige Einschränkung von FaaS-Plattformen vor und besitzt starken theoretischen und praktischen Wert. Das Design der MET-Engine berücksichtigt sowohl Leistung als auch Skalierbarkeit, und die experimentelle Evaluierung validiert die Lösungseffektivität umfassend. Obwohl es Verbesserungspotenzial bei geografischer Verteilung und Fehlertoleranz gibt, handelt es sich insgesamt um hochwertige Forschungsarbeit.