This is not the End: Rethinking Serverless Function Termination

11/04/2022
by   Kalev Alpernas, et al.
0

Elastic scaling is one of the central benefits provided by serverless platforms, and requires that they scale resource up and down in response to changing workloads. Serverless platforms scale-down resources by terminating previously launched instances (which are containers or processes). The serverless programming model ensures that terminating instances is safe assuming all application code running on the instance has either completed or timed out. Safety thus depends on the serverless platform's correctly determining that application processing is complete. In this paper, we start with the observation that current serverless platforms do not account for pending asynchronous I/O operations when determining whether application processing is complete. These platforms are thus unsafe when executing programs that use asynchronous I/O, and incorrectly deciding that application processing has terminated can result in data inconsistency when these platforms are used. We show that the reason for this problem is that current serverless semantics couple termination and response generation in serverless applications. We address this problem by proposing an extension to current semantics that decouples response generation and termination, and demonstrate the efficacy and benefits of our proposal by extending OpenWhisk, an open source serverless platform.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/21/2021

General Decidability Results for Asynchronous Shared-Memory Programs: Higher-Order and Beyond

The model of asynchronous programming arises in many contexts, from low-...
research
10/29/2021

Application-Platform Co-Design for Serverless Data Processing

"Application-platform co-design" refers to the phenomenon of new platfor...
research
02/20/2019

Termination of Linear Loops over the Integers

We consider the problem of deciding termination of single-path while loo...
research
02/20/2019

On Termination of Integer Linear Loops

We consider the problem of determining termination of single-path loops ...
research
04/28/2022

Stay Safe under Panic: Affine Rust Programming with Multiparty Session Types

Communicating systems comprise diverse software components across networ...
research
06/02/2019

A Survey of Asynchronous Programming Using Coroutines in the Internet of Things and Embedded Systems

Many Internet of Things and embedded projects are event-driven, and ther...

Please sign up or login with your details

Forgot password? Click here to reset