`

分布式数据库事务

阅读更多

 

 

 

在分布式数据库环境中,一个数据库事务可以更新多个场地上的数据,这种数据库事务称为分布式事务。

 
 

  分布式事务必须满足传统事务的特性,即原子性,一致性,分离性和持久性。但是分布式事务处理过程中,某些场地(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+实现)

    分布式数据库事务处理是数据库系统中的一个重要概念,尤其是在大型企业级应用和互联网服务中,它能够保证数据的一致性和完整性,即使在多台计算机之间进行数据操作。COM+(Component Object Model Plus)是微软提出...

    基于移动代理的分布式数据库事务处理算法设计.pdf

    分布式数据库事务处理是一个涉及网络中多个数据库节点的数据操作,要求在保证数据一致性的同时,实现事务的原子性、一致性、隔离性和持久性(即ACID特性)。随着互联网和分布式应用的快速发展,传统集中式数据库事务...

    分布式数据库事务分类策略研究.pdf

    【分布式数据库事务分类策略研究】 在现代信息技术领域,随着数据量的不断增长,传统的集中式数据库系统已经无法满足高并发、大数据量的处理需求。分布式数据库作为一种有效的解决方案,通过将数据分散存储在多个...

    分布式数据库--30讲

    分布式数据库的学习路径可以从数据库开始,包括存储设计、事务模型、查询引擎、复制和其他几个方面。学习分布式数据库可以帮助我们更好地理解数据库的设计思想和架构设计。 分布式数据库的优点包括: 1. 高性能:...

    分布式数据库课后习题答案整理

    7. 事务管理的分布性:分布式数据库系统可以提供分布式的事务管理机制,以提高系统的可靠性。 分布式数据库系统的概念模式: 1. 全局概念模式:描述分布式数据库中全局数据的逻辑结构和数据特性。 2. 分片模式:...

    分布式数据库事务处理资料

    ### 分布式数据库事务处理资料知识点解析 #### 标题:分布式数据库事务处理资料 - **核心内容**:本文档提供了关于分布式事务处理的核心技术标准,重点在于介绍X/Open公司的XA规范。 #### 描述:这应该是目前最...

    分布式数据库试题及答案西南交大研究生

    分布式数据库事务处理是指处理分布式数据库的事务操作,包括事务的提交和回滚等方面。 在本试题中,我们将讨论分布式数据库事务处理,包括串行调度和并发控制等方面。 (1)串行调度 串行调度是指将事务操作序列...

    分布式数据库第三版所有课件及相关资料 徐俊刚版

    其次,分布式数据库的事务处理是一个关键挑战。ACID(原子性、一致性、隔离性、持久性)特性在分布式环境下需要重新设计和实现,如两阶段提交、多阶段提交等协议确保了分布式事务的一致性。同时,CAP理论指出,...

    东北大学申德荣分布式数据库系统原理与应用讲义

    分布式数据库系统原理与应用 ...总结,申德荣教授的分布式数据库系统讲义涵盖了分布式数据库设计、事务管理、查询优化、并发控制、恢复策略等多个核心主题,对于理解和实践分布式数据库系统有着重要的指导价值。

    东北大学2009年春季博士入学试题-分布式数据库

    分布式事务是指在分布式数据库中,多个节点之间的统一事务处理。在分布式事务中,需要使用分布式事务实现模型,例如 2PC(两阶段提交)协议,以确保事务的一致性和可靠性。在 2PC 协议中,如果参与者未收到 C/A 报文...

    分布式数据库系统及其应用与答案

    分布式数据库系统是现代大型数据处理的关键技术之一,它在应对海量数据存储、高并发访问以及地理分布的数据需求方面发挥着重要作用。《分布式数据库系统及其应用(第二版)》由邵佩英编著,是中国科大出版社出版的...

    分布式数据库架构及企业实践-基于Mycat中间件.pdf

    《分布式数据库架构及企业实践——基于Mycat中间件》对 Mycat 从入门到进阶、从高级技术实践到架构剖析、从网络通信协议解析到系统工作原理的方方面面进行了详细讲解,并剖析了 Mycat的 SQL 路由、跨库联合查询、...

    关于2PC协议对分布式数据库的事务恢复机制.pdf

    分布式数据库事务恢复机制中二阶段提交协议(2PC)对分布式数据库的事务恢复机制的研究 摘要: 本文主要研究了分布式数据库系统中的事务恢复机制,特别是二阶段提交协议(2PC)在分布式数据库的事务恢复机制中的...

    分布式数据库原理分布式数据库原理分布式数据库原理分布式数据库原理

    分布式数据库是将数据分散存储在多个独立的物理节点上,每个节点都可以处理一部分事务,它们通过网络互相通信,共同对外提供一致的服务。这种设计模式允许数据库系统在硬件故障、网络问题或高负载下仍能正常运行,...

    分布式数据库2019考题.rar

    3. **分布式事务处理**:ACID(原子性、一致性、隔离性、持久性)是分布式数据库事务处理的基本原则。在分布式环境下,如何保证事务的正确执行是一项挑战,例如两阶段提交(2PC)、三阶段提交(3PC)等协议就是为了...

    清华大学 分布式数据库课件

    分布式数据库是现代信息技术领域中的重要概念,尤其在大数据处理、云计算和互联网应用中扮演着核心角色。清华大学作为中国顶级的高等教育机构,在计算机科学和技术的教学方面有着深厚的底蕴。这份"清华大学分布式...

    分布式数据库架构及企业实践-基于Mycat中间件

    《分布式数据库架构及企业实践——基于Mycat中间件》对 Mycat 从入门到进阶、从高级技术实践到架构剖析、从网络通信协议解析到系统工作原理的方方面面进行了详细讲解,并剖析了 Mycat的 SQL 路由、跨库联合查询、...

    分布式数据库 第三章 分布式数据库的设计

    一个良好的分布式数据库设计可以提高系统的整体性能,减少网络传输量,提高数据的可用性和查询效率,增强局部事务效率和系统的可靠性。 设计策略 分布式数据库设计有两种主要的设计策略:Top-down 设计策略和 ...

    分布式数据库习题.doc

    分布式数据库系统是一种高级的数据库架构,它将数据分布在多个地理位置分散的计算机节点上,通过网络进行协同工作。这种系统的设计旨在提升数据的可用性、可靠性和性能,同时保持数据的一致性和完整性。以下是对...

    中国数据库行业研究:分布式数据库技术系列简报-金融级需求与分布式数据库应用契合.pdf

    1. 分布式数据库的设计原则:包括数据分片、副本控制、一致性协议、事务处理机制等。 2. 具体分布式数据库产品的比较:研究不同厂商和不同类型的分布式数据库产品的功能、性能、安全性等特性,以及它们在金融业务中...

Global site tag (gtag.js) - Google Analytics