MongoDB中的一致性总结
2016-06-17 20:48
435 查看
根据Write Concern, Read Concern和Read Preference, MongoDB可以有多种不同的一致性。下面是我总结的内容,如有不对的地方,请帮忙指正。
[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。
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] |
[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。
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- 如何在 Fedora 上安装 MongoDB 服务器
- PHP添加yaf xhprof mongodb 同理
- mongodb安装
- 如何在 Ubuntu 上安装 MongoDB
- 信息安全聚合 Sec-News 的重构之路
- perl操作MongoDB报错undefined symbol: HeUTF8解决方法
- C#中使用1.7版本驱动操作MongoDB简单例子
- 使用zabbix监控mongodb的方法
- Node.js的MongoDB驱动Mongoose基本使用教程
- MongoDB系列教程(四):设置用户访问权限
- node.js连接mongoDB数据库 快速搭建自己的web服务
- php实现的mongodb操作类实例
- 解决mongodb在ubuntu下启动失败,提示couldn‘t remove fs lock errno:9 Bad file descriptor的错误
- 在PostgreSQL的基础上创建一个MongoDB的副本的教程
- 关于mongoose连接mongodb重复访问报错的解决办法
- java操作mongodb示例分享
- php对mongodb的扩展(初出茅庐)
- 作为PHP程序员应该了解MongoDB的五件事
- 基于MySQL到MongoDB简易对照表的详解