在分布式数据库环境中,一个数据库事务可以更新多个场地上的数据,这种数据库事务称为分布式事务。
|
|
|
|
|
|
分布式事务必须满足传统事务的特性,即原子性,一致性,分离性和持久性。但是分布式事务处理过程中,某些场地(Server)可能发生故障,或者由于网络发生故障而无法访问到某些场地。为了防止分布式系统部分失败时产生数据的不一致性。在分布式事务的控制中采用了两阶段提交协议(Two-Phase Commit Protocol)。即事务的提交分为两个阶段:
预提交阶段(Pre-Commit Phase) 决策后阶段(Post-Decision Phase)
两阶段提交用来协调参与一个更新中的多个服务器的活动,以防止分布式系统部分失败时产生数据的不一致性。例如,如果一个更新操作要求位于三个不同结点上的记录被改变,且其中只要有一个结点失败,另外两个结点必须检测到这个失败并取消它们所做的改变。
为了支持两阶段提交,一个分布式更新事务中涉及到的服务器必须能够相互通信。一般来说一个服务器会被指定为"控制"或"提交"服务器并监控来自其它服务器的信息。
在分布式更新期间,各服务器首先标志它们已经完成(但未提交)指定给它们的分布式事务的那一部分,并准备提交(以使它们的更新部分成为永久性的)。这是两阶段提交的第一阶段。如果有一结点不能响应,那么控制服务器要指示其它结点撤消分布式事务的各个部分的影响。如果所有结点都回答准备好提交,控制服务器则指示它们提交并等待它们的响应。等待确认信息阶段是第二阶段。在接收到可以提交指示后,每个服务器提交分布式事务中属于自己的那一部分,并给控制服务器发回提交完成信息。
在一个分布式事务中,必须有一个场地的Server作为协调者(coordinator),它能向其它场地的Server发出请求,并对它们的回答作出响应,由它来控制一个分布式事务的提交或撤消。该分布式事务中涉及到的其它场地的Server称为参与者(Participant)。
事务两阶段提交的过程如下: ● 两阶段提交在应用程序向协调者发出一个提交命令时被启动。这时提交进入第一阶段,即预提交阶段。在这一阶段中: (1) 协调者准备局部(即在本地)提交并在日志中写入"预提交"日志项,并包含有该事务的所有参与者的名字。 (2) 协调者询问参与者能否提交该事务。一个参与者可能由于多种原因不能提交。例如,该Server提供的约束条件(Constraints)的延迟检查不符合限制条件时,不能提交;参与者本身的Server进程或硬件发生故障,不能提交;或者协调者访问不到某参与者(网络故障),这时协调者都认为是收到了一个否定的回答。 (3) 如果参与者能够提交,则在其本身的日志中写入"准备提交"日志项,该日志项立即写入硬盘,然后给协调者发回一?quot;已准备好提交"的回答。 (4) 协调者等待所有参与者的回答,如果有参与者发回否定的回答,则协调者撤消该事务并给所有参与者发出一个"撤消该事务"的消息,结束该分布式事务,撤消该事务的所有影响。
● 如果所有的参与者都送回"已准备好提交"的消息,则该事务的提交进入第二阶段,即决策后提交阶段。在这一阶段中: (1) 协调者在日志中写入"提交"日志项,并立即写入硬盘。 (2) 协调者向参与者发出"提交该事务"的命令。各参与者接到该命令后,在各自的日志中写入"提交"日志项,并立即写入硬盘。然后送回"已提交"的消息,释放该事务占用的资源。 (3) 当所有的参与者都送回"已提交"的消息后,协调者在日志中写入"事务提交完成"日志项,释放协调者占用的资源 。这样,完成了该分布式事务的提交。 |
|
分享到:
相关推荐
分布式数据库事务处理(COM+实现)
分布式数据库中的事务管理和恢复分布式数据库中的事务管理和恢复
分布式事务是指在分布式数据库中,多个节点之间的统一事务处理。在分布式事务中,需要使用分布式事务实现模型,例如 2PC(两阶段提交)协议,以确保事务的一致性和可靠性。在 2PC 协议中,如果参与者未收到 C/A 报文...
分布式数据库习题 第一章 1.1请用自己的语言定义下列分布式数据库系统中的术语: 全局/局部数据 全局数据是指参与全局应用,可被多个站点上的应用访问的数据; 局部数据是指只提供本站点的局部应用所需要的数据。 ...
《分布式数据库架构及企业实践——基于Mycat中间件》对 Mycat 从入门到进阶、从高级技术实践到架构剖析、从网络通信协议解析到系统工作原理的方方面面进行了详细讲解,并剖析了 Mycat的 SQL 路由、跨库联合查询、...
《分布式数据库架构及企业实践——基于Mycat中间件》对 Mycat 从入门到进阶、从高级技术实践到架构剖析、从网络通信协议解析到系统工作原理的方方面面进行了详细讲解,并剖析了 Mycat的 SQL 路由、跨库联合查询、...
《分布式数据库技术金融应用规范》的技术架构及分布式事务核心功能的解读揭秘内容项描述: 1、教科书定义的分布式事务数据库的技术架构及功能特性 2、国内三种主流金融行业的分布式事务数据库的技术架构揭秘 3、...
近年来,人民银行推动信息化...历经2年时间,于2020年11月26日,中国人民银行正式发布《分布式数据库技术金融应用规范 技术架构》(JR/T 0203-2020)、《分布式数据库技术金融应用规范安全技术要求》(JR/T0204-2020)
《分布式数据库》课程标准 (基本职业素质模块...包括分布式数据库设计、分布式查询处理与优化、分布式查询的存取优化、分 布式事务管理、分布式恢复管理、分布式并发控制、数据复制与一致性、P2P数据管理系 统、Web数
事务管理的分布性 分布式数据库中数据分片的规则是什么 答:(1)完备性原则:必须把全局关系的所有数据映射到各自片段中,绝不允许有属于 全局关系的数据却不发球它的任何一个片段。 (2)可重构原则:必须保证能够...
分布式数据库和事务处理课程讲义12-01
分布式数据库 第六章 分布式事务管理 东北大学 分布式数据库系统
分布式数据库和事务处理课程讲义12-06
分布式数据库系统及应用教学课件,包括分布式数据库系统事务执行与恢复、分布式数据库并发控制、分布式数据库系统的可靠性和分布式数据库系统的安全性。
4.1.3. 分布式事务有哪些基本性质. 25 4.1.4. 什么是2PL协议 25 4.2. 下面是某个公司的人事关系数据库的全局模式: 25 4.2.1. 将全局模式进行分片,写出分片定义和分片条件。 26 4.2.2. 指出分片的类型,并画出分片...
这应该是目前最权威的分布式数据库事务处理方面的资料。
3.1.1. 分布式数据库系统在系统结构、模式结构、功能模块等方面有何特点? 14 3.1.2. 给出两种2PL协议,并比较它们的优点缺点? 14 3.1.3. 解释为什么对象类的多继承存在二义性,并通过例子加以说明。 15 3.1.4. ...
分布式数据库和事务处理课程讲义12-11
clearpool是一个开源的高性能的分布式数据库池,它可以高效地管理多个数据库源,并支持分布式事务。clearpool有着良好的性能,因为它最大程度地复用了数据库连接池的连接。 clearpool的功能: 有效地...
在早期的研究中,分布式数据库被理解为一个具有统一全局模式的分布数据管理系统,向用户提供对一组同构、分布且逻辑相关的本地数据库的透明访问,也就是说,分布式数据库可以看作一个逻辑上集中的数据库。...