Mahgoub, A., Shankar, K., Mitra, S., Klimovic, A., Chaterji, S., and Bagchi, S. (2021). SONIC: Application-aware Data Passing for Chained Serverless Applications. USENIX ATC 2021.
Students
Ashraf Mahgoub, Karthick Shankar
Abstract
Data analytics applications are increasingly leveraging serverless execution environments for their ease-of-use and
pay-as-you-go billing. The structure of such applications is usually composed of multiple functions that are
chained together to form a workflow. The current approach of ex-changing intermediate (ephemeral) data between
functions is through a remote storage (such as S3), which introduces significant performance overhead. We compare
three data-passing methods, which we call VM-Storage, Direct-Passing, and state-of-practice Remote-Storage.
Crucially, we show that no single data-passing method prevails under all scenarios and the optimal choice
depends on dynamic factors such as the size of input data, the size of intermediate data, the application's
degree of parallelism, and network bandwidth. We propose SONIC, a data-passing manager that optimizes
application performance and cost, by transparently selecting the optimal data-passing method for each edge of
a serverless workflow DAG and implementing communication-aware function placement. SONIC monitors application
parameters and uses simple regression models to adapt its hybrid data passing accordingly. We integrate SONIC
with Open-Lambda and evaluate the system on Amazon EC2 with three analytics applications, popular in the
serverless environment. SONIC provides lower latency (raw performance) and higher performance/$ across diverse
conditions, compared to four baselines: SAND, vanilla OpenLambda, OpenLambda with Pocket, and AWS Lambda.