This paper introduces Beldi, a library and runtime system for writing and composing fault-tolerant and transactional stateful serverless functions. Beldi runs on existing providers and lets developers write complex stateful applications that require fault tolerance and transactional semantics without the need to deal with tasks such as load balancing or maintaining virtual machines. Beldi's contributions include extending the log-based fault-tolerant approach in Olive (OSDI 2016) with new data structures, transaction protocols, function invocations, and garbage collection. They also include adapting the resulting framework to work over a federated environment where each serverless function has sovereignty over its own data. We implement three applications on Beldi, including a movie review service, a travel reservation system, and a social media site. Our evaluation on 1,000 AWS Lambdas shows that Beldi's approach is effective and affordable.
翻译:本文介绍Beldi, 图书馆和运行时间系统, 用于撰写和构建不理解错误和不交易状态的服务器功能。 Beldi 运行于现有供应商,让开发商撰写复杂的、要求容忍错误和交易性语义的应用软件,不需要处理诸如负载平衡或维护虚拟机器等任务。 Beldi 的贡献包括将Olive( 2016 年 OSDI ) 的基于日志的不理解错误方法( OSDI 2016 ) 扩展为新的数据结构、 交易协议、 功能设定和垃圾收集。 还包括调整由此产生的框架, 以适应一个联合环境, 使每个无服务器的功能都对其自己的数据拥有主权。 我们在 Beldi 实施了三个应用程序, 包括电影审查服务、 旅行预订系统和社交媒体网站。 我们对1,000 AWS Lambdas 的评估显示, Beldi 的方法是有效和负担得起的。