摘要:主流运行时中的Actor框架纷纷宣称支持Erlang/OTP式的监督机制,但OTP的一致性契约假定使用的是同步的单线程监督器,而端口则将这一假设的缺失视为未加审视的风险。我们逐一对比了各项监督保障,既参照了OTP官方文档与源码的逐字解读,又对照了三个其他Rust Actor框架在固定版本下的实现,并参考了相关Actor模型领域的文献,记录下每项设计决策背后的依据。通过盲测式的对抗性审计与跨框架研究,我们发现了24类缺陷,其中8类可归结为同一根本原因:即通过显式机制重新构建了同步监督器所隐含的原子性。为此,我们提出了一种新的监督运行时,借助监督器拥有的完成值、每个实例专属的身份标识以及单一的生命周期状态机,圆满解决了上述24类已知缺陷;该方案经由241项测试验证,其中包括对修复补丁的复现测试。实验结果不仅完全遵循OTP原文验证过的各项契约,还额外实现了两项OTP所不具备的特性:监督器在整组重启过程中始终保持响应,且消息处理程序在执行期间绝不会被中途取消。此外,我们还明确了任何非协作式运行时都无法满足的强制性保障范围。
提交历史
访问 Paper:
查看PDF
HTML(实验性)
TeX 源代码
附加功能
音频摘要
当前浏览上下文:
参考文献与引用
谷歌学术
语义学者
书签
机构
arXivLabs 是一个框架,允许合作者直接在我们的网站上开发并共享新的 arXiv 功能。
无论是个人还是与 arXivLabs 合作的机构,都已认同并践行我们所倡导的开放、社区、卓越以及用户数据隐私等价值观。arXiv 致力于坚守这些价值,并且只与同样秉持这些价值观的合作伙伴开展合作。
您是否有一个能为 arXiv 社区创造价值的项目构想?欢迎了解更多关于 arXivLabs 的信息。