Serverless computing promises cost-efficiency and elasticity for high-productive software development. To achieve this, the serverless sandbox system must address two challenges: strong isolation between function instances, and low startup latency to ensure user experience. While strong isolation can be provided by virtualization-based sandboxes, the initialization of sandbox and application causes non-negligible startup overhead. Conventional sandbox systems fall short in boosting startup due to their application-agnostic nature: they can only reduce the latency of sandbox initialization through hypervisor and guest kernel customization, which is inadequate and does not mitigate the majority of startup overhead.
Catalyzer is a new serverless sandbox system design providing both strong isolation and extremely fast function startup.
On-demand restore: instead of booting from scratch, Catalyzer restores a virtualization-based function instance from a well-formed checkpoint image and thereby skips the initialization on the critical path (init-less). Catalyzer boosts the restore performance by on-demand recovering both user-level memory states and system states.
Sandbox fork: We also propose a new OS primitive, sfork (sandbox fork), to further reduce the startup latency by directly reusing the states of a running sandbox instance. Fundamentally, Catalyzer removes the initialization cost by reusing states, which enables general optimizations for diverse serverless functions. The evaluation shows that Catalyzer optimizes startup latency by orders of magnitude, achieves <1ms latency in the best case, and significantly reduces the end-to-end latency for real-world workloads. Catalyzer has been adopted by Ant Financial.
We thank our shepherd Mike Swift and the anonymous reviewers for their insightful comments for our ASPLOS paper. This work is supported in part by the National Key Research & Development Program (No. 2016YFB1000104), and the National Natural Science Foundation of China (No. 61972244, 61925206), the HighTech Support Program from Shanghai Committee of Science and Technology (No. 19511121100), and the Program of Shanghai Academic/Technology Research Leader (No.19XD1401700).