您的位置:首页 > 数据库

NoSQL数据库:数据的一致性

2017-05-14 11:15 260 查看

NoSQL数据库:数据的一致性

读取一致性

强一致性

在不论什么时间訪问集群中任一结点,得到的数据结果一致;

用户一致性

对同一用户,訪问集群期间得到的数据一致;

解决用户一致性:使用粘性会话,将会话绑定到特定结点来处理;

这样会减少负载均衡器的性能;

终于一致性

集群中各结点间因为数据同步不及时造成临时的数据不一致,但数据同步完毕后,终于具有一致性;

更新一致性

悲观方式
使用写锁
大幅减少系统响应能力
可能导致死锁


乐观方式
先让冲突发生。再检測顺序
自己主动合并的处理方式极具“领域特定”问题


放宽“一致性约束”

CAP定理

一致性(Consistency)、可用性(Availability)和分区耐受性(Partition tolerance),3个属性仅仅可能同一时候满足2个;

分区耐受性的解释:集群因通信故障而划分为多个时仍然可用

CA系统
单server
集群中出现”分区“,就不可用


PA/PC
集群出现”分区“时,须要在”一致性“ 和“可用性”间权衡
通常会牺牲部分一致性(eg:使用终于一致性),保证可用性


放宽“持久性”约束

更严格的持久性。意味着很多其它的性能损失;

牺牲“持久性”换取更好的性能
复制“持久性”故障
主节点故障。未同步到从节点的数据丢失
主节点恢复,故障期间更新的数据冲突
解决方式:针对单个请求指定其所需的持久性


附思维导图





參考

《NoSQL精粹》

Posted by: 大CC | 02JUL,2014

博客:blog.me115.com [订阅]

微博:新浪微博
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: