关于Mongodb RC的思考
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Mongodb RC的思考相关的知识,希望对你有一定的参考价值。
Mongodb Oplog 和 Journal log 的关系与执行顺序
就关系来说,op log实际上与数据是一致的概念。
但在有 RC的时候,执行顺序
w j 的设置
如果不设置 j ,则默认是100ms刷盘。
单机
如果宕机,最大丢失100ms的数据
RC
其实没多大关系,只要op log 写成功即可
设置w 的个数, 按照NRW原则,如果出现数据丢失的情况应该是喝水塞牙缝的概率,应该是 主宕机概率*从1宕机概率*...*从w(n)宕机概率
但在这里会有一个问题,场景是
主宕机,未设置 j
如果 op log 已同步,则该数据有效
如果 op log 未同步,数据无效
实际上和 j 无关, j 有用的地方在于 主重启后的数据恢复,所以可以将主的 j 设为 false ,让它自动刷盘,但将从的 j 设为 true ,可增加一些单点写的效率
当仍会有数据不一致的情况,在主宕机期间,从升级为新主,并增加一些数据,如果旧主重启,旧主发现自己有些数据是未同步的,则会回滚该数据。
并将回滚的数据保存至 dbpath/rollback下(好像是这个目录)
其实相对于 mysql 的主从,我们应该是不知道有多少数据不同步,处理的情况相对要简单一些
以上是关于关于Mongodb RC的思考的主要内容,如果未能解决你的问题,请参考以下文章
centos7下安装mongodb以及通过rc.local设置自启动
centos7下安装mongodb以及通过rc.local设置自启动