您的位置:首页 > 数据库 > Mongodb

MongoDB中的一致性总结

2016-06-17 20:48 435 查看
根据Write Concern, Read Concern和Read Preference, MongoDB可以有多种不同的一致性。下面是我总结的内容,如有不对的地方,请帮忙指正。

Write ConcernRead ConcernRead PreferenceEventual ConsistencyMonotonic ReadMonotonic WriteRead Your WritesWrite Follow Read
w:majoritymajorityprimaryYesYesYesYesYes
w:majoritymajoritysecondaryYesNo[1]YesNoYes
w:majoritylocalprimaryNo[2]No[2]YesYes[3]No[2]
w:majoritylocalsecondaryNo[2]No[1][2]YesNoNo[2]
w:N<majority j:truemajorityprimaryYesYesNo[5]No[4]Yes[6]
w:N<majority j:truemajoritysecondaryYesNo[1]No[5]NoYes[6]
w:N<majority j:truelocalprimaryNo[2]No[2]No[5]No[5]No[2]
w:N<majority j:truelocalsecondaryNo[2]No[1][2]No[5]NoNo[2]
w:N<majority j:falsemajorityprimaryYesYesNo[5]No[4]Yes[6]
w:N<majority j:falsemajoritysecondaryYesNo[1]No[5]NoYes[6]
w:N<majority j:falselocalprimaryNo[2]No[2]No[5]No[5]No[2]
w:N<majority j:falselocalsecondaryNo[2]No[1][2]No[5]NoNo[2]
w:0 j:falsemajorityprimaryYesYesNo[5]No[5]Yes[6]
w:0 j:falsemajoritysecondaryYesNo[1]No[5]No[5]Yes[6]
w:0 j:falselocalprimaryNo[2]No[2]No[5]No[4]No[2]
w:0 j:falselocalsecondaryNo[2]No[1][2]No[5]NoNo[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。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb