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

Multi-Event Triggers per il Serverless Computing

Informazioni Fondamentali

  • ID Articolo: 2505.21199
  • Titolo: Multi-Event Triggers for Serverless Computing
  • Autori: Natalie Carl, Trever Schirmer, Niklas Kowallik, Joshua Adamek, Tobias Pfandzelter, Sergio Lucia, David Bermbach
  • Classificazione: cs.DC (Calcolo Distribuito, Parallelo e su Cluster)
  • Data di Pubblicazione: arXiv:2505.21199v3 cs.DC 11 Ott 2025
  • Link Articolo: https://arxiv.org/abs/2505.21199

Riassunto

Function-as-a-Service (FaaS) è un modello di calcolo cloud serverless guidato da eventi, in cui piccole funzioni stateless vengono invocate in risposta a eventi (come richieste HTTP, nuove voci di database o messaggi). Le piattaforme FaaS attuali presuppongono che ogni invocazione di funzione corrisponda a un singolo evento. Tuttavia, dal punto di vista applicativo, è desiderabile che le funzioni rispondano a insiemi di diversi tipi di eventi o vengano invocate solo ogni n-esimo evento. Per realizzare ciò, le funzioni richiedono una gestione dello stato aggiuntiva (come database) e logica personalizzata per determinare se le condizioni di attivazione sono soddisfatte. Questo articolo propone i multi-event triggers (attivatori multi-evento), che consentono di specificare condizioni di invocazione complesse per le funzioni. I risultati della valutazione mostrano che nel caso d'uso di rilevamento degli eventi, questo approccio riduce la latenza evento-invocazione del 62,5% e il sistema può gestire oltre 300.000 richieste/secondo su hardware limitato.

Contesto di Ricerca e Motivazione

Definizione del Problema

Le piattaforme FaaS attuali presentano una limitazione fondamentale: ogni invocazione di funzione può rispondere solo a un singolo evento. Tuttavia, le applicazioni reali spesso richiedono modelli di attivazione più complessi:

  1. Modelli Fan-in/Join: Necessità di raccogliere più eventi di diversi tipi prima di attivare una funzione
  2. Attivazione per Conteggio: Attivare una funzione solo dopo aver ricevuto n eventi
  3. Attivazione con Condizioni Complesse: Basate su combinazioni AND/OR di tipi e quantità di eventi

Limitazioni degli Approcci Esistenti

L'implementazione attuale di multi-event triggers richiede:

  • Mantenimento dello stato all'interno della funzione, necessitando di database esterni
  • Invocazione della funzione per ogni evento, ma la maggior parte delle invocazioni serve solo ad aggiornare lo stato anziché eseguire la logica di business
  • Conseguente spreco di risorse, aumento della latenza e incremento dei costi
  • Violazione del principio di progettazione secondo cui la piattaforma FaaS dovrebbe gestire la distribuzione degli eventi e l'invocazione delle funzioni

Motivazione della Ricerca

Per mantenere i vantaggi del modello di programmazione FaaS (accoppiamento lasco, scalabilità automatica, facilità di sviluppo), è necessario integrare la logica multi-evento nel meccanismo di attivazione della piattaforma FaaS, piuttosto che lasciare che gli sviluppatori di applicazioni la gestiscano manualmente.

Contributi Principali

  1. Proposizione del Concetto di Multi-Event Triggers: Estensione del meccanismo di attivazione delle funzioni FaaS per supportare condizioni di attivazione complesse basate su insiemi di eventi
  2. Progettazione dell'Architettura del Motore MET: Proposta di un design del motore multi-event trigger integrabile nelle piattaforme FaaS esistenti
  3. Sviluppo di un Sistema Prototipale: Implementazione di un prototipo proof-of-concept che dimostra la fattibilità del design
  4. Valutazione delle Prestazioni: Verifica del potenziale e delle prestazioni dei multi-event triggers nel caso d'uso di rilevamento degli eventi

