ProFaaStinate: Delaying Serverless Function Calls to Optimize Platform Performance
Trever Schirmer, Natalie Carl, Tobias Pfandzelter, David Bermbach
TL;DR
ProFaaStinate tackles latency and resource utilization challenges in Function-as-a-Service platforms by delaying asynchronous invocations instead of executing them immediately. It introduces a lightweight architecture with a priority queue and a CPU-aware Call Scheduler that operates in busy and idle states to delay calls until resources are more available. A Nuclio-based prototype demonstrates significant latency reductions and reduced peak CPU usage in a document-processing workflow, including a 54% reduction in average request latency reported in the abstract. The approach is designed for shallow integration and practical deployment, with future work exploring more sophisticated scheduling strategies and broader platform integration.
Abstract
Function-as-a-Service (FaaS) enables developers to run serverless applications without managing operational tasks. In current FaaS platforms, both synchronous and asynchronous calls are executed immediately. In this paper, we present ProFaaStinate, which extends serverless platforms to enable delayed execution of asynchronous function calls. This allows platforms to execute calls at convenient times with higher resource availability or lower load. ProFaaStinate is able to optimize performance without requiring deep integration into the rest of the platform, or a complex systems model. In our evaluation, our prototype built on top of Nuclio can reduce request response latency and workflow duration while also preventing the system from being overloaded during load peaks. Using a document preparation use case, we show a 54% reduction in average request response latency. This reduction in resource usage benefits both platforms and users as cost savings.
