在成员变更过程中, 例如上面需要将DC-1中的 a 节点迁移到 d 节点, 中间状态 DC-1 有 ad 2个节点....而在节点数是 偶数 的时候, majority 没有能力描述系统最大的 quorum 集合.
majority 是 Raft 设计上的第一个不足....但是, 你品, 你细品…
品完后笔者一拍大腿: 这个修正实际上就是将单步变更升级成了joint consensus, 本质上都变成了: 一条变更在旧的配置中必须通过quorum互斥, 只能有1个变更被认为是...由此导致的结果就是, 为了保证正确性, 单步变更必须使用跟joint consensus 几乎同样复杂的逻辑, 实现2步变更的逻辑, 而执行效率上, 没有任何优势....东旭也表示 TiDB 下一步就会将单步变更升级为joint consensus, 彻底解决单步变更带来的可用性问题以及工程实现上的麻烦.