2025-11-12T05:49:09.677536

Multi-Event Triggers for Serverless Computing

Carl, Schirmer, Kowallik et al.
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.
academic

Déclencheurs Multi-Événements pour l'Informatique sans Serveur

Informations Fondamentales

  • ID de l'article: 2505.21199
  • Titre: Multi-Event Triggers for Serverless Computing
  • Auteurs: Natalie Carl, Trever Schirmer, Niklas Kowallik, Joshua Adamek, Tobias Pfandzelter, Sergio Lucia, David Bermbach
  • Classification: cs.DC (Informatique distribuée, parallèle et en grappe)
  • Date de publication: arXiv:2505.21199v3 cs.DC 11 Oct 2025
  • Lien de l'article: https://arxiv.org/abs/2505.21199

Résumé

Function-as-a-Service (FaaS) est un modèle d'informatique en nuage sans serveur piloté par les événements, dans lequel de petites fonctions sans état sont invoquées en réponse à des événements (tels que des requêtes HTTP, de nouvelles entrées de base de données ou des messages). Les plateformes FaaS actuelles supposent que chaque invocation de fonction correspond à un seul événement. Cependant, du point de vue des applications, il est souhaitable que les fonctions puissent répondre à des ensembles d'événements de différents types ou être invoquées uniquement tous les n événements. Pour y parvenir, les fonctions nécessitent une gestion d'état supplémentaire (comme une base de données) et une logique personnalisée pour déterminer si les conditions de déclenchement sont satisfaites. Cet article propose les déclencheurs multi-événements (multi-event triggers), qui permettent de spécifier des conditions d'invocation de fonction complexes. Les résultats d'évaluation montrent que cette approche réduit la latence événement-invocation de 62,5% dans les cas d'utilisation de détection d'événements, et que le système peut traiter plus de 300 000 requêtes/seconde sur du matériel limité.

Contexte de Recherche et Motivation

Définition du Problème

Les plateformes FaaS actuelles présentent une limitation fondamentale : chaque invocation de fonction ne peut répondre qu'à un seul événement. Cependant, les applications réelles nécessitent souvent d'implémenter des modèles de déclenchement plus complexes :

  1. Modèles d'agrégation/convergence (Fan-in/Join): Nécessité de collecter plusieurs événements de types différents avant de déclencher une fonction
  2. Déclenchement par comptage: Invocation de la fonction une fois tous les n événements
  3. Déclenchement avec conditions complexes: Conditions AND/OR basées sur les types et quantités d'événements

Limitations des Approches Existantes

L'implémentation actuelle de déclencheurs multi-événements nécessite :

  • La maintenance d'état dans la fonction, avec stockage dans une base de données externe
  • L'invocation de la fonction pour chaque événement, bien que la plupart des invocations ne servent qu'à mettre à jour l'état
  • Cela entraîne une consommation inutile de ressources, une augmentation de la latence et une hausse des coûts
  • Cela va à l'encontre de la philosophie de conception des plateformes FaaS, qui devraient gérer la distribution des événements et l'invocation des fonctions

Motivation de la Recherche

