文档菜单
文档首页
/
MongoDB 手册
/ / /

自助管理副本集协议版本

MongoDB仅支持副本集协议版本1(pv1)。 pv1 是所有新副本集的默认设置。

使用 pv1,您可以使用 catchUpTimeoutMillis 在更快的故障转移和保留 w:1 写入之间进行优先级选择。

pv1 保证保留已确认的 w: "majority" 写入。

pv1 在MongoDB 3.2或更高版本中可用,且是所有新副本集的默认设置。

pv1 不使用否决权。个别成员可以投票支持或反对特定选举中的候选人,但不能单方面否决(中止)选举。

在一些情况下,复制集中的两个节点可能会临时认为自己是主节点,但最多只有一个节点能够使用 { w: "majority" } 写关注度完成写入。能够完成 { w: "majority" } 写入的节点是当前主节点,另一个节点是一个尚未承认降级的旧主节点,通常是由于 网络分区。当这种情况发生时,连接到旧主节点的客户端可能会观察到过时的数据,即使它们请求了 primary 读取偏好,旧主节点的新的写入最终会回滚。

pv1 使用了 term 的概念。这允许更快地检测到同时存在的主节点,并在短时间内进行多次成功的选举。

pv1 会尽力使具有最高 priority 的二级节点调用选举。这可能导致连续的选举,因为具有更高优先级的合格成员可以调用选举。

然而,对于 pv1

  • 优先级选举已被限制只有在较高优先级的节点距离当前主节点10秒以内时才会发生。

  • 如果仲裁者检测到候选者的优先级等于或高于健康主节点的优先级,它将在选举中投反对票。

pv1 通过使用术语防止单个成员在选举中的重复投票。

返回

配置