zoukankan      html  css  js  c++  java
  • 关于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 的主从,我们应该是不知道有多少数据不同步,处理的情况相对要简单一些

     

  • 相关阅读:
    TCGA下载神器--TCGAbiolinks
    perl模块终极解决方案--转载
    Web前端优化
    关于CDN
    手写RateLimiter
    互联网高并发之限流
    互联网高并发之Hystrix实现服务隔离和降级
    关于Hystrix
    Apollo原理
    SpringBoot2.0之整合Apollo
  • 原文地址:https://www.cnblogs.com/dopeter/p/9725108.html
Copyright © 2011-2022 走看看