2022年CAP理论与分布式数据库 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年CAP理论与分布式数据库 .pdf》由会员分享,可在线阅读,更多相关《2022年CAP理论与分布式数据库 .pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、根据 CAP 理论,一致性 (C),可用性 (A) ,分区容错性 (P),三者不可兼得,必须有所取舍。而传统数据库保证了强一致性 (ACID 模型 )和高可用性, 所以要想实现一个分布式数据库集群非常困难,这也解释了为什么数据库的扩展能力十分有限。而近年来不断发展壮大的NoSQL 运动,就是通过牺牲强一致性,采用BASE 模型,用最终一致性的思想来设计分布式系统,从而使得系统可以达到很高的可用性和扩展性。但是,对于CAP 理论也有一些不同的声音,数据库大师Michael Stonebraker 就撰文 Errors in Database Systems, Eventual Consisten
2、cy, and the CAP Theorem ,表示为了P 而牺牲 C 是不可取的。事实上,数据库系统最大的优势就对一致性的保证,如果我们放弃了一致性,也许NoSQL 比数据库更有优势。那么,有没有可能实现一套分布式数据库集群,即保证可用性和一致性,又可以提供很好的扩展能力呢?回答是:有的。目前,有很多分布式数据库的产品,但是绝大部分是面向DSS 类型的应用,因为相比较OLTP 应用, DSS 应用更容易做到分布式扩展。Michael Stonebraker 提到了一种新型的数据库 VoltDB ,它的定义是Next-Generation SQL Database for Fast-Scal
3、ing OLTP Applications。虽然产品还没有问世,但是从技术资料上来看,它有几个特点:1.采用 Share nothing 架构,将物理服务器划分为以CPU core 为单位的Virtual node,采用Sharding 技术,将数据自动分布到不同的Virtual node ,最大限度的利用机器的计算资源;2.采用内存数据访问技术,类似于内存数据库(In-memory database),区别于传统的数据库(Disk-based database),消除了传统数据库内存管理的开销,而且响应速度非常快;3.每个 Virtual node 上的操作是自治的,利用队列技术将并发访问变
4、为串行访问,消除了传统数据库串行控制的开销(比如 Latch 和 Lock) ;4.数据同步写多个副本,不存在单点故障, 而且消除了传统数据库需要记录redo log 的开销。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - VoltDB 与传统数据库的对比,可以看到VoltDB 即支持传统数据库的ACID 模型,又提供了类似 NoSQL 产品很高的扩展能力。这个产品,让我想到了MySQL cluster,同样是shared-no
5、thing 架构, NDB 存储引擎也要求将数据存放在内存中,数据根据PK 被分布到多个不同的节点上,同一份数据可以保存多个副本,防止单点故障。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - MySQL cluster 目前的主要问题是性能不佳,但是我认为MySQL cluster 的架构是分布式数据库未来的趋势,Oracle 收购 MySQL 后,很多人对MySQL 的前途表示担忧,而我作为一个用户,除了可能会收费这件事以外,
6、我一点也不担心MySQL 的前景,反而有所期待,因为在数据库领域没有任何一个公司比Oracle 更懂数据库, 而 Oracle 也正在大力发展MySQL cluster,MySQL cluster 一定会成为分布式数据库领域内最好的解决方案之一。NoSQL 数据库异军突起,随着Digg和 大型应用不断采取NoSQL,NoSQL 运动已经蓬勃发展,NoSQL 数据库很多,如何对他们分类,以便方便地根据自己应用特色选择不同的 NoSQL数据库呢?NoSQL = HVSP 无( 传统关系数据库的)join或明显 事务 的高容量简单处理。按照数据模型保存性质将当前NoSQL分为四种:1.Key-val
7、ue stores键值存储, 保存keys+BLOBs ( 二进制大对象Binary Large OBjects) 2.Table-oriented 面向表 , 主要有 Google的 BigT able 和 Cassandra. 3.Document-oriented面向文本 , 文本是一种类似XML 文档, MongoDB 和 CouchDB 4.Graph-oriented 面向图论 . 如 Neo4J. NoSQL一般都是分布式数据库,高性能是其特点,因此,数据是如何被分布、复制/碎片以及合成就成为关键,这其中涉及你的应用对数据一致性的要求,见CAP 原理 ,不同一致性处理方式决定不同
8、类型:1. 基本上基于Dynamo. 核心思想就是在多个节点之间获得最终一致性 就可以,即使你有时会读到脏数据. 好处是写数据时从来不会阻塞。那种强制性节点一致性,如2PC ,两段 事务提交将会让你的写关闭停顿,使用 Dynamo-like风格你能将数据写到多个节点中,通过一致 hashing,然后你可以从这些节点读取数据,返回正确结果给用户。2. 基本基于BigT able. 这种模型中,使用常用方式保持节点充分的一致性。比如同步复制,由数据自己活或数据所在位置来实现一致性,不同产品实现细节不一样。比如: MongoDB有一个面向文本类型的数据模型, 它采取类似BigTable-like 复
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年CAP理论与分布式数据库 2022 CAP 理论 分布式 数据库
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内