Skip to content

模型Model

选主问题

施工中 · 内容逐步修订

Leader election

使所有正确进程最终一致输出同一唯一进程为领导者的分布式任务。

形式陈述 ​

选主任务要求在允许的执行中,最终恰有一个进程被选为 leader,所有正确进程对其身份一致,并通常要求被选身份合法。可解性依赖唯一标识、网络拓扑、同步性、故障和公平性;在完全对称匿名系统中,确定性算法可能无法破坏对称。选主可服务于共识,但本身不等同于对值达成共识,也不同于协议可反复查询的故障检测器 oracle。

直觉

选主规格通常同时包含唯一性与终止性:所有正确进程最终认可同一名合法进程,并在系统稳定后不再无限换主。困难不只是“找最大编号”,而是进程无法直接观察全局成员状态;超时只说明暂时没收到消息,可能是网络慢、对方崩溃或自身被隔离。唯一 ID、随机性、时序上界或故障检测器都是用来打破对称与不确定性的额外来源。

环上最大 ID 选主
例子与边界

有唯一 ID 的环上可比较 ID 选最大者;匿名对称环中无外部不对称时确定性选主不可能。故障检测器可帮助最终稳定到一个正确 leader,但短暂出现多个候选不一定违反最终选主规格。

在无故障、具有唯一 ID 且所有节点共同知道规模 n 的同步单向环上,每个进程每轮转发此前见过的最大 ID;经过 n−1 轮,每个节点都收到全部初始 ID 的影响,便可按这个已知界确认全局最大者。若不知道 n,某个最大 ID 绕环回到其所有者,只让这个候选者确认自己当选;还需把当选通知再传遍环,才能让其他进程也确认结果。收到一个暂时最大的 ID,不等于知道未见部分没有更大者。匿名环若所有节点初态、端口标号与调度完全对称,确定性算法会让所有节点始终采取相同动作,不可能恰选一个。崩溃模型中,暂时同时存在两个候选不必违反 eventual leader 规格,但若两者都能对外执行主权操作,就必须由任期、quorum 或 fencing token 阻止旧主产生有效写入。

推论与应用

消息传递系统中的选主依赖可区分的允许执行与进程身份。Ω只承诺某个未知时刻后,所有正确进程永久输出同一个正确标识;稳定前不同 oracle 输出并不直接违反其规格。选主任务则要由算法把输出解释为最终领导者,并规定合法身份与任务完成条件。

Raft把任期选举与日志新旧限制结合,主副本复制还需 quorum 或 fencing 阻止旧主继续产生有效写入。共同 leader 是协调工具,不会单独提供共识安全或日志提交证据。

Fencing令牌把前文旧主保护具体化为资源端的持久代际检查。新持有者收到授权并不会瞬间撤销网络中旧请求;资源必须先接受新代际,之后才能保证更旧操作被拒绝。检查、代际推进和资源修改还须原子绑定,同代重复则另由请求身份去重处理。

参考资料
  • Nancy A. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996,Chs. 1–25。
  • Michael J. Fischer, Nancy A. Lynch, and Michael S. Paterson, “Impossibility of Distributed Consensus with One Faulty Process,” Journal of the ACM 32(2), 1985,Full paper。
关系图谱12 个相邻概念 · 3 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系