Dettagli del Metodo

Definizione del Compito

I multi-event triggers consentono agli sviluppatori di definire regole di attivazione complesse, specificando quando una funzione deve essere invocata al verificarsi di specifiche combinazioni di eventi. Le regole di attivazione sono composte da tipi di evento e quantità corrispondenti, supportando combinazioni di condizioni AND e OR.

Definizione Formale delle Regole di Attivazione

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

Architettura del Motore MET

Design Generale

Il motore MET contiene due componenti principali, indipendentemente scalabili:

  1. Dispatcher (Distributore):
    • Riceve gli eventi dal load balancer
    • Inoltra gli eventi agli invoker appropriati
  2. Invoker (Invocatore):
    • Elabora la logica di attivazione
    • Crea gestori di attivazione per ogni MET
    • Mantiene insiemi di attivazione per ogni tipo di evento
    • Verifica se le regole di attivazione sono soddisfatte e invoca le funzioni

Meccanismo di Comunicazione

  • Dispatcher e invoker utilizzano messaggistica publish/subscribe senza broker
  • Gli invoker si sottoscrivono agli eventi del dispatcher in base ai tipi di evento nelle regole di attivazione che elaborano
  • Supporta distribuzioni multi-nodo e single-machine in ambienti distribuiti

Design della Scalabilità

  • Aumento della capacità di gestire trigger attraverso il deployment di invoker aggiuntivi
  • Supporto per il partizionamento dei trigger per ulteriori miglioramenti della capacità di elaborazione
  • Capacità di elaborazione target: da 10^5 a 10^6 richieste/secondo (riferimento al carico di AWS Lambda in una singola zona di disponibilità)

Punti di Innovazione Tecnica

  1. Supporto Nativo della Piattaforma: Integrazione della logica multi-evento nel meccanismo di attivazione, non a livello applicativo
  2. Ottimizzazione della Gestione dello Stato: Gestione centralizzata dello stato nel motore di attivazione, evitando l'invocazione della funzione per ogni evento
  3. Architettura Modulare: Supporto per la scalabilità indipendente dei componenti di dispatch e invocazione
  4. Partizionamento dei Trigger: Supporto per capacità di elaborazione concorrente più elevate attraverso il partizionamento

Configurazione Sperimentale

Implementazione del Prototipo

  • Linguaggio di Programmazione: Implementazione in Go di dispatcher e invoker
  • Piattaforma di Deployment: Cluster Kubernetes (Google Kubernetes Engine)
  • Messaggistica: Libreria ZeroMQ
  • Bilanciamento del Carico: Servizio Kubernetes LoadBalancer
  • Piattaforma di Funzioni: Qualsiasi piattaforma FaaS che supporti HTTP

Scenari di Valutazione

Esperimento 1: Test di Latenza

  • Caso d'Uso: Applicazione di rilevamento degli eventi del data center
  • Tipi di Sensori: Temperatura, tasso di perdita di pacchetti, consumo energetico
  • Regola di Attivazione: OR(AND(5:packetLoss, 1:temperature), 1:powerConsumption)
  • Baseline di Confronto: Gestione dello stato manuale utilizzando database PostgreSQL
  • Generazione di Carico: Generatore di carico k6, test di 30 minuti

Esperimento 2: Test di Richieste Concorrenti

  • Configurazione Hardware:
    • Nodo singolo: c7i.2xlarge (8 vCPU, 16 GiB)
    • Quattro nodi: 4×c7i.2xlarge
    • Generatore di carico: c7i.16xlarge (64 vCPU, 128 GiB)
  • Regola di Attivazione: 3:a (attivazione ogni tre eventi)
  • Carico: Payload casuale di 1.024 byte

Esperimento 3: Test di Trigger Concorrenti

  • Hardware: c7i.large (4 vCPU, 8 GiB)
  • Regola di Attivazione: AND(2:a, 2:b), fino a 1.024 trigger concorrenti
  • Carico: 128 utenti virtuali, payload di 1.024 byte

