免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1452 | 回复: 0
打印 上一主题 下一主题

[MongoDB] 网络分区引发的 oplog 乱序问题 [复制链接]

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-09-08 22:50 |只看该作者 |倒序浏览
OplogOutOfOrder problem

线上一个Secondary节点crash,错误原因是出现了 OplogOutOfOrder 错误,也就是说Secondary 重放了一条比『已经重放过最新的 oplog』更早的操作,经过分析,发现问题是因网络分区导致出现2个 Primary 的问题导致,详细的过程如下表分析。

说明:Node2、Node1、Node0分别是优先级为2、1、0的复制集成员。

TIMESTAMPNODE2NODE1NODE0NOTES
t1PrimarySecondarySecondaryNode2被选为主
t2Primary write ASeconary sync ASecondary sync ANode2上写入A,并同步到 Node1、Node0
t3Primary write BSecondarySecondaryNode2上写入 B,但未同步到 Node1、Node0
t4PrimarySecondarySecondaryNode2网络与 Node1、Node0隔离,发生新的选举
t5PrimaryPrimarySecondaryNode1被选为主
t6PrimaryPrimary WRITE CSecondary SYNC CNode1上写入 C,同步到 Node0
t7PrimaryPrimary WRITE DSecondary SYNC DNode1上写入 D,同步到 Node0
t8Primary Write EPrimarySecondaryNode2上写入 E, a实际上是一个耗时很长的建索引操作结束
t9SecondaryPrimarySecondarynetwork recovered, Node1发现 Node2的选举时间戳更早,请求Node2降级
t10SecondarySecondarySecondaryNode1发现 Node2优先级更高,并且oplog 足够,主动降级
t11PrimarySecondarySecondaryNode2赢得新的选举
t12PriamrySecondarySecondaryNode1 Node0 从 Node2同步,先回滚 C D
t13PrimarySecondarySecondaryNode1从 Node2 同步 B E
t14PrimarySecondarySecondaryNode0从 Node2 同步 B E ,因为 Node0已经同步过 C D,时间戳比 B 更新,触发oplogOutOfOrder 错误 crash

上述问题也提给了MongoDB 官方团队,参考https://jira.mongodb.org/browse/SERVER-25838,这个问题在『3.0及以前的版本』或『使用 protocol version 为0的3.2版本』都有可能发生,但几率很小,使用 MongoDB 的同学不用担心,我们也是因为MongoDB云数据库 用户比较多,才触发了一例;MongoDB 3.2引入了 raft 协议,避免了上述场景发生,遇到类似问题的用户可以升级到 MongoDB-3.2,并使用复制集协议protocoal version 1


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP