Table of Contents
Fetching ...

Fix: externalizing network I/O in serverless computing

Yuhan Deng, Akshay Srivatsan, Sebastian Ingino, Francis Chua, Yasmine Mitchell, Matthew Vilaysack, Keith Winstein

TL;DR

Fix addresses serverless inefficiency by externalizing I/O and representing computation as a serializable, dataflow-driven ABI that enables the runtime to schedule and move data efficiently. Implemented as Fixpoint with a Wasm-based trusted toolchain, it demonstrates low per-invocation overhead and significant gains from locality-aware data movement and fine-grained, dependency-aware execution. The results show substantial improvements in invocation and orchestration overhead, as well as the practicality of porting real workloads through Flatware/WASI, while acknowledging limitations in the pure-functional model and the need for broader I/O delineation. The work suggests a shift toward pay-for-results and computation-as-a-service, enabling providers to optimize placement and scheduling with visibility into data dependencies.

Abstract

We describe a system for serverless computing where users, programs, and the underlying platform share a common representation of a computation: a deterministic procedure, run in an environment of well-specified data or the outputs of other computations. This representation externalizes I/O: data movement over the network is performed exclusively by the platform. Applications can describe the precise data needed at each stage, helping the provider schedule tasks and network transfers to reduce starvation. The design suggests an end-to-end argument for outsourced computing, shifting the service model from ``pay-for-effort'' to ``pay-for-results.''

Fix: externalizing network I/O in serverless computing

TL;DR

Fix addresses serverless inefficiency by externalizing I/O and representing computation as a serializable, dataflow-driven ABI that enables the runtime to schedule and move data efficiently. Implemented as Fixpoint with a Wasm-based trusted toolchain, it demonstrates low per-invocation overhead and significant gains from locality-aware data movement and fine-grained, dependency-aware execution. The results show substantial improvements in invocation and orchestration overhead, as well as the practicality of porting real workloads through Flatware/WASI, while acknowledging limitations in the pure-functional model and the need for broader I/O delineation. The work suggests a shift toward pay-for-results and computation-as-a-service, enabling providers to optimize placement and scheduling with visibility into data dependencies.

Abstract

We describe a system for serverless computing where users, programs, and the underlying platform share a common representation of a computation: a deterministic procedure, run in an environment of well-specified data or the outputs of other computations. This representation externalizes I/O: data movement over the network is performed exclusively by the platform. Applications can describe the precise data needed at each stage, helping the provider schedule tasks and network transfers to reduce starvation. The design suggests an end-to-end argument for outsourced computing, shifting the service model from ``pay-for-effort'' to ``pay-for-results.''

Paper Structure

This paper contains 35 sections, 12 figures, 2 tables, 3 algorithms.

Figures (12)

  • Figure 1: Fix represents function invocations and data dependencies with a unified serializable format.
  • Figure 1: Fix Pseudocode API
  • Figure 2: If Procedure
  • Figure 3: Fibonacci Procedure
  • Figure 4: Get File Procedure
  • ...and 7 more figures