Risultati Sperimentali

Risultati Principali

Miglioramento delle Prestazioni di Latenza

  • Riduzione della Latenza Evento-Invocazione del 62,5% (mediana)
  • Riduzione del numero di invocazioni di funzioni di 4,3 volte (rispetto alla baseline di invocazione per ogni evento)
  • Riduzione significativa del sovraccarico di invocazioni di funzioni non necessarie

Prestazioni di Throughput

  • Configurazione a Nodo Singolo: Massimo 131.012,7 richieste/secondo (4.096 utenti virtuali)
  • Configurazione a Quattro Nodi: Massimo 313.154,81 richieste/secondo (64 utenti virtuali)
  • Il throughput aumenta linearmente con le richieste concorrenti fino a 2^11 richieste

Prestazioni di Trigger Concorrenti

  • Trigger Singolo: 236.601,77 richieste/secondo
  • 8 Trigger: 63.717,27 richieste/secondo
  • 1.024 Trigger: 883,67 richieste/secondo
  • Le prestazioni sono principalmente limitate dalla CPU; l'ottimizzazione avviene attraverso il parallelismo nella verifica delle regole di attivazione

Risultati Sperimentali

  1. Miglioramento Significativo della Latenza: Il motore MET riduce significativamente la latenza di elaborazione degli eventi rispetto al metodo di gestione dello stato manuale
  2. Buona Scalabilità: Il sistema dimostra buone capacità di scalabilità orizzontale
  3. Alto Throughput: Raggiunge la capacità di elaborazione richiesta dalle grandi piattaforme FaaS su hardware limitato
  4. Limitazioni di Concorrenza: Il numero di trigger concorrenti per un singolo invoker presenta limitazioni dovute alla CPU, ma può essere mitigato attraverso il partizionamento

Lavori Correlati

Soluzioni di Gestione dello Stato

  • Crucial: Livello di oggetti condivisi distribuiti
  • Cloudburst: Archivio chiave-valore con scalabilità automatica integrata
  • Boki: Persistenza dello stato basata su API di log
  • Faasm: Condivisione di aree di memoria per runtime WebAssembly

Orchestrazione dei Flussi di Lavoro

  • TriggerFlow: Motore di flusso di lavoro personalizzato basato su Knative
  • FaaSFlow: Pianificazione di flussi di lavoro distribuiti tra nodi FaaS
  • DataFlower: Pianificazione delle funzioni basata sulla disponibilità dei dati

Distinzione dalle Soluzioni Esistenti

L'unicità di questo approccio risiede nel fatto che le funzioni vengono invocate solo quando le condizioni di attivazione complete sono soddisfatte, riducendo le esecuzioni non necessarie ed evitando la necessità di meccanismi di blocco per le condizioni di gara.

Conclusioni e Discussione

Conclusioni Principali

  1. I multi-event triggers risolvono efficacemente il problema della mancanza di supporto nativo per il fan-in nelle piattaforme FaaS
  2. Il motore MET riduce significativamente la latenza di invocazione e il consumo di risorse
  3. Il sistema possiede le capacità di prestazione per il deployment in ambienti cloud su larga scala
  4. Mantiene i vantaggi fondamentali del paradigma serverless (accoppiamento lasco, scalabilità automatica, overhead operativo minimo)

Limitazioni

  1. Limitazioni di Distribuzione Geografica: Il design attuale si concentra su configurazioni multi-nodo in un singolo data center, non adatto per multi-event triggers geograficamente distribuiti
  2. Mancanza di Supporto per Condizioni NOT: A causa dell'impossibilità di garantire che una classe di eventi non sia stata ricevuta in ambienti distribuiti, le condizioni NOT non sono supportate
  3. Problemi di Sincronizzazione degli Eventi: Necessità di affrontare la perdita di eventi e i problemi di sincronizzazione causati da guasti dei sensori

