容错协议与偏序约简技术研究
在分布式系统的开发中,容错协议的正确性和性能至关重要。同时,模型检查中的状态空间爆炸问题也一直是个挑战。本文将介绍容错协议的顺序化过程以及偏序约简技术在高级形式化方法中的应用与挑战。
容错协议的顺序化
在协议设计中,如果对消息传递集合有假设,对于不允许出错的协议,如 2PC,每个发送的消息都会被接收,顺序化是确定性的。而对于 Ben - Or 协议,每个进程在每一轮至少要收到 n - f 条消息才正确,这里的顺序化会随机选择 n - f 条消息传递给每个进程。对于需要非空内核(一组能与所有进程可靠通信的进程集合)的协议,如 UniformVoting,顺序化会在每轮开始时猜测内核中的进程,并确保它们之间的消息传递。
以下是两个重要的过程代码:
1: procedure deliverfn(round)
2:
for r = 1 to n do
3:
senders = pick(n −f, P)
4:
for s = 1 to n do
5:
if ps ∈senders then
6:
mboxround(pr) += ps.send[pr]
7:
else
8:
mboxround(pr) += (∗)ps.send[pr]
1: procedure kernel(round)
2:
kernel = pick(1, P)
3:
for s = 1 to n do
4:
for r = 1 to n do
5:
if ps ∈kernel then
6:
mboxround(pr) += ps.send[pr]
7:
else
8:
mboxround(pr) += (∗)ps.send[pr]
</
超级会员免费看
订阅专栏 解锁全文
34

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



