System Improvements for FaaS
A large category of serverless research involves system improvements to FaaS. There is a tension between providing isolation, efficient multiplexing, and low-latency performance. OpenLambda  and McGrath et al.  both developed early prototype FaaS systems that mirrored the inner workings of FaaS platforms and helped illustrate this research challenge.
One manifestation of the tension is in cold starts. SOCK  uses various systems techniques to reduce these, particularly for FaaS applications that use libraries with high initialization costs. Catalyzer  takes on the same challenge, using checkpoints to start functions instead of executing their initialization code. Xanadu  provides techniques for mitigating cascading cold starts, and Mohan et al.  discuss techniques for preallocating resources such as network interfaces to reduce cold start times.
FaaS also incurs cold start latencies and other overheads from the underlying operating system and hypervisor. Firecracker  is a lightweight microVM technology developed by AWS that reduces the startup times and memory requirements of VM isolation. Koller and Williams  have suggested using unikernels with FaaS instead of traditional operating systems in a further bid to improve efficiency. There are also alternatives to using VMs for isolation. Faasm  provides lightweight isolation based on WebAssembly . Alto  generalizes lightweight virtualization to other managed runtime environments.
Isolation not only creates startup costs but ongoing runtime costs as well. Young et al.  study the performance overheads of gVisor , which is used by Google’s serverless products. Anjali et al.  compare serverless isolation mechanisms, including Linux containers, gVisor, and Firecracker microVMs.
Even when no cold starts are involved, the latency of FaaS function invocation can be too high for some applications. Contributing factors include overheads of passing data, queuing overheads, and scheduling overheads or delays. Sonic , SAND , SEUSS , and Cloudburst  all address various aspects of these slowdowns.
Work on scheduling includes that by Kaffes et al. , which uses a centralized scheduler with a global view to eliminate imbalances. FnSched  offers another scheduler that aims to improve latency and utilization, and Caerus  provides scheduling for serverless analytics. Work by Mahmoudi et al. describes an algorithm for adaptive function placement.
A diverse assortment set of other work seeks to improve FaaS. Shredder  embeds FaaS computations with object storage. Faa$T  provides a provider-managed cache for serverless applications. Particle is a network overlay suited to the burstiness of serverless computing . Gupta  et al. demonstrate straggler mitigation using error-correcting codes. Kappa  provides fault tolerance and extended execution times by checkpointing and restarting FaaS applications. InfiniCache  shows how to use erasure coding to build a cache from idle FaaS instances. Harvest VMs  allows FaaS to run using resources momentarily left idle by traditional server VMs.
- Scott Hendrickson, Stephen Sturdevant, Tyler Harter, Venkateshwaran Venkataramani, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2016. Serverless Computation With OpenLambda. 8th USENIX Workshop on Hot Topics in Cloud Computing (HotCloud 16) (2016).
- Garrett McGrath and Paul R. Brenner. 2017. Serverless Computing: Design, Implementation, and Performance. In 2017 IEEE 37th International Conference on Distributed Computing Systems Workshops (ICDCSW), IEEE, 405–410.
- Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler Harter, Andrea Arpaci-Dusseau, and Remzi Arpaci-Dusseau. 2018. SOCK: Rapid task provisioning with serverless-optimized containers. In 2018 USENIX Annual Technical Conference (USENIX ATC 18), 57–70.
- Dong Du, Tianyi Yu, Yubin Xia, Binyu Zang, Guanglu Yan, Chenggang Qin, Qixuan Wu, and Haibo Chen. 2020. Catalyzer: Sub-Millisecond Startup for Serverless Computing With Initialization-Less Booting. In Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems, 467–481.
- Nilanjan Daw, Umesh Bellur, and Purushottam Kulkarni. 2020. Xanadu: Mitigating Cascading Cold Starts in Serverless Function Chain Deployments. In Proceedings of the 21st International Middleware Conference, 356–370.
- Anup Mohan, Harshad Sane, Kshitij Doshi, Saikrishna Edupuganti, Naren Nayak, and Vadim Sukhomlinov. 2019. Agile Cold Starts for Scalable Serverless. In 11th USENIX Workshop on Hot Topics in Cloud Computing (HotCloud 19).
- Alexandru Agache, Marc Brooker, Alexandra Iordache, Anthony Liguori, Rolf Neugebauer, Phil Piwonka, and Diana-Maria Popa. 2020. Firecracker: Lightweight Virtualization for Serverless Applications. In 17th USENIX symposium on networked systems design and implementation (NSDI 20), 419–434.
- Ricardo Koller and Dan Williams. 2017. Will serverless end the dominance of Linux in the cloud? In Proceedings of the 16th Workshop on Hot Topics in Operating Systems, 169–173.
- Simon Shillaker and Peter Pietzuch. 2020. Faasm: lightweight isolation for efficient stateful serverless computing. In 2020 USENIX Annual Technical Conference (USENIX ATC 20), 419–433.
- Andreas Haas, Andreas Rossberg, Derek L. Schuff, Ben L. Titzer, Michael Holman, Dan Gohman, Luke Wagner, Alon Zakai, and JF Bastien. 2017. Bringing the Web Up to Speed With WebAssembly. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, 185–200.
- James Larisch, James Mickens, and Eddie Kohler. 2018. Alto: Lightweight VMs Using Virtualization-Aware Managed Runtimes. In Proceedings of the 15th International Conference on Managed Languages & Runtimes, 1–7.
- Ethan G. Young, Pengfei Zhu, Tyler Caraza-Harter, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2019. The True Cost of Containing: A gVisor Case Study. In 11th USENIX Workshop on Hot Topics in Cloud Computing (HotCloud 19).
- gVisor. Retrieved from https://gvisor.dev/
- Anjali, Tyler Caraza-Harter, and Michael M. Swift. 2020. Blending Containers and Virtual Machines: A Study of Firecracker and gVisor. In Proceedings of the 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, 101–113.
- Ashraf Mahgoub, Karthick Shankar, Subrata Mitra, Ana Klimovic, Somali Chaterji, and Saurabh Bagchi. 2021. SONIC: Application-Aware Data Passing for Chained Serverless Applications. In 2021 USENIX Annual Technical Conference (USENIX ATC 21), 285–301.
- Istemi Ekin Akkus, Ruichuan Chen, Ivica Rimac, Manuel Stein, Klaus Satzke, Andre Beck, Paarijaat Aditya, and Volker Hilt. 2018. SAND: Towards High-Performance Serverless Computing. In 2018 USENIX Annual Technical Conference (USENIX ATC 18), 923–935.
- James Cadden, Thomas Unger, Yara Awad, Han Dong, Orran Krieger, and Jonathan Appavoo. 2020. SEUSS: Skip Redundant Paths to Make Serverless Fast. In Proceedings of the Fifteenth European Conference on Computer Systems, 1–15.
- Vikram Sreekanti, Chenggang Wu, Xiayue Charles Lin, Johann Schleier-Smith, Joseph E. Gonzalez, Joseph M. Hellerstein, and Alexey Tumanov. 2020. Cloudburst: Stateful Functions-as-a-Service. VLDB 13, 11 (2020), 2438–2452.
- Kostis Kaffes, Neeraja J. Yadwadkar, and Christos Kozyrakis. 2019. Centralized Core-Granular Scheduling for Serverless Functions. In Proceedings of the ACM Symposium on Cloud Computing, 158–164.
- Amoghvarsha Suresh and Anshul Gandhi. 2019. FnSched: An Efficient Scheduler for Serverless Functions. In Proceedings of the 5th International Workshop on Serverless Computing, 19–24.
- Hong Zhang, Yupeng Tang, Anurag Khandelwal, Jingrong Chen, and Ion Stoica. 2021. Caerus: NIMBLE Task Scheduling for Serverless Analytics. In NSDI, 653–669.
- Tian Zhang, Dong Xie, Feifei Li, and Ryan Stutsman. 2019. Narrowing the Gap Between Serverless and Its State With Storage Functions. In Proceedings of the ACM Symposium on Cloud Computing, 1–12.
- Francisco Romero. 2021. Faa$T: A Transparent Auto-Scaling Cache for Serverless Applications. (2021).
- Shelby Thomas, Lixiang Ao, Geoffrey M. Voelker, and George Porter. 2020. Particle: Ephemeral Endpoints for Serverless Networking. In Proceedings of the 11th ACM Symposium on Cloud Computing, 16–29.
- Vipul Gupta, Dominic Carrano, Yaoqing Yang, Vaishaal Shankar, Thomas Courtade, and Kannan Ramchandran. 2020. Serverless Straggler Mitigation Using Error-Correcting Codes. In 2020 IEEE 40th International Conference on Distributed Computing Systems (ICDCS), IEEE, 135–145.
- Wen Zhang, Vivian Fang, Aurojit Panda, and Scott Shenker. 2020. Kappa: A Programming Framework for Serverless Computing. In Proceedings of the 11th ACM Symposium on Cloud Computing, 328–343.
- Ao Wang, Jingyuan Zhang, Xiaolong Ma, Ali Anwar, Lukas Rupprecht, Dimitrios Skourtis, Vasily Tarasov, Feng Yan, and Yue Cheng. 2020. InfiniCache: Exploiting ephemeral serverless functions to build a cost-effective memory cache. In 18th USENIX Conference on File and Storage Technologies (FAST 20), 267–281.
- Yanqi Zhang, Íñigo Goiri, Gohar Irfan Chaudhry, Rodrigo Fonseca, Sameh Elnikety, Christina Delimitrou, and Ricardo Bianchini. 2021. Faster and Cheaper Serverless Computing on Harvested Resources. In Proceedings of the ACM SIGOPS 28th Symposium on Operating Systems Principles, 724–739.