Direzioni Future

  1. Supporto per Distribuzione Geografica: Utilizzo di Conflict-free Replicated Data Types (CRDT) per tracciare gli eventi
  2. Estensione dei Tipi di Trigger: Supporto per ulteriori tipi di trigger come XOR
  3. Meccanismi di Tolleranza ai Guasti: Introduzione di meccanismi Time-To-Live (TTL) per gestire gli eventi scaduti
  4. Integrazione della Piattaforma: Integrazione profonda con funzioni della piattaforma FaaS come il bilanciamento del carico

Valutazione Approfondita

Punti di Forza

  1. Identificazione Accurata del Problema: Identificazione precisa della limitazione fondamentale delle piattaforme FaaS nell'elaborazione di eventi complessi
  2. Design della Soluzione Razionale: L'architettura del motore MET è progettata considerando la scalabilità e la praticità
  3. Valutazione Completa: Valutazione complessiva da molteplici dimensioni: latenza, throughput e concorrenza
  4. Alto Valore Pratico: Risolve i problemi critici nelle applicazioni reali con forte valore pratico
  5. Prestazioni Eccellenti: La riduzione della latenza del 62,5% e la capacità di elaborazione di oltre 300.000 richieste/secondo dimostrano l'efficacia della soluzione

Insufficienze

  1. Limitazioni di Distribuzione Geografica: Supporto insufficiente per scenari di applicazioni distribuite globalmente
  2. Meccanismi di Tolleranza ai Guasti Semplici: Gestione incompleta di situazioni anomale come partizioni di rete e guasti dei nodi
  3. Capacità Espressiva delle Regole di Attivazione: Le combinazioni AND/OR attuali potrebbero non coprire tutti gli scenari di business complessi
  4. Integrazione con Piattaforme Esistenti: Come componente esterno integrato, potrebbe non sfruttare completamente le ottimizzazioni interne della piattaforma

Impatto

  1. Contributo Accademico: Fornisce una nuova direzione di ricerca e soluzione per il campo FaaS
  2. Valore Industriale: Applicabile direttamente alle piattaforme FaaS esistenti, migliorando la capacità di elaborazione di eventi complessi
  3. Potenziale di Standardizzazione: Potrebbe diventare il modo standard di implementare multi-event triggers nelle piattaforme FaaS
  4. Riproducibilità: L'implementazione prototipale open-source fornisce buona riproducibilità

Scenari Applicabili

  1. Elaborazione di Dati IoT: Applicazioni IoT che richiedono l'aggregazione di dati da più sensori
  2. Elaborazione di Eventi Complessi: Monitoraggio delle transazioni finanziarie, rilevamento di anomalie di sicurezza di rete e altri scenari che richiedono analisi correlate
  3. Orchestrazione di Flussi di Lavoro: Flussi di lavoro serverless che richiedono l'attesa del completamento di più attività precedenti
  4. Ottimizzazione dell'Elaborazione in Batch: Aggregazione di più piccoli eventi per l'elaborazione batch al fine di migliorare l'efficienza

Bibliografia

L'articolo cita 34 riferimenti correlati, coprendo principalmente:

  • Ricerca su piattaforme FaaS e meccanismi di attivazione
  • Orchestrazione di flussi di lavoro serverless
  • Gestione dello stato ed elaborazione di eventi complessi
  • Valutazione delle prestazioni e benchmark

I riferimenti chiave includono analisi dell'architettura di AWS Lambda, rassegne del calcolo serverless e sistemi correlati di orchestrazione dei flussi di lavoro.


Questo articolo propone una soluzione innovativa a una limitazione importante delle piattaforme FaaS, con forte valore teorico e pratico. Il design del motore MET bilancia prestazioni e scalabilità, e la valutazione sperimentale verifica completamente l'efficacia della soluzione. Sebbene vi sia spazio per miglioramenti nella distribuzione geografica e nella tolleranza ai guasti, nel complesso è un lavoro di ricerca di alta qualità.