NoSQL入门级资料整理(CAP原理、最终一致性)(3) - 图文
更新时间:2023-10-12 11:15:01 阅读量: 综合文库 文档下载
- nosql数据库入门推荐度:
- 相关推荐
传统关系型数据库面临的挑战
??High Performance——对数据库高并发读写的需求 ??Huge Storage——对海量数据的高效率存储的需求
??High Scalability & High Availablity——对数据库的高可扩展性和高可用性的需求。
对于当前的很多网站来说,关系数据库的很多主要特性往往无用武之地,例如: ??数据库事务一致性需求
很多系统并不要求严格的数据库事务,对读一致性的要求很低,因此数据库事务管理成了数据库高负载下一个沉重的负担。 ??数据库的实时性需求
对关系型数据库来说,插入一条数据后立刻查询,是肯定可以读出来这条数据的,但是对于很多Web应用而言,并不要求这么高的实时性,比方说我发一条微博之后,过几秒乃至十几秒后,别人才提示有新微博,这是完全可以的。 ??对复杂的SQL查询,特别是多表关联查询的需求
大数据量的Web系统,非常忌讳多个大表的关联查询,以及复杂的数据分析类型的SQL报表查询,特别是SNS类型的网站,从需求以及产品设计角度,就避免这种情况的产生。往往更多的只是单表的主键查询,以及单表的简单条件分布查询,SQL的功能被极大地弱化了。
什么是NoSQL
现在一般认为NoSQL全称是Not Only SQL,是一种不同于关系型数据库的数据库管理系统设计方式。对NoSQL最普遍的解释是“非关系型的”,强调Key-Value Stores和文档数据库的优点,而不是单纯的反对RDBMS。
NoSQL的理论基础
CAP,BASE和最终一致性是NoSQL数据库存在的三大基石。
ACID vs. BASE
ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
(这张PPT是Brewer教授在PODC大会上用的PPT。)
BASE内容:
??Basically Availble——基本可用
??Soft-state ——软状态/柔性事务,状态可以有一段时间不同步 ??Eventual Consistency ——最终一致性
CAP原理
分布式系统中,有三种重要的属性,分别是:
??一致性(Consistency):任何一个读操作总是能读取到之前完成的写操作结果,也就是在
分布式环境中,多点的数据是一致的。
??可用性(Availability):每一个操作总是能够在确定的时间内返回,也就是系统随时都是
可用的。
??分区容忍性(Tolerance of network Partition):在出现网络分区(比如断网)的情况下,
分离的系统也能正常运行。
CAP原理的意思是,一个分布式系统不能同时满足一致性,可用性和分区容错性这三个需求,最多只能同时满足两个。
注意:可用性与分区容忍性在一些情况下很容易混淆。举个例子,假设系统中有若干个节点宕机了,系统仍然能正常运行,那么应该说是系统的可用性高还是分区容忍性高呢?个人的理解是,这种应该理解为系统的分区容忍性高。因为若干个节点宕机,可以理解为这几个节点与其它正常的节点失去联系了,也就是出现了网络分区,按照定义,这属于分区容忍性的范畴。那么可用性是什么?个人的理解可用性更多强调的是,系统对于读写操作的反应快慢,反应越快,可用性越高。
CAP原理是由美国著名科学家,Berkerly大学Brewer教授提出的。后来麻省理工学院的两位科学家证明了CAP原理的正确性。虽然在后来近十年的时间很多人对CAP原理出了很多异议,但是在NoSQL的世界中,它还是非常有参考价值的。
一致性or可用性,鱼和熊掌不可得兼
下面是一个牺牲一致性换取可用性的小例子。
假设N1和N2是分布式环境下的两个节点,它们有保存了共同的数据V,它们的值都是V0,A和B是两个分别对数据进行操作的进程。我们看看这么一个过程:A向N1节点写入了新的V值V1,B读取V的值。
如果一切正常的话,这个过程看起来像是这样的:
(1) A写入V的新值V1。
(2) N1向N2发送消息M以更新V值。 (3) B读取V的新值V2。
但是现实可能是这样子的:
由于网络分区,N1发向N2的消息很有可能没送达,那么,B节点将读取到一个过时的V值,不一致性产生了。并且当把节点的规模不断扩大的时候,不一致性问题也会更加严重。 所以如果我们希望A B都是高可用的(也就是低延迟),那么一致性通常就不能得到很好的保证,我们必须要容忍一定的不一致性以换取高可用性。
从客户端角度看一致性
有很多种客户端一致性模型: 强一致性:读取到的数据总是最新的。 弱一致性:读取到的数据不一定是最新的。
最终一致性:属于弱一致性,不同的是,最终一致性的系统会在后台异步地更新所有的备份,所以最终所有的备份都会是最新的数据。 最终一致性有一些比较重要的变种,例如:
因果一致性:如果进程A更新了某数据,并通知进程B,那么进程B接下来的读操作将一定会读取到最新的数据,写操作一定能覆盖之前的数据。而另一与进程A无关的进程C则服从最终一致性的情况。
“读己之所写”一致性:客户端可以立即看到自己所作的更新,但不能立即看到其他客户端的更新。
会话一致性:对于客户端在一同会话作用域中发起的请求,提供“读己之所写”一致性。
正在阅读:
NoSQL入门级资料整理(CAP原理、最终一致性)(3) - 图文10-12
2011年中考英语模拟题 - 图文06-13
大学中庸(学生用书)5 最新版 - 图文01-11
2009福建省“保护生命 平安出行”交通安全宣传教育工程活动大纲06-12
以隐形的翅膀为题的初中作文5篇03-29
通信原理(虚拟仿真实验)04-15
成飞集团组织优化108-26
神河建管处监理工作管理办法05-19
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 一致性
- 入门
- 原理
- 整理
- 最终
- 图文
- 资料
- NoSQL
- CAP
- 2012年1月广东省高等教育自学考试 - - - - 现代公司管理 - - 试题及答案
- 10级专科《会计学原理模拟实习》复习资料
- 校园原创音乐大赛
- 严格遵守换届纪律承诺书2
- 企业物流讨论案例――运输价格概要
- 2016春古河初中课堂教学竞赛活动方案
- 心理学小抄版
- 2016年吉林省高低压电器装配工岗位考试试卷
- 幼儿园教师个人三年发展规划(6篇)
- XXX街道关于组织开展典型案例大讨论活动的情况报告
- Unit 1 练习答案新世纪大学英语综合教程
- 拓展教练培训班报名
- 行为金融学的发展及相关决策特征终稿
- 我认识的报关与国际货运专业
- 2016继续教育建设美丽中国答案86分
- 高中语文 成长岁月中,我多了一份理解作文素材
- 关于开展学校安全大检查的通知(1)
- 沉默螺旋的案例
- 五年级上数学每天一练(简便计算、应用题)
- 钢管塔设计施工标准