假设您有一个三节点副本集.节点1是主要的.节点2是辅助节点,节点3是辅助运行,延迟为10秒.对数据库的所有写操作都是以w = most和j = 1发出的(我们的意思是getLastError调用设置了这些值).
在时间= 0时从您的应用程序启动写入操作(可以是插入或更新).在时间= 5秒时,主节点1关闭一小时,另一个节点被选为主节点.
节点1重新启动时是否会回滚数据?选择最佳答案.
任何帮助将不胜感激.
我打算将我的答案改为4,但是aw =多数应该是2.你可以有一个边缘情况,wtimeout在这种情况下返回一个操作,并且操作没有得到大部分集合的影响.这些问题应该非常罕见或几乎不会发生,但要记住一些事情.
由于大多数节点(1和2)将响应写入,如果节点1发生故障,节点2应该具有其操作并且达到速度,因为节点1不应该回滚到节点2的状态; 相反,节点1将迎头赶上.
Journal对于定义是否存在回滚并不重要.