本文接上面两篇分析replset模式的文章,来看看replset的状态转换图.看不到全图的请看这里:
replication replset状态转换图
本图中某些部分并未画到.
1. 服务器进入RS_SHUNNING状态后如果配置更改后其会再次进入RS_SECONDARY等状态.
2. 心跳协议无法连接时是自己端将远端服务器标识为RS_DOWN,远端服务器处于什么状态是
未知的,后面能够连接时这个状态将改变,RS_UNKNOWN同理.
3. 这里的维护指的是通过命令replSetMaintenance设置的模式,调用compact,repairdatabase,touch
命令将会首先将服务器设置为维护模式,执行完毕后再维护模式关闭.
4. 进入fatal状态的服务器也只能通过reconfig再次进入正常状态.
5. 过时指的是当前sync对象的最旧操作日志比自己端最新的操作日志还要老.
6. secondary到primary转变时优先级最高才会有投票过半.
7. 配置变更后服务进程自己不在新的配置中,则关闭所有socket进入shunning状态.
注意:这个图只是我学习mongodb replset画的,水平有限,可能存在错误或者我理解不清楚的地
方,仅供参考.
原文链接: mongodb源码分析(十七)replication replset状态转换图
作者: yhjj0108,杨浩