假设您有一个三节点副本集。节点1是主要的。节点2是次要的,节点3是延迟10秒的次要运行。所有对数据库的写操作都是以w = majority和j = 1来发布的(我们的意思是getLastError调用具有这些值)。Mongodb在副本集中回滚
写入操作(可能是插入或更新)是从应用程序在时间= 0开始的。在时间= 5秒时,主节点1下降一小时,另一个节点被选为主节点。
节点1恢复时会有数据回滚吗?选择最佳答案。
- 始终是
- 始终没有
- 也许,这取决于节点3是否已经处理了写。
- 也许,这取决于节点2是否处理了写入。
任何帮助将不胜感激。
5.取决于什么其他写你已经打算和节点1个节点2 – Sammaye
感谢之间的复制滞后sammaye ....这可能是4个选项中选择最佳答案? –
没有延迟的单次写操作我会去2,那么操作应该在故障转移时被复制到新的主服务器上,特别是当我在第一个评论中没有看到w =多数时,应该意味着2/3的成员应该确认写入,并且由于节点3被延迟,所以它不应该在那里确认它。 – Sammaye