OBCP 深度问答:三副本集群时钟偏移引发选举异常原理

集群开启时钟同步校验,服务器间时钟偏移超过阈值会直接禁止 Leader 选举,请说明底层原理;生产环境如何规避时钟漂移导致集群不可写?

时钟同步影响选举的底层原理

1. 选举模型是"依赖时钟同步"的方案

OceanBase 以分区为单位,多个全能副本(FULL)在一个选举周期内进行预投票 → 投票 → 计票广播 → 结束投票,最终选出唯一 Leader。选举成功后,各副本签订认定 Leader 的租约(Lease) 。Leader 在租约到期前不断发起连任,正常情况一直连任成功。

2. Paxos 选举协议检查消息时间差

选举过程中,副本间通过 RPC 传递投票消息。Paxos 协议会检查每条消息在发送端和接收端的时间差,并设置最大允许延迟:

表格

检查项 最大允许值
两节点间时钟偏差上限 100ms
RPC 延迟上限 200ms

当消息延迟超过上限时,该消息被判定为过期消息,被选举模块忽略。大量过期消息导致选举无法正常进行 → 无主或脑裂