SAND: Towards High Performance Serverless Computing
11 July 2018
Serverless computing or Function-as-a-Service has emerged as a new cloud computing paradigm, in which applications are decomposed into individual functions. The provider takes the responsibility of dynamically al- locating and managing the required resources for the exe- cution of these functions, allowing the developers to fully focus on the function-level logic of their applications. In serverless computing, functions are typically iso- lated by sandboxing each function in a separate con- tainer. Unfortunately, this approach can lead to high setup delays for each function invocation, leading to high latency in application response times, and forces a choice between inefficient overprovisioning of resources and limited concurrency leading to additional queuing de- lays. Although deploying applications on edge clouds can shorten application response latency, such clouds usually have limited resources, amplifying the resource inefficiency problem. In this paper, we present SAND, a system for server- less computing that provides lower latency, better re- source efficiency and more elasticity than existing solu- tions. To achieve these properties, SAND uses two tech- niques: 1) application-level sandboxing, and 2) hierar- chical message queuing. These techniques allow SAND to be suitable even for applications deployed on edge clouds, where low latency is expected but resources are limited.