容错协议的顺序化过程
在分布式系统的开发中,容错协议的验证和测试是一项具有挑战性的任务。本文将介绍一种将异步协议转换为顺序协议的方法,该方法有助于更有效地验证和测试容错协议。
异步协议概述
- Distal 语言 :Distal 是一种用于容错系统的领域特定语言(DSL)。系统由 N 个进程组成,每个进程有唯一标识符用于收发消息。协议由
init语句和主循环构成,主循环包含一系列upon语句。upon语句后接谓词守卫和执行指令。进程可访问只读邮箱变量mbox存储接收到的消息。
plaintext type M ::= struct { field Identifier; } e ::= const | x | f(⃗x) Expressions Action ::= x = e Statements | if e then Action else Action | send(p, m) | send(m) to ALL | send to p | Action ; Action U ::= upon M with Guard do Action | U ; U Upon block P ::= init : Action; loop : U Program
协议的语义是所有进程执行动作的异步并行组合。进程在循环迭代中检查新消息,将消息池的子集移动到本地mbox,网络丢弃的消息不会出现在mbox中。
超级会员免费看
订阅专栏 解锁全文
2062

被折叠的 条评论
为什么被折叠?



