`
kimi0912
  • 浏览: 12917 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
社区版块
存档分类
最新评论

两段式提交

 
阅读更多
通过使用某种协议进行通信来完成分布式事务,被称为两段式提交。从名字上看,您可能已经知道

有两个阶段:

第一个阶段,即预提交:
事务协调器给每个事务管理器发送准备操作的信号。
事务管理器将操作(通常是数据更新)步骤(或细节)写入事务日志。如果失败,事务管理器使用这些步骤重复操作。
事务管理器本地创建事务并通知资源管理器对资源(例如,数据库或消息服务器)执行操作。
资源管理器执行操作并向事务管理器报告成功(准备提交信号)或失败(准备回滚)。
资源管理器等待事务管理器进一步的指令。
事务管理器向事务协调器报告成功或失败。

第二阶段,即提交阶段:
在第二阶段中,第一阶段的结果将传送给所有事务管理器。如果任何事务管理器报告失败,所有的事务参与者都必须回滚。
事务协调器让所有事务管理器提交(或回滚)。
所有事务管理器将提交或回滚信息传递给其资源管理器。
资源管理器将成功或失败提示返回给事务管理器。
事务管理器向事务协调器报告成功或失败。

分享到:
评论
1 楼 步青龙 2012-07-13  
一个web app应用服务器 调用了webservice或者hessian,四个远程的调用,第一个成功,第二个成功,第三个失败,第三个的失败,如何通知第一个第二个回滚,如何通知第四个呢? 这四个远程调用是四个其他四个web app应用服务端,对应四个数据库,每个数据库对应的不同的事务。可以用两段式事务提交吗?

相关推荐

    分布式仿真多分辨率建模方法及一致性维护.pdf

    本文还提出了嵌套两段式提交协议的概念,这是一种对传统两段式提交协议的改进,特别是在处理分布式仿真中多分辨率模型间交互时,能够有效应对其中的一致性维护问题。通过将不同分辨率模型的交互封装为事务,并执行...

    面试突击——数据库篇

    InnoDB引擎执行事务时采用两段式提交,分为预提交和提交两个阶段。在预提交阶段,事务准备写入redo Log;提交阶段,如果预提交成功,事务正式写入数据并清空redo Log。两段式提交保证了事务的原子性。 总结,面试中...

    分布式事务两阶段提交协议的实现方法研究.pdf

    传统的两阶段提交协议(2PC)将事务处理分为两个阶段:预提交阶段和决策阶段。在预提交阶段,事务协调者询问所有参与者是否准备好提交事务,每个参与者基于自身条件作出响应。一旦所有参与者都同意提交,协调者将...

    张道山-GBase 8s 在金融行业的技术实践1

    在金融行业的核心系统中,集中式数据库的优势在于避免了分布式数据库可能存在的两段式提交导致的性能损失。国产集中式数据库如GBase 8s,已经在性能、稳定性和高可用性方面取得了显著的进步,能满足金融行业对于关键...

    数据库系统工程师-数据库技术基础(二).doc

    1. 事务的两段式提交(Two-Phase Commit)是确保事务原子性的方法,即事务的所有操作要么全部完成,要么全部不完成。这与事务的并发调度可串行化有关,后者意味着并发执行的事务可以被重排序以获得等价于串行执行的...

    CAP4术平台方案介绍.pptx

    平台采用一体化设计器,允许同时定义显示格式和数据存储,减少了两段式提交的需求。此外,业务逻辑重组通过业务分类、关联和触发逻辑的重构实现,以提高效率。运行监控引擎实时监控业务运行情况,包括回写队列状态...

    MongoDB.txt

    #### 两段式提交(2PC) - **协调者**:负责发起并管理整个提交过程的角色。 - **事务参与者**:参与具体操作的节点。 - **第一阶段**(请求阶段):协调者询问所有参与者是否准备好提交事务。 - **第二阶段**(提交...

    基于Spring4.1.7+atomikos+mybaits 实现两阶段的分布式事务处理

    两阶段提交是一种分布式事务协调协议,它分为两个阶段:准备阶段(Prepare)和提交阶段(Commit)。在准备阶段,事务协调者询问所有参与者(即涉及事务的各个节点)是否可以提交事务。如果所有参与者都同意,协调者...

    jQuery ui自定义添加某个时间段表单提交_拖动设置时间段表

    在这个特定的主题中,“jQuery ui自定义添加某个时间段表单提交_拖动设置时间段表”涉及到了两个关键知识点:jQuery UI的使用以及通过拖动操作来设置时间段的功能。 首先,jQuery UI提供了诸如对话框、进度条、滑块...

    asp.net页面提交

    ASP.NET页面提交是Web开发中的一个关键概念,主要用于创建交互式的动态网页。在这个过程中,C#作为.NET框架的主要编程语言,被广泛用于编写服务器端代码,处理用户输入和响应。"PostBack"是ASP.NET中一个核心的概念...

    Asp.net实现作业提交系统(SQL2005)

    Asp.net 是微软公司推出的Web应用程序开发框架,它提供了强大的服务器端编程模型,使得开发者可以构建动态、交互式的Web应用。在这个“Asp.net 实现作业提交系统”中,结合了SQL Server 2005作为数据库管理系统,...

    响应式伸缩搜索框特效

    这段代码表示当屏幕宽度小于或等于768像素时,搜索框的宽度将设置为80%。这样,当用户在小屏幕上查看页面时,搜索框会自动缩放以适应屏幕。 伸缩效果可以使用CSS的过渡(Transitions)和动画(Animations)来创建。...

    函数式编程语言和MapReduce

    函数式编程语言的特点之一是使用高阶函数,其中map和fold(也称为reduce)是两个非常重要的高阶函数。map函数接收一个函数和一个列表,将函数应用于列表的每一个元素,并返回一个新列表。fold函数则将一个函数和一个...

    分布式数据库系统的故障恢复方法.pdf

    本文探讨了分布式数据库系统的故障恢复方法,并详细分析了备份恢复技术和日志恢复技术,以及基于这两种技术的两阶段提交协议和三阶段提交协议。 在分布式数据库系统中,数据分布带来的问题主要包括保持分布一致性、...

    javaweb 通过threadlocal 手动提交事务

    在Java Web应用中,事务管理通常分为两种方式:编程式和声明式。编程式事务管理允许开发者在代码中显式地控制事务的开始、提交和回滚;声明式事务管理则通过配置(如Spring的@Transactional注解)来控制事务,降低...

    直客式个人住房贷款操作指引.docx

    这种贷款方式在当前阶段作为一手住房贷款的补充,分为合作型和独立型两种类型,具体取决于贷款行与开发商的关系。 合作型直客式贷款是银行与开发商签订合作协议后,对符合贷款条件的借款人发放贷款。而独立型直客式...

    最新的Git一站式操作指南

    版本控制系统主要分为集中式和分布式两类。集中式版本控制系统(例如CVS、SVN等)依赖于中央服务器来存储所有版本的文件,客户端则通过网络访问这些版本文件。这种模式的优点在于方便统一管理,但缺点是如果中央...

    使用Spring的声明式事务----AOP方式

    在Spring中,我们主要通过两种方式配置声明式事务:XML配置和注解配置。 1. XML配置:在`<tx:advice>`元素中定义事务行为,然后通过`<aop:config>`或`<aop:aspect>`将事务行为应用到特定的bean或方法上。例如: ```...

    巧用js提交表单轻松解决一个页面有多个提交按钮

    在网页设计中,常常会遇到一个表单需要处理多种提交逻辑的情况,例如,一个页面上会有“提交”和“保存草稿”两种功能按钮。这样的设计需求很普遍,但是如何在不改变服务器端处理逻辑的情况下,通过客户端JavaScript...

Global site tag (gtag.js) - Google Analytics