Table of Contents
Fetching ...

Serverless Abstractions for Short-Running, Lightweight Streams

Natalie Carl, Niklas Kowallik, Constantin Stahl, Trever Schirmer, Tobias Pfandzelter, David Bermbach

TL;DR

This work proposes stream functions as a novel extension of the Function-as-a-Serivce model that treat short streams as the unit of execution, state, and scaling, and shows that stream functions reduce the processing overhead by ~99 % compared to a mature stream process- ing engine in a video-processing use case.

Abstract

Serverless computing and stream processing represent two dominant paradigms for event-driven data processing, yet both make assumptions that render them inefficient for short-running, lightweight, and unpredictable streams that require stateful processing. We propose stream functions as a novel extension of the Function-as-a-Serivce model that treat short streams as the unit of execution, state, and scaling. Stream functions process streams via an iterator-based interface, enabling seamless inter-event logic while retaining the elasticity and scale-to-zero capabilities offered by serverless platforms. Our evaluation shows that stream functions reduce the processing overhead by ~99 % compared to a mature stream process- ing engine in a video-processing use case. By providing comparable performance to serverless functions with stream semantics, stream functions provide an effective and efficient abstractions for a class of workloads underserved by existing models.

Serverless Abstractions for Short-Running, Lightweight Streams

TL;DR

This work proposes stream functions as a novel extension of the Function-as-a-Serivce model that treat short streams as the unit of execution, state, and scaling, and shows that stream functions reduce the processing overhead by ~99 % compared to a mature stream process- ing engine in a video-processing use case.

Abstract

Serverless computing and stream processing represent two dominant paradigms for event-driven data processing, yet both make assumptions that render them inefficient for short-running, lightweight, and unpredictable streams that require stateful processing. We propose stream functions as a novel extension of the Function-as-a-Serivce model that treat short streams as the unit of execution, state, and scaling. Stream functions process streams via an iterator-based interface, enabling seamless inter-event logic while retaining the elasticity and scale-to-zero capabilities offered by serverless platforms. Our evaluation shows that stream functions reduce the processing overhead by ~99 % compared to a mature stream process- ing engine in a video-processing use case. By providing comparable performance to serverless functions with stream semantics, stream functions provide an effective and efficient abstractions for a class of workloads underserved by existing models.
Paper Structure (26 sections, 1 equation, 3 figures)

This paper contains 26 sections, 1 equation, 3 figures.

Figures (3)

  • Figure 1: Components of a stream function instance. Events are buffered before being passed to the function by the function handler. Transformed events are emitted according to configuration.
  • Figure 2: Cold start penalty for different setups and stream durations. Due to fast cold starts, Beaver and the FaaS approach exhibit $\theta$ values near zero. The batch approach improves quickly as streams get longer, at the cost of increased time until first processing. The stream processing approach is unfit for short streams due to slow cold starts.
  • Figure 3: Processing overhead over theoretical minimum. The batch processing overhead increases for longer streams, while overheads for Beaver, FaaS, and Stream decrease slightly. On average, Beaver reduces the processing overhead by approximately 99 % compared to the Stream approach and is on par with the FaaS approach.