Table of Contents
Fetching ...

Shattering the Ephemeral Storage Cost Barrier for Data-Intensive Serverless Workflows

Dmitrii Ustiugov, Shyam Jesalpura, Mert Bora Alper, Michal Baczun, Rustem Feyzkhanov, Edouard Bugnion, Boris Grot, Marios Kogias

TL;DR

Zipline tackles the high-cost bottleneck of inter-function data transfers in data-intensive serverless workflows by introducing an API-preserving, memory-buffered, direct function-to-function communication substrate that coexists with existing autoscaling. By separating control and data planes and passing object references instead of pushing data through a storage layer, Zipline eliminates expensive through-storage I/O and significantly reduces end-to-end costs while improving latency and bandwidth. The authors implement a Knative/vHive prototype with a Python/Go SDK, extended queue-proxy components, and Cap'n Proto-based dataplanes, and evaluate against S3 and ElastiCache on real workloads VID, SET, and MR, showing 2-5x cost reductions over S3 and up to 772x over ElastiCache, plus 1.3-3.4x speedups. This work demonstrates that serverless data-intensive workloads can be economically practical at large scale, enabling broader adoption and more efficient workflows.

Abstract

Serverless computing is a popular cloud deployment paradigm where developers implement applications as workflows of functions that invoke each other. Cloud providers automatically scale function instances on demand and forward workflow requests to appropriate instances. However, current serverless clouds lack efficient cross-function data transfer, limiting the execution of data-intensive applications. Functions often rely on third-party services like AWS S3, AWS ElastiCache, or multi-tier solutions for intermediate data transfers, which introduces inefficiencies. We demonstrate that such through-storage transfers make data-intensive deployments economically impractical, with storage costs comprising more than 24-99% of the total serverless bill. To address this, we introduce Zipline, a fast, API-preserving data communication method for serverless platforms. Zipline enables direct function-to-function transfers, where the sender function buffers payloads in memory and sends a reference to the receiver. The receiver retrieves the data directly from the sender's memory, guided by the load balancer and autoscaler. Zipline integrates seamlessly with existing autoscaling, maintains invocation semantics, and eliminates the costs and overheads of intermediate services. We prototype Zipline in vHive/Knative on AWS EC2 nodes, demonstrating significant improvements. Zipline reduces costs and enhances latency and bandwidth compared to AWS S3 (the lowest-cost solution) and ElastiCache (the highest-performance solution). On real-world applications, Zipline lowers costs by 2-5x and reduces execution times by 1.3-3.4x versus S3. Compared to ElastiCache, Zipline achieves 17-772x cost reductions while improving performance by 2-5%.

Shattering the Ephemeral Storage Cost Barrier for Data-Intensive Serverless Workflows

TL;DR

Zipline tackles the high-cost bottleneck of inter-function data transfers in data-intensive serverless workflows by introducing an API-preserving, memory-buffered, direct function-to-function communication substrate that coexists with existing autoscaling. By separating control and data planes and passing object references instead of pushing data through a storage layer, Zipline eliminates expensive through-storage I/O and significantly reduces end-to-end costs while improving latency and bandwidth. The authors implement a Knative/vHive prototype with a Python/Go SDK, extended queue-proxy components, and Cap'n Proto-based dataplanes, and evaluate against S3 and ElastiCache on real workloads VID, SET, and MR, showing 2-5x cost reductions over S3 and up to 772x over ElastiCache, plus 1.3-3.4x speedups. This work demonstrates that serverless data-intensive workloads can be economically practical at large scale, enabling broader adoption and more efficient workflows.

Abstract

Serverless computing is a popular cloud deployment paradigm where developers implement applications as workflows of functions that invoke each other. Cloud providers automatically scale function instances on demand and forward workflow requests to appropriate instances. However, current serverless clouds lack efficient cross-function data transfer, limiting the execution of data-intensive applications. Functions often rely on third-party services like AWS S3, AWS ElastiCache, or multi-tier solutions for intermediate data transfers, which introduces inefficiencies. We demonstrate that such through-storage transfers make data-intensive deployments economically impractical, with storage costs comprising more than 24-99% of the total serverless bill. To address this, we introduce Zipline, a fast, API-preserving data communication method for serverless platforms. Zipline enables direct function-to-function transfers, where the sender function buffers payloads in memory and sends a reference to the receiver. The receiver retrieves the data directly from the sender's memory, guided by the load balancer and autoscaler. Zipline integrates seamlessly with existing autoscaling, maintains invocation semantics, and eliminates the costs and overheads of intermediate services. We prototype Zipline in vHive/Knative on AWS EC2 nodes, demonstrating significant improvements. Zipline reduces costs and enhances latency and bandwidth compared to AWS S3 (the lowest-cost solution) and ElastiCache (the highest-performance solution). On real-world applications, Zipline lowers costs by 2-5x and reduces execution times by 1.3-3.4x versus S3. Compared to ElastiCache, Zipline achieves 17-772x cost reductions while improving performance by 2-5%.
Paper Structure (37 sections, 8 figures, 2 tables)

This paper contains 37 sections, 8 figures, 2 tables.

Figures (8)

  • Figure 1: Operation of serverless autoscaling infrastructure.
  • Figure 2: The cost breakdown for real-world data-intensive multi-function applications (§\ref{['sec:method_apps']}), namely Video Analytics (VID), Stacking Ensemble Training (SET), and Map-Reduce (MR), when performing data transfers through AWS S3 and ElastiCache (EC). The numbers show the cost values in (in $USD\times10^{-6}$) for compute and storage expenses.
  • Figure 3: Cumulative Distribution Functions (CDFs) of the time duration between saving a data object in storage and its last retrieval, based on Azure Blob Traces romero:faast. Note the logarithmic scale on the horizontal axis.
  • Figure 4: Zipline architecture overview.
  • Figure 5: Zipline operation in a single producer single consumer scenario (only the request path is shown). Dashed arrows show the control plane, solid lines show the data plane, and the thick solid lines show data streaming in the data plane.
  • ...and 3 more figures