Table of Contents
Fetching ...

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.

ProFaaStinate: Delaying Serverless Function Calls to Optimize Platform Performance

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.
Paper Structure (10 sections, 5 figures)

This paper contains 10 sections, 5 figures.

Figures (5)

  • Figure 1: A regular FaaS platform contains a frontend call API and a call executor that executes function invocations (both shown in gray). ProFaaStinate adds a priority queue and call scheduler (shown in blue). Incoming asynchronous calls are put into a priority queue, whereas the Call Scheduler is then responsible for executing delayed calls. It has two states, busy and idle, which are influenced by monitoring data. In busy mode, only urgent calls are executed. In idle mode, urgent and additional non-urgent calls are executed.
  • Figure 2: Overview of the document preparation use case used in the evaluation. Users synchronously call the Pre-Check function, which checks the PDF for correctness and puts it into object storage. From there, a virus scan, optical character recognition (OCR), and an e-mail notification function are called asynchronously.
  • Figure 3: CPU usage graph of both experiments. During the load peak (0–10 minutes), ProFaaStinate reduces the system strain from 100% (baseline) to a mean 89%. After the load peak is over, executing delayed invocations leads to a slightly higher CPU load with ProFaaStinate.
  • Figure 4: Request-response latency during the load peak phase and the overall in both experiments. In both cases, ProFaaStinate reduces request-response latency compared to baseline, yet the effect is more pronounced during peak load. Overall, the fastest 50% of calls have a similar request response latency in both experiments, while the slower 50% are faster when using ProFaaStinate.
  • Figure 5: Workflow Duration during the experiments. While the CPU is at 100% utilization, the workflow duration is very high in the baseline. In ProFaaStinate, the workflow duration is lower during the load peak.