FaaSpot
Fault-Tolerant Serverless Workflows on Spot Instances
89.03%
Avg. workflow success rate
2.3×
Lower latency vs. best baseline
2.2×
Cheaper per successful run
17.5K
Lines of Python
situation
Serverless workloads on cloud spot instances offer 70–90% cost savings but suffer frequent preemptions. Every prior system hedged by mixing in on-demand nodes for high-risk tasks - forfeiting the savings that made spot attractive in the first place.
challenge
Three compounding problems surfaced early: reactive checkpointing created too much overhead and was too slow to matter once a preemption was already happening; the autoscaler was similarly reactive - by the time it triggered, nodes were already gone; and the retry service was single-threaded, so retries queued linearly and tanked success rates instead of recovering them.
solution
Replaced reactive with proactive: Kaplan-Meier survival curves fit on emulator preemption traces give early warning, gating a Thompson Sampling bandit that uses live failure and cost data to scale up before preemptions hit - without overprovisioning. Rewrote the retry service as a 50–100 thread concurrent executor, which alone delivered a 40–50% boost to workflow success rates. Selective checkpointing (DAG-aware, not uniform) kept overhead low while still enabling lineage-based recovery.
KEY CONTRIBUTIONS
- Raised success from 39% (naive spot) to 89.03% - outperforming every hybrid baseline on all three metrics simultaneously
- Built FaaSpot's Kubernetes platform from scratch: a 16-node kubeadm VM cluster on bare metal running Fission
- Two-layer autoscaler: Kaplan-Meier survival model gates a Thompson Sampling contextual bandit that scales Deployment replicas onto safer nodes
- Checkpoint and lineage-based retry controllers on transactional MySQL, resuming failed runs from the nearest checkpoint
- Trace-driven spot emulator replaying real SkyPilot AWS preemption traces for reproducible evaluation
EQUIPMENT MANIFEST