NoSQL数据库:数据的一致性
2015-08-07 12:51
316 查看
NoSQL数据库:数据的一致性
读取一致性
强一致性在任何时间访问集群中任一结点,得到的数据结果一致;
用户一致性 对同一用户,访问集群期间得到的数据一致;
解决用户一致性:使用粘性会话,将会话绑定到特定结点来处理;
这样会降低负载均衡器的性能;
最终一致性
集群中各结点间由于数据同步不及时造成暂时的数据不一致,但数据同步完成后,最终具有一致性;
更新一致性
悲观方式使用写锁 大幅降低系统响应能力 可能导致死锁
乐观方式
先让冲突发生,再检测顺序 自动合并的处理方式极具“领域特定”问题
放宽“一致性约束”
CAP定理一致性(Consistency)、可用性(Availability)和分区耐受性(Partition tolerance),3个属性只可能同时满足2个;
分区耐受性的解释:集群因通信故障而划分为多个时仍然可用
CA系统
单服务器 集群中出现”分区“,就不可用
PA/PC
集群出现”分区“时,需要在”一致性“ 和“可用性”间权衡 一般会牺牲部分一致性(eg:使用最终一致性),保证可用性
放宽“持久性”约束
更严格的持久性,意味着更多的性能损失;牺牲“持久性”换取更好的性能
复制“持久性”故障
主节点故障,未同步到从节点的数据丢失 主节点恢复,故障期间更新的数据冲突 解决方案:针对单个请求指定其所需的持久性
附思维导图
![](http://blogcc.u.qiniudn.com/wp-content/uploads/2014/06/NoSQL_thumb4.png)
参考
《NoSQL精粹》Posted by: 大CC | 30JUN,2014
博客:blog.me115.com [订阅]
微博:新浪微博
相关文章推荐
- Oracle学习之DATAGUARD(四) 在同台机器上搭建DG
- Mongodb与Spring配合使用的例子
- MySQL Study之--MySQL Cluster(集群)构建
- 使用Mysql修改密码命令更改root的密码
- mysql中字符串的连接
- Mysql注入总结(二)
- Oracle的锁表与解锁
- sql XML操作(这是网上搜的,感谢整理的人。也留着以后万一用得着的时候)
- MySql删除和更新操作对性能有影响吗
- mysql rand()产生随机整数范围及方法
- Mysql注入总结(一)
- 修改mysql密码
- 未能加载文件或程序集“MySql.Web.v20, Version=6.9.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”或它的某一个依赖
- sqlplus的命令
- Oracle Recovery 01 - 常规恢复之完全恢复
- [转] 淘宝数据库分布式代理层TDDL剖析
- variable-precision SWAR算法解析
- 数据库表的创建、管理和数据操作(实验一)
- 启动mongodb报1067错误
- SQL语句(比较杂乱 没有经过整理)--不间断更新中、、、、、