Epico:用于高性能无服务器流处理的长生命周期WebAssembly组件
Epico: Long-Lived WebAssembly Components for High-Performance Serverless Stream Processing
AI总结:
针对FaaS不适合流处理的问题,提出Epico无服务器运行时,以WebAssembly组件实现管道执行,优化通信与冷启动延迟,性能优于Apache OpenWhisk。
AI中文摘要:
尽管无服务器计算已广泛应用,但主流的功能即服务(FaaS)模型并不适合流处理,因为其无状态、集中编排的函数无法高效处理连续、低延迟的事件流。我们推出Epico,一款专门在运行时层面解决这些低效问题的无服务器运行时。Epico将管道阶段作为持久化WebAssembly组件执行,可基于队列深度服务水平目标(SLO)实现独立的从零到无限的自动扩缩容,并使用无代理的ZeroMQ通道直接在各阶段间路由事件。为优化短执行路径,它采用基于信用的滑动窗口来分摊进程间通信成本。评估显示,提前编译(AOT)将冷启动延迟从数百毫秒降至亚毫秒级,而信用窗口使单工作线程吞吐量提升最高达4.3倍。与Apache OpenWhisk相比,Epico绕过了通常阻碍FaaS流处理工作负载的编排器瓶颈和容器开销。
英文摘要:
While serverless computing is popular, its dominant Function-as-a-Service (FaaS) model is ill-suited for stream processing because its stateless, centrally orchestrated functions cannot efficiently handle continuous, low-latency event flows. We introduce Epico, a serverless runtime explicitly designed to resolve these inefficiencies at the runtime level. Epico executes pipeline stages as persistent WebAssembly components, enabling independent, zero-to-infinity autoscaling based on queue-depth SLOs and routing events directly between stages using broker-free ZeroMQ channels. To optimize short execution paths, it utilizes a credit-based sliding window to amortize inter-process communication costs. Evaluations demonstrate that Ahead-of-Time (AOT) compilation reduces cold-start latencies from hundreds of milliseconds to sub-millisecond ranges, while the credit window improves single-worker throughput by up to \(4.3\times\). Compared to Apache OpenWhisk, Epico bypasses the orchestrator bottlenecks and container overheads that typically hinder FaaS streaming workloads.