关于 OceanBase 集群中 Paxos 协议的多数派(Majority)配置,以下描述正确的是?
A. 一个分区副本的多数派大小固定为 floor(N/2)+1 (N 为副本总数),即使后续通过 ALTER SYSTEM 增减副本,多数派阈值也会自动重新计算。
B. 当集群从 3 副本扩容为 5 副本后,每个分区的多数派大小会从 2 自动变为 3,但需要手动执行 ALTER SYSTEM REBUILD 命令才会触发重新配置。
C. OceanBase 的 Paxos 多数派支持“动态成员变更”,在扩缩容过程中,旧多数派与新多数派会短暂共存,不影响现有事务的正常提交。
D. 如果集群中 3 个 Zone 分布在两地(如 Zone1、Zone2 在同城,Zone3 在异地),为保证同城故障时服务不中断,必须将多数派大小设置为大于同城副本数的值,且该值一经设定无法修改。
解析 :
OceanBase 基于 Paxos 实现了动态成员变更,在增加或删除副本时,不会中断正在进行的 Paxos 日志提交。变更期间,新旧多数派集合会同时生效(即使用“联合共识”或过渡机制),保证系统在任意时刻都有明确的多数派判定规则,从而避免脑裂和数据不一致。
-
A 错误 :多数派阈值确实为
floor(N/2)+1 ,但在线扩缩容过程中 不会立即全局自动重新计算 ,而是通过成员变更协议平滑过渡。常态下系统会自动维护正确的多数派定义,无需人工干预,但选项 A 描述的“扩容后自动重新计算”过于简化,实际是渐进式的。
-
B 错误 :多数派的重新配置无需手动执行
ALTER SYSTEM REBUILD ,系统会自动完成成员变更协议。
-
C 正确 :动态成员变更期间,新旧多数派会短暂共存(通常称为“联合多数派”),确保任何时候都有可用的多数派来提交日志。
-
D 错误 :OceanBase 支持修改副本分布策略,多数派大小由当前副本数自动决定,无需手动固定 。同时可以通过
PRIMARY_ZONE 和 ZONE_PRIORITY 等参数控制故障切换行为,但“多数派大小必须大于同城副本数”并不是强制约束,一般建议同城副本数不超过多数派阈值(例如 5 副本中,同城 3 副本,多数派为 3,同城仍能形成多数派)。
1 个赞