MongoDB中的一致性总结

根据Write Concern, Read Concern和Read Preference, MongoDB可以有多种不同的一致性。下面是我总结的内容,如有不对的地方,请帮忙指正。

Write Concern Read Concern Read Preference Eventual Consistency Monotonic Read Monotonic Write Read Your Writes Write Follow Read
w:majority majority primary Yes Yes Yes Yes Yes
w:majority majority secondary Yes No[1] Yes No Yes
w:majority local primary No[2] No[2] Yes Yes[3] No[2]
w:majority local secondary No[2] No[1][2] Yes No No[2]
w:N<majority j:true majority primary Yes Yes No[5] No[4] Yes[6]
w:N<majority j:true majority secondary Yes No[1] No[5] No Yes[6]
w:N<majority j:true local primary No[2] No[2] No[5] No[5] No[2]
w:N<majority j:true local secondary No[2] No[1][2] No[5] No No[2]
w:N<majority j:false majority primary Yes Yes No[5] No[4] Yes[6]
w:N<majority j:false majority secondary Yes No[1] No[5] No Yes[6]
w:N<majority j:false local primary No[2] No[2] No[5] No[5] No[2]
w:N<majority j:false local secondary No[2] No[1][2] No[5] No No[2]
w:0 j:false majority primary Yes Yes No[5] No[5] Yes[6]
w:0 j:false majority secondary Yes No[1] No[5] No[5] Yes[6]
w:0 j:false local primary No[2] No[2] No[5] No[4] No[2]
w:0 j:false local secondary No[2] No[1][2] No[5] No
No[2]


[1] 读到的数据可能来自不同的MongoDB服务器节点。第二次读得数据副本可能比第一次的旧。
[2] 因为Read Concern是local, 所以读到的数据可能会rollback。
[3] 因为Read Concern是local, 所以读到的数据可能会rollback。但这应该不影响Read-Your-Writes一致性。
[4] 因为w小于majority, 所以写不是传播到majority服务器节点才返回。 这样读到的数据可能不是你写的。
[5] 因为w小于majority, 所以写的数据可能会rollback。
[6] 因为w小于majority, 所以写的数据可能会rollback. 但这应该不影响Write-Follow-Read。 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值