`
xubindehao
  • 浏览: 243920 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

分布式数据库事务管理

 
阅读更多



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

 
     
 

  分布式事务必须满足传统事务的特性,即原子性,一致性,分离性和持久性。但是分布式事务处理过程中,某些场地(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+中,事务管理由Transaction Manager负责,它监控并协调涉及多个组件的事务。当一个事务开始时,Transaction Manager会分配一个全局唯一标识符(Global Transaction ...

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

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

    分布式数据库--30讲

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

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

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

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

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

    东北大学分布式数据库课件和真题

    分布式数据库是计算机科学中的一个重要领域,它涉及到如何在多个计算机节点上存储和管理大量数据,以实现高可用性、可扩展性和性能优化。东北大学的这门课程显然旨在教授学生如何设计、实施和管理这样的系统。提供的...

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

    这通常通过事务管理和两阶段提交等机制来实现。 故障恢复是确保系统高可用性的关键。分布式数据库系统需要有备份和恢复策略,以应对硬件故障或网络问题。常见的方法包括日志记录、检查点技术和数据冗余。 最后,...

    分布式数据库中的事务管理和恢复

    分布式数据库中的事务管理和恢复分布式数据库中的事务管理和恢复

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

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

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

    最后一讲会通过具体的分布式数据库系统案例,如Google的Bigtable、Facebook的Cassandra等,来剖析实际应用,并探讨分布式数据库的未来发展趋势,如新型的数据存储模型和分布式数据库管理系统。 通过这些课件的学习...

    分布式数据库习题.doc

    与集中式DBMS相比,分布式DBMS增加了物理分布性、逻辑整体性、站点自治性、集中与自治结合的控制、适当的数据冗余以及分布式的事务管理。 数据分片是根据用户需求将关系分割成片段,分别存储在不同站点,以优化访问...

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

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

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

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

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

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

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

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

    东北大学 分布式数据库 第一章分布库概述

    2. 分布式事务管理:负责管理和维护分布式数据库系统中的事务。 分布式数据库系统的应用包括: 1. 全球分布式数据库系统:适用于全球范围内的应用场景。 2. 区域分布式数据库系统:适用于特定区域或地区的应用场景...

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

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

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

    综上所述,分布式数据库架构及企业实践基于Mycat中间件,涉及到的内容广泛,包括数据库架构设计、中间件选型、数据分片策略、事务管理、性能优化等多个方面,对于理解和实施大规模分布式数据库系统具有重要的指导...

    《分布式数据库技术金融应用规范》的技术架构及分布式事务核心功能的解读揭秘v1.0.pptx

    《分布式数据库技术金融应用规范》的技术架构及分布式事务核心功能的解读揭秘内容项描述: 1、教科书定义的分布式事务数据库的技术架构及功能特性 2、国内三种主流金融行业的分布式事务数据库的技术架构揭秘 3、...

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

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

Global site tag (gtag.js) - Google Analytics