paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Reliable Actors with Retry Orchestration

带重试编排的可靠 Actor
PLDI 7(PLDI)2023匹配度 1/10 · 该论文属于分布式容错与 Actor 编程模型,虽有进程演算形式化,但与用户核心方向(LLM/Agentic 程序的静态分析、LLM 改进静态分析/形式化验证、浮点程序分析、贝叶斯程序分析)没有直接关联。引用 4 inbox
Olivier Tardieu, David Grove, Gheorghe-Teodor Bercea, Paul Castro, Jaroslaw Cwiklik, Edward Epstein
crossref: 2026-09-10

AI 速览

一句话:提出基于 Actor、重试编排与尾调用的云容错编程模型,并形式化与实现验证。

本文面向云应用容错,提出一种基于 Actor、重试编排和尾调用的编程模型。该模型建立在云上易得的持久化数据存储与消息队列之上。重试编排保证失败调用会被重试、已完成调用绝不重复,并在调用栈内跨故障保持严格的 happens-before 关系;尾调用将复杂任务拆成简单步骤,以减少恢复时的重复执行。作者回顾应用模式与故障场景,用进程演算形式化容错机制,简述实现,并以企业场景启发的应用验证功能正确性及故障准备和恢复对性能的影响。

问题
云开发者需要构建能容忍故障与中断的应用;核心问题是提供可靠的 Actor 调用,同时避免重复执行并保持跨故障的因果顺序。
方法
提出 Actor、重试编排与尾调用相结合的容错编程模型,基于云上持久化存储和消息队列,并用进程演算形式化其容错机制。
评估
通过一个受企业场景启发的应用验证实现的功能正确性,并评估故障准备与恢复对性能的影响。
原文摘要(Abstract)

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.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@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}
}