Durable Functions: Semantics for Stateful Serverless

被引:31
作者
Burckhardt, Sebastian [1 ]
Gillum, Chris [2 ]
Justo, David [2 ]
Kallas, Konstantinos [3 ]
McMahon, Connor [2 ]
Meiklejohn, Christopher S. [4 ]
机构
[1] Microsoft Res, Redmond, WA 98052 USA
[2] Microsoft Azure, Redmond, WA USA
[3] Univ Penn, Philadelphia, PA 19104 USA
[4] Carnegie Mellon Univ, Pittsburgh, PA 15213 USA
来源
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL | 2021年 / 5卷 / OOPSLA期
关键词
Durable Functions; Serverless; Services; Service Composition; Programming; Workflows; Reliable;
D O I
10.1145/3485510
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Serverless, or Functions-as-a-Service (FaaS), is an increasingly popular paradigm for application development, as it provides implicit elastic scaling and load based billing. However, the weak execution guarantees and intrinsic compute-storage separation of FaaS create serious challenges when developing applications that require persistent state, reliable progress, or synchronization. This has motivated a new generation of serverless frameworks that provide stateful abstractions. For instance, Azure's Durable Functions (DF) programming model enhances FaaS with actors, workflows, and critical sections. As a programming model, DF is interesting because it combines task and actor parallelism, which makes it suitable for a wide range of serverless applications. We describe DF both informally, using examples, and formally, using an idealized high-level model based on the untyped lambda calculus. Next, we demystify how the DF runtime can (1) execute in a distributed unreliable serverless environment with compute-storage separation, yet still conform to the fault-free high-level model, and (2) persist execution progress without requiring checkpointing support by the language runtime. To this end we define two progressively more complex execution models, which contain the compute-storage separation and the record-replay, and prove that they are equivalent to the high-level model.
引用
收藏
页数:27
相关论文
共 38 条
[1]  
Amazon, 2020, AWS STEP FUNCT
[2]  
[Anonymous], 2002, Types and Programming Languages
[3]   The development of Erlang [J].
Armstrong, J .
ACM SIGPLAN NOTICES, 1997, 32 (08) :196-203
[4]   The Serverless Trilemma Function Composition for Serverless Computing [J].
Baldini, Ioana ;
Cheng, Perry ;
Fink, Stephen J. ;
Mitchell, Nick ;
Muthusamy, Vinod ;
Rabbah, Rodric ;
Suter, Philippe ;
Tardieu, Olivier .
PROCEEDINGS OF THE 2017 ACM SIGPLAN INTERNATIONAL SYMPOSIUM ON NEW IDEAS, NEW PARADIGMS, AND REFLECTIONS ON PROGRAMMING AND SOFTWARE (ONWARD!'17), 2017, :89-103
[5]  
Boner Jonas, 2020, STATEFUL SERVERLESS
[6]  
Burckhardt Sebastian, 2021, ARXIV PREPRINT ARXIV
[7]  
Bykov Sergey, 2011, P 2 ACM S CLOUD COMP, P1, DOI [DOI 10.1145/2038916.2038932, 10.1145/2038916.2038932]
[8]  
Carbone P., 2015, B TECH COMM DATA ENG, V38, DOI DOI 10.1109/IC2EW.2016.56
[9]  
CloudFlare, 2020, US DUR OBJ
[10]  
Cloudflare, 2020, Workers Durable Objects Beta: A New Approach to Stateful Serverless