分布式系统中的共识算法:随机化与拜占庭容错
在分布式系统中,共识算法是确保多个进程达成一致决策的关键机制。本文将深入探讨几种常见的共识算法,包括随机化二进制共识算法、大域随机化共识算法以及拜占庭共识算法。
1. 通用硬币抽象
通用硬币抽象是分布式系统中常用的工具,可通过本地计算或分布式算法实现。以下是两种常见的实现方式:
- 独立选择硬币 :每个进程在释放硬币时,根据均匀分布从集合 B 中随机选择一个值并输出。如果域为一位,则实现了一个 2−N+1 匹配的通用硬币,因为每个进程选择某个 b 的概率为 2−N,其中 b ∈{0, 1}。
- 信标硬币 :一个外部可信进程(信标)定期选择一个不可预测的随机值,并在预定时间广播。当算法访问一系列通用硬币抽象时,每个进程接收信标发送的第 k 个随机值并输出。这种硬币总是匹配,但在异步系统中很难集成到分布式算法中。
2. 随机化二进制共识算法
随机化二进制共识算法依赖于多数正确进程来推进,并使用通用硬币抽象来终止和达成一致。算法在顺序轮次中运行,每个轮次包括两个阶段:
第一阶段 :
# 算法 5.12:随机化二进制共识(第一阶段)
Implements:
RandomizedConsensus, instance rc, with domain {0, 1}.
Uses:
BestEffortBroadcast, instance beb;
ReliableBr
超级会员免费看
订阅专栏 解锁全文
2051

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



