一句话:提出基于 Actor、重试编排与尾调用的云容错编程模型,并形式化与实现验证。
本文面向云应用容错,提出一种基于 Actor、重试编排和尾调用的编程模型。该模型建立在云上易得的持久化数据存储与消息队列之上。重试编排保证失败调用会被重试、已完成调用绝不重复,并在调用栈内跨故障保持严格的 happens-before 关系;尾调用将复杂任务拆成简单步骤,以减少恢复时的重复执行。作者回顾应用模式与故障场景,用进程演算形式化容错机制,简述实现,并以企业场景启发的应用验证功能正确性及故障准备和恢复对性能的影响。
Cloud developers have to build applications that are resilient to failures and interruptions. We advocate for a fault-tolerant programming model for the cloud based on actors, retry orchestration, and tail calls. This model builds upon persistent data stores and message queues readily available on the cloud. Retry orchestration not only guarantees that (1) failed actor invocations will be retried but also that (2) completed invocations are never repeated and (3) it preserves a strict happen-before relationship across failures within call stacks. Tail calls can break complex tasks into simple steps to minimize re-execution during recovery. We review key application patterns and failure scenarios. We formalize a process calculus to precisely capture the mechanisms of fault tolerance in this model. We briefly describe our implementation. Using an application inspired by a typical enterprise scenario, we validate the functional correctness of our implementation and assess the impact of fault preparedness and recovery on performance.
@article{paperbot2007,
title = {Reliable Actors with Retry Orchestration},
author = {Olivier Tardieu and David Grove and Gheorghe-Teodor Bercea and Paul Castro and Jaroslaw Cwiklik and Edward Epstein},
journal = {Proceedings of the ACM on Programming Languages},
volume = {7},
number = {PLDI},
year = {2023},
doi = {10.1145/3591273}
}