没有合适的资源?快使用搜索试试~ 我知道了~
分布式系统数据库系统原理(第三版)中的描述:“我们把分布式数据库定义为一群分布在计算机网络上、逻辑上相互关联的数据库。分布式数据库管理系统(分布式DBMS)则是支持管理分布式数据库的软件系统,它使得分布对于用户变得透明。有时,分布式数据库系统(DistributedDatabaseSystem,DDBS)用于表示分布式数据库和分布式DBMS这两者。”在以上表述中,“一群分布在网络上、逻辑上相互关联”是其要义。在物理上一群逻辑上相互关联的数据库可以分布式在一个或多个物理节点上。当然,主要还是应用在多个物理节点。这一方面是X86服务器性价比的提升有关,另一方面是因为互联网的发展带来了高并发和海量数
资源详情
资源评论
资源推荐
一文看懂分布式数据库原理和一文看懂分布式数据库原理和PostgreSQL分布式架构分布式架构
一、 什么是分布式数据库
分布式系统数据库系统原理(第三版)中的描述:“我们把分布式数据库定义为一群分布在计算机网络上、逻辑上相互关联的数据
库。分布式数据库管理系统(分布式DBMS)则是支持管理分布式数据库的软件系统,它使得分布对于用户变得透明。有时,分
布式数据库系统(Distributed Database System,DDBS)用于表示分布式数据库和分布式DBMS这两者。”
在以上表述中,“一群分布在网络上、逻辑上相互关联”是其要义。在物理上一群逻辑上相互关联的数据库可以分布式在一个或
多个物理节点上。当然,主要还是应用在多个物理节点。这一方面是X86服务器性价比的提升有关,另一方面是因为互联网的
发展带来了高并发和海量数据处理的需求,原来的单物理服务器节点不足以满足这个需求。
分布式不只是体现在数据库领域,也与分布式存储、分布式中间件、分布式网络有着很多关联。最终目的都是为了更好的服务
于业务需求的变更。从哲学意义上理解是一种生产力的提升。
二、 分布式数据库理论基础
1. CAP理论
首先,分布式数据库的技术理论是基于单节点关系数据库的基本特性的继承,主要涉及事务的ACID特性、事务日志的容灾恢
复性、数据冗余的高可用性几个要点。
其次,分布式数据的设计要遵循CAP定理,即:一个分布式系统不可能同时满足 一致性( Consistency ) 、可用性 ( Availability
) 、分区容 忍 性 ( Partition tolerance ) 这三个基本需求,最 多只能同时满足其中的两项, 分区容错性 是不能放弃的,因此架
构师通常是在可用性和一致性之间权衡。这里的权衡不是简单的完全抛弃,而是考虑业务情况作出的牺牲,或者用互联网的一
个术语“降级”来描述。
针对CAP理论,查阅了国外的相关文档表述,CAP理论来源于2002年麻省理工学院的Seth Gilbert和Nancy Lynch发表的关于
Brewer猜想的正式证明。
CAP 三个特性描述如下 :
一致性:确保分布式群集中的每个节点都返回相同的 、 最近 更新的数据 。一致性是指每个客户端具有相同的数据视图。有多
种类型的一致性模型 , CAP中的一致性是指线性化或顺序一致性,是强一致性。
可用性:每个非失败节点在合理的时间内返回所有读取和写入请求的响应。为了可用,网络分区两侧的每个节点必须能够在合
理的时间内做出响应。
分区容忍性:尽管存在网络分区,系统仍可继续运行并 保证 一致性。网络分区已成事实。保证分区容忍度的分布式系统可以
在分区修复后从分区进行适当的恢复。
原文主要观点有在强调CAP理论不能简单的理解为三选二。
在分布式数据库管理系统中,分区容忍性是必须的。网络分区和丢弃的消息已成事实,必须进行适当的处理。因此,系统设计
人员必须在一致性和可用性之间进行权衡 。简单地说,网络分区迫使设计人员选择完美的一致性或完美的可用性。在给定情
况下, 优秀 的分布式系统会根据业务对一致性和可用性需求的重要等级提供最佳的答案,但通常一致性需求等级会更高,也
是最有挑战的 。
2. BASE理论
基于CAP定理的权衡,演进出了 BASE理论 ,BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually
consistent(最终一致性)三个短语的缩写。BASE理论的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务
特点,采用适当的方式来使系统达到最终一致性。
BA:Basically Available 基本可用,分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。
s:soft State 软状态,允许系统存在中间状态,而该中间状态不会影响系统整体可用性。
E:Consistency 最终一致性,系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。
BASE 理论本质上是对 CAP 理论的延伸,是对 CAP 中 AP 方案的一个补充。
这里补充说明一下什么是强一致性:
Strict Consistency ( 强一致性 ) 也称为Atomic Consistency ( 原子一致性) 或 Linearizable Consistency(线性一致性) ,必须满
足以下 两个要求:
1、任何一次读都能读到某个数据的最近一次写的数据。
2、系统中的所有进程,看到的操作顺序,都和全局时钟下的顺序一致。
对于关系型数据库,要求更新过的数据能被后续的访问都能看到,这是强一致性。简言之,在任意时刻,所有节点中的数据是
一样的。
BASE 理论的最终一致性属于弱一致性。
接下来介绍另一个分布式数据库重要的概念:分布式事务。浏览了几篇介绍分布式事务的文章,发现会有不同的描述,但大致
含义是相同的。分布式事务首先是事务, 需要满足事务的ACID的特性。主要考虑业务访问处理的数据分散在网络间的多节点
上,对于分布式数据库系统而言, 在保证数据一致性的要求下,进行事务的分发、协同多节点完成业务请求。
多节点能否正常、顺利的协同作业完成事务是关键,它直接决定了访问数据的一致性和对请求响应的及时性。从而就需要科学
有效的一致性算法来支撑。
3. 一致性算法
目前主要的 一致性算法 包括 :2PC 、 3pc 、 paxos 、 Raft 。
2PC :Two-Phase Commit ( 二阶段提交 ) 也被认为是一种一致性协议,用来保证分布式系统数据的一致性。绝大部分的关系
型数据库都是采用二阶段提交协议来完成分布式事务处理。
剩余8页未读,继续阅读
weixin_38673924
- 粉丝: 4
- 资源: 906
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 国际象棋检测11-YOLO(v7至v9)、COCO、Darknet、Paligemma、VOC数据集合集.rar
- 使用Python和matplotlib库绘制爱心图形的技术教程
- Java外卖项目(瑞吉外卖项目的扩展)
- 必应图片壁纸Python爬虫代码bing-img.zip
- 基于Pygame库实现新年烟花效果的Python代码
- 浪漫节日代码 - 爱心代码、圣诞树代码
- 睡眠健康与生活方式数据集,睡眠和生活习惯关联分析()
- 2024~2025(1)Oracle数据库技术A卷-22软单、软嵌.doc
- 国际象棋检测10-YOLO(v5至v9)、COCO、CreateML、Paligemma数据集合集.rar
- 100个情侣头像,唯美手绘情侣头像
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0