Pour préserver les avantages du modèle de programmation FaaS (couplage faible, mise à l'échelle automatique, développement facile), il est nécessaire d'intégrer la logique de déclenchement multi-événements dans le mécanisme de déclenchement de la plateforme FaaS, plutôt que de laisser les développeurs d'applications la gérer manuellement.

Contributions Principales

  1. Proposition du concept de déclencheurs multi-événements: Extension du mécanisme de déclenchement des fonctions FaaS pour supporter des conditions de déclenchement complexes basées sur des ensembles d'événements
  2. Conception de l'architecture du moteur MET: Proposition d'une conception de moteur de déclenchement multi-événements intégrable aux plateformes FaaS existantes
  3. Développement d'un système prototype: Implémentation d'un prototype de preuve de concept démontrant la faisabilité de la conception
  4. Évaluation des performances: Validation du potentiel et des performances des déclencheurs multi-événements dans des cas d'utilisation de détection d'événements

Détails de la Méthode

Définition des Tâches

Les déclencheurs multi-événements permettent aux développeurs de définir des règles de déclenchement complexes, spécifiant quand une fonction doit être invoquée en fonction de combinaisons d'événements spécifiques. Les règles de déclenchement sont composées de types d'événements et de quantités correspondantes, supportant des combinaisons de conditions AND et OR.

Définition Formelle des Règles de Déclenchement

<rule> ::= <count> ":" <type> |
           <condition> "(" <rule> "," <rule> ")"
<condition> ::= "AND" | "OR"
<count> ::= regexp:[0-9]+
<type> ::= regexp:[a-zA-Z]+

Architecture du Moteur MET

Conception Générale

Le moteur MET comprend deux composants principaux pouvant être mis à l'échelle indépendamment :

  1. Répartiteur (Dispatcher):
    • Reçoit les événements du répartiteur de charge
    • Transfère les événements aux invocateurs appropriés
  2. Invocateur (Invoker):
    • Traite la logique de déclenchement
    • Crée des gestionnaires de déclenchement pour chaque MET
    • Maintient des ensembles de déclenchement pour chaque type d'événement
    • Vérifie si les règles de déclenchement sont satisfaites et invoque les fonctions

Mécanisme de Communication

  • Le répartiteur et les invocateurs utilisent la messagerie publication/abonnement sans courtier
  • Les invocateurs s'abonnent aux événements du répartiteur en fonction des types d'événements dans les règles de déclenchement qu'ils traitent
  • Support du déploiement distribué sur plusieurs nœuds ou sur une seule machine

Conception de l'Extensibilité

  • Augmentation du nombre de déclencheurs pouvant être traités par le déploiement d'invocateurs supplémentaires
  • Support du partitionnement des déclencheurs pour améliorer davantage la capacité de traitement
  • Capacité de traitement cible : de 10^5 à 10^6 requêtes/seconde (référence : charge AWS Lambda en zone unique)

Points d'Innovation Technique

  1. Support natif de la plateforme: Intégration de la logique multi-événements dans le mécanisme de déclenchement, plutôt qu'au niveau de l'application
  2. Optimisation de la gestion d'état: Gestion centralisée de l'état dans le moteur de déclenchement, évitant l'invocation de fonction pour chaque événement
  3. Architecture modulaire: Support de la mise à l'échelle indépendante des composants de répartition et d'invocation
  4. Partitionnement des déclencheurs: Support d'une capacité de traitement concurrent plus élevée par partitionnement

Configuration Expérimentale

Implémentation du Prototype

  • Langage de programmation: Implémentation en Go du répartiteur et de l'invocateur
  • Plateforme de déploiement: Grappe Kubernetes (Google Kubernetes Engine)
  • Messagerie: Bibliothèque ZeroMQ
  • Répartition de charge: Service Kubernetes LoadBalancer
  • Plateforme de fonction: Toute plateforme FaaS supportant HTTP

Scénarios d'Évaluation

Expérience 1 : Test de Latence

  • Cas d'utilisation: Application de détection d'événements de centre de données
  • Types de capteurs: Température, taux de perte de paquets, consommation d'énergie
  • Règle de déclenchement: OR(AND(5:packetLoss, 1:temperature), 1:powerConsumption)
  • Ligne de base de comparaison: Gestion d'état manuelle utilisant une base de données PostgreSQL
  • Génération de charge: Générateur de charge k6, test de 30 minutes

Expérience 2 : Test de Requêtes Concurrentes

  • Configuration matérielle:
    • Nœud unique : c7i.2xlarge (8 vCPU, 16 GiB)
    • Quatre nœuds : 4×c7i.2xlarge
    • Générateur de charge : c7i.16xlarge (64 vCPU, 128 GiB)
  • Règle de déclenchement: 3:a (déclenchement une fois tous les trois événements)
  • Charge: Charge utile aléatoire de 1 024 octets

Expérience 3 : Test de Déclencheurs Concurrents

  • Matériel: c7i.large (4 vCPU, 8 GiB)
  • Règle de déclenchement: AND(2:a, 2:b), jusqu'à 1 024 déclencheurs concurrents
  • Charge: 128 utilisateurs virtuels, charge utile de 1 024 octets

Résultats Expérimentaux

Résultats Principaux

Amélioration des Performances de Latence

  • Réduction de la latence événement-invocation de 62,5% (médiane)
  • Réduction du nombre d'invocations de fonction de 4,3 fois (par rapport à la ligne de base où chaque événement invoque la fonction)
  • Réduction significative des frais généraux d'invocation de fonction inutiles

Performances de Débit

  • Configuration nœud unique: Maximum 131 012,7 requêtes/seconde (4 096 utilisateurs virtuels)
  • Configuration quatre nœuds: Maximum 313 154,81 requêtes/seconde (64 utilisateurs virtuels)
  • Le débit augmente linéairement avec les requêtes concurrentes jusqu'à 2^11 requêtes

Performances des Déclencheurs Concurrents

  • Déclencheur unique: 236 601,77 requêtes/seconde
  • 8 déclencheurs: 63 717,27 requêtes/seconde
  • 1 024 déclencheurs: 883,67 requêtes/seconde
  • Les performances sont principalement limitées par le CPU, optimisables par parallélisation de la vérification des règles de déclenchement

Résultats Expérimentaux

  1. Amélioration significative de la latence: Le moteur MET réduit considérablement la latence de traitement des événements par rapport aux méthodes de gestion d'état manuelle
  2. Bonne extensibilité: Le système démontre une bonne capacité de mise à l'échelle horizontale
  3. Débit élevé: Atteint la capacité de traitement requise par les grandes plateformes FaaS sur du matériel limité
  4. Limitations de concurrence: Le nombre de déclencheurs concurrents d'un seul invocateur est limité par le CPU, mais peut être atténué par partitionnement

Travaux Connexes

Solutions de Gestion d'État

  • Crucial: Couche d'objets partagés distribuée
  • Cloudburst: Stockage clé-valeur avec mise à l'échelle automatique intégrée
  • Boki: Persistance d'état basée sur l'API de journal
  • Faasm: Partage de zones mémoire pour l'exécution WebAssembly

Orchestration de Flux de Travail

  • TriggerFlow: Moteur de flux de travail personnalisé basé sur Knative
  • FaaSFlow: Planification de flux de travail distribué entre nœuds FaaS
  • DataFlower: Planification de fonction basée sur la disponibilité des données

Distinction par rapport aux Solutions Existantes

L'unicité de cette approche réside dans le fait que les fonctions ne sont invoquées que lorsque les conditions de déclenchement complètes sont satisfaites, réduisant les exécutions inutiles et évitant les mécanismes de verrouillage des conditions de course.

Conclusion et Discussion

Conclusions Principales

  1. Les déclencheurs multi-événements résolvent efficacement le manque de support natif d'agrégation des plateformes FaaS
  2. Le moteur MET réduit considérablement la latence d'invocation et la consommation de ressources
  3. Le système possède les capacités de performance pour le déploiement dans les environnements cloud à grande échelle
  4. Préserve les avantages fondamentaux du paradigme sans serveur (couplage faible, mise à l'échelle automatique, frais généraux opérationnels minimaux)

Limitations

  1. Limitations de distribution géographique: La conception actuelle se concentre sur les configurations multi-nœuds sur une seule zone, ne convenant pas aux déclencheurs multi-événements distribués géographiquement
  2. Absence de support pour les conditions NOT: En raison de l'impossibilité de garantir qu'une classe d'événements n'a pas été reçue dans un environnement distribué, les conditions NOT ne sont pas supportées
  3. Problèmes de synchronisation d'événements: Nécessité de résoudre les pertes d'événements et les problèmes de synchronisation causés par les défaillances de capteurs

Directions Futures

  1. Support de distribution géographique: Utilisation de types de données répliqués sans conflit (CRDT) pour suivre les événements
  2. Extension des types de déclencheurs: Support de types de déclencheurs supplémentaires comme XOR
  3. Mécanismes de tolérance aux pannes: Introduction de mécanismes de durée de vie des événements (TTL) pour gérer les événements expirés
  4. Intégration de plateforme: Intégration profonde avec les fonctionnalités de la plateforme FaaS telles que la répartition de charge

Évaluation Approfondie

Points Forts

  1. Identification précise du problème: Identification précise des limitations fondamentales des plateformes FaaS dans le traitement d'événements complexes
  2. Conception de solution raisonnable: La conception de l'architecture du moteur MET prend en compte l'extensibilité et la praticité
  3. Évaluation complète: Évaluation complète sous plusieurs dimensions : latence, débit, concurrence
  4. Valeur pratique élevée: Résout les problèmes critiques des applications réelles avec une forte valeur pratique
  5. Performances excellentes: La réduction de latence de 62,5% et la capacité de traitement de plus de 300 000 requêtes/seconde démontrent l'efficacité de la solution

Insuffisances

  1. Limitations de distribution géographique: Support insuffisant pour les scénarios d'applications distribuées mondialement
  2. Mécanismes de tolérance aux pannes simples: Gestion insuffisante des situations anormales telles que les partitions réseau et les défaillances de nœuds
  3. Expressivité des règles de déclenchement: Les combinaisons AND/OR actuelles peuvent ne pas couvrir tous les scénarios métier complexes
  4. Intégration aux plateformes existantes: En tant que composant externe, peut ne pas exploiter pleinement les optimisations internes de la plateforme

Impact

  1. Contribution académique: Fournit une nouvelle direction de recherche et une solution pour le domaine FaaS
  2. Valeur industrielle: Applicable directement aux plateformes FaaS existantes, améliorant les capacités de traitement d'événements complexes
  3. Potentiel de normalisation: Peut devenir la méthode d'implémentation standard pour les déclencheurs multi-événements des plateformes FaaS
  4. Reproductibilité: L'implémentation du prototype open-source offre une bonne reproductibilité

Scénarios Applicables

  1. Traitement de données IoT: Applications IoT nécessitant l'agrégation de données de plusieurs capteurs
  2. Traitement d'événements complexes: Surveillance des transactions financières, détection de menaces de sécurité réseau et autres scénarios nécessitant une analyse corrélée
  3. Orchestration de flux de travail: Flux de travail sans serveur nécessitant l'attente de l'achèvement de plusieurs tâches préalables
  4. Optimisation du traitement par lot: Agrégation de plusieurs petits événements pour traitement par lot afin d'améliorer l'efficacité

Références Bibliographiques

L'article cite 34 références connexes, couvrant principalement :

  • Recherche sur les plateformes FaaS et les mécanismes de déclenchement
  • Orchestration de flux de travail sans serveur
  • Gestion d'état et traitement d'événements complexes
  • Évaluation des performances et tests de référence

Les références clés incluent l'analyse de l'architecture AWS Lambda, les synthèses de l'informatique sans serveur, et les systèmes d'orchestration de flux de travail connexes.


Cet article propose une solution innovante à une limitation importante des plateformes FaaS, possédant une forte valeur théorique et pratique. La conception du moteur MET équilibre performance et extensibilité, et l'évaluation expérimentale valide complètement l'efficacité de la solution. Bien qu'il y ait de la place pour l'amélioration en matière de distribution géographique et de tolérance aux pannes, il s'agit globalement d'un travail de recherche de haute qualité.