Forklift: Fitting Zygote Trees for Faster Package Initialization
Fast cold start is critical for many serverless applications. For Python, startup is typically dominated by module initialization. In this work, we analyze the dependencies of 9,678 Python applications and create ReqBench, a new benchmark for stressing module initialization. Informed by our findings, we design Forklift, a new algorithm for training zygote trees based on invocation history. Each zygote pre-imports some modules and can be forked to create other zygotes or function instances. We integrate Forklift with OpenLambda, improving median invocation latency by about 5× while using only a modest memory footprint (<6 GB).
Authors
- Tyler Caraza-Harter
- Keting Chen (ORCID: https://orcid.org/0000-0001-9976-4307)
- Y. Yang
- Kyoung Jin Choi
Institutions
- University of Wisconsin–Madison (US)
Publication Details
- Published
- 2024-11-27
- DOI
- https://doi.org/10.1145/3702634.3702952
- Citations
- 1
- Primary Topic
- Advanced Malware Detection Techniques
- Type
- article
- Field-Weighted Citation Impact
- 0.35