【发布时间】:2020-10-19 08:14:44
【问题描述】:
当客户端以副本集模式写入服务器时,以这种情况为例:
- 成功写入和确认
- 失败和错误。
如果 1. 发生但紧接着主节点出现故障 - 在将数据发送到辅助节点之前,会有麻烦。当返回时,它会回滚,虽然客户端得到了确认,但数据被解除了。
问题
- 为什么当主节点返回时它会回滚而不是将数据发送到其余节点?这是因为选举而发生的吗?而如果选举的结果是同一个节点呢?
猜想:服务器宕机,触发选举,发生不同的服务器。当它赶上新的primary时,写的消息不在oplog中,我猜他们继续使用不同的oplog?
我知道我们可以使用多数来改变这种行为,但想了解为什么会发生这种回滚。
有什么想法吗?
【问题讨论】:
标签: mongodb