

























这篇讨论围绕一篇把 Raft 从“必须多数派”里抽出来的博文展开,博文用 finite projective plane(有限射影平面)和 Fano plane(Fano 平面)说明:只要 quorum family 设计得当,少数节点也可能满足安全交集条件。Raft 和 Paxos 传统上依赖多数派 quorum,因此大家通常把“至少半数以上”当成默认前提,但 quorum systems(法定人数系统)研究更早,早在 70 年代就已有 weighted voting 等方案。评论把它和 Heidi Howard 的 Flexible Paxos / Relaxed Paxos 联系起来,指出这些工作早已表明 quorum 不必固定为简单多数,只是关注点不同。争议集中在工程可用性:这种构造对分区形态、可选 quorum 的稀缺性以及故障恢复后的外部副作用都很敏感。
有人指出,这类想法并不新,Heidi Howard 的 Flexible Paxos、Relaxed Paxos 以及她关于 distributed consensus 的论文早就讨论过 quorum 设计的放宽。另一位评论则强调,两者其实在说不同的事:Howard 研究的是把 quorum intersection 分散到不同 phase,而这篇文章是在说明标准 quorum intersection 不一定非得靠多数,而可以借助 algebraic/geometric 结构。还有人把时间线往前追到 70 年代/80 年代,提到 Gifford 和 Thomas 的工作,以及更早的 quorum systems 研究。整体上,这一组评论把文章定位成“有趣但偏数学”的观察,而不是全新理论。
这组评论围绕 Raft/Paxos 的安全性核心展开:关键不是“多数”这个词本身,而是任意两个合法 quorum 必须有交集,这样前一个状态的信息才能传到后一个状态。评论者进一步指出,不能让两个彼此独立的“多数”同时成立,否则网络一旦分裂,每一边都可能自认为有权推进,从而形成 split-brain。有人把 quorum 重新解释成 trust structure:重点是让没有交集的分区无法获得权威,而不是死盯着节点数量。也有评论把这一点概括成“多数只是最简单、最常见的 quorum 形式”。
不少评论认为,这篇文章更像思想实验而非可直接落地的 Raft 方案,因为它明确承认“活着的多数节点”并不总能推进。评论者担心的一个现实问题是,满足条件的 subset 可能非常稀少:即便 100 个节点里有 99 个在线,如果选择 bloc 的方式太天真,仍然可能凑不出可用 quorum。另一些人则指出,就算你能在故障后做 healing/merge,也不能因此觉得 consensus 不重要,因为已提交的操作往往会影响数据库之外的系统,比如支付、发货或外部 API。由此,数学上可行不等于工程上划算。
还有一条担忧是网络模型过于理想化。有人问这种方法如何处理 asymmetric partitions,也就是链路不是整齐地一刀切断,而是 A 能和 B 通、B 能和 C 通,但 A 和 C 彼此不可达。评论里进一步澄清,现实网络常出现单向收发异常、非对称连通和“不干净”的分裂,而 Fano plane 之类的数学构造通常默认更整齐的切分。这个提醒的意思是:证明里的交集性质很漂亮,但它未必能覆盖真实集群里最棘手的故障形态。
quorum system(法定人数系统): 一组投票集合设计,只要任意两个合法集合满足特定交集条件,就能保证一致性与安全。
finite projective plane / Fano plane(有限射影平面 / Fano 平面): 一种组合几何结构,任何两条“线”都会相交;Fano plane 是最小的例子,常被用来构造非多数 quorum。
split-brain(分裂脑): 集群分裂后两边都自认为是合法主节点/领导者的状态,容易导致冲突写入。
weighted voting(加权投票): 给不同节点分配不同票重的 quorum 机制,不要求所有节点权重都相同。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。