Distributed Transactions on Serverless Stateful Functions using Coordinator Functions

More Info
expand_more

Abstract

Lately, serverless computing has gained much attention. Function-as-a-Service (FaaS) is the most prominent serverless model. The FaaS model allows cloud users to write simple functions, and the cloud provider takes care of the deployment, main- tenance, and scalability of those functions. However, FaaS can be improved upon significantly. Existing FaaS services do not solve some significant and challenging cloud computing problems regarding state and communication, such as function- to-function calls and transactions. Work has been done to improve this early it- eration of serverless computing by incorporating state in the equation; leading to Stateful Function-as-a-Service (SFaaS). However, transactions on SFaaS remain an open problem, even though they are crucial to allow more use cases to operate using SFaaS. This thesis examines existing SFaaS systems and their data correctness guaran- tees. Based on existing SFaaS systems, this thesis proposes a programming model for both serializable transactions and sagas orchestrations using coordinator functions. The programming model is implemented in Apache Flink StateFun. The implemen- tation is based on existing research on traditional database technology. The implementation’s performance is evaluated using an enhanced version of the Yahoo! Cloud Systems Benchmark (YCSB); YCSB is extended to include a trans- actional operation. The implementation reaches 1840 sagas workflows per second and 1200 serializable transactions at sub-200ms latencies on 5 workers with 2 CPUs each.