SEUSS: Skip Redundant Paths to Make Serverless Fast

Deploy serverless functions from unikernel snapshots to skip boot, runtime init, and import overhead — 51× throughput improvement

Featured image

Venue: EuroSys 2020
Link: ACM DL

Topic: Serverless cold starts are slow because every invocation re-executes boot, runtime initialization, and code import. SEUSS deploys functions from unikernel snapshots and applies page-level sharing to skip all redundant initialization paths.


Summary

SEUSS uses unikernel snapshots to bypass the three expensive initialization phases: unikernel boot, language runtime init, and function code import/compile. By applying page-level sharing across the entire software stack, snapshot memory footprint is much smaller than processes or containers, enabling caching of far more function instances per node. Results: deployment time drops from 100s of ms to under 10 ms; platform throughput improves 51×; 50,000+ function instances cached vs. 3,000 with standard techniques.


Background

Sources of serverless cold-start latency

  1. Boot the unikernel (or OS).
  2. Initialize the language runtime (e.g., Python interpreter).
  3. Import and compile function code and dependencies.

Current solutions’ limits


Key Idea

Unikernel snapshot for fast deployment

Page-level sharing to reduce memory footprint

Anticipatory optimizations


Design

Execution model

Components

  1. Unikernel: replaces Linux on the compute node. Enables straightforward snapshotting of function state.
  2. Snapshot capture: black-box fashion — captures memory footprint and register state at an arbitrary execution point.
  3. Page sharing: enables memory deduplication across all snapshot instances.

Evaluation


Meeting Notes

(to be filled)