数据库分布式事务的两段式和三段式有哪些区别

技术数据库分布式事务的两段式和三段式有哪些区别这篇文章主要介绍“数据库分布式事务的两段式和三段式有哪些区别”,在日常操作中,相信很多人在数据库分布式事务的两段式和三段式有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出

本文主要介绍“两阶段和三阶段数据库分布式事务有什么区别”。在日常操作中,相信很多人对两阶段和三阶段数据库分布式事务的区别有所怀疑。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮助大家解答“两阶段和三阶段数据库分布式事务有什么区别”的疑惑!接下来,请和边肖一起学习!

00-1010c代表一致性,a代表可用性,p代表分区容差。

对于一致性:,的指定客户端,读操作保证可以返回最新的写操作结果。

可用性:无故障节点在合理的时间内返回合理的响应(不是错误和超时响应)。(只有无故障节点才能满足正常业务;只有在合理的时间内用户才能接受;只有当合理的响应被返回时,用户才能接受它)。

当网络分区出现在分区容错性:,时,系统可以继续“履行其职责”。(定义的网络分区中有很多情况,比如丢包、连接中断和拥塞。

中定义的职责的履行表示系统可以返回合理的响应。)

00-1010 1,请求阶段(提交-请求阶段,或投票阶段)

询问。协调者将交易内容发送给所有参与者,询问交易是否可以提交,然后开始等待参与者的响应。

执行交易。每个参与者节点执行事务操作(本地事务),并在事务日志中记录撤消和重做信息。

每个参与者将对交易查询的响应反馈给协调者。同意(事务参与者的本地作业执行成功)或取消(本地作业执行失败)。

2.提交阶段

在这一阶段,协调员将根据第一阶段的投票结果做出决定:提交还是取消。

并且只有当所有参与者都同意提交时,事务协调器才会通知所有参与者提交事务,否则,协调器会通知所有参与者回滚事务。

00-1010 1.同步阻塞问题。

在执行过程中,所有参与节点都被事务阻塞。当参与者占用公共资源时,必须阻止其他第三方节点访问公共资源。

2.单点故障

当协调器出错时,所有参与者仍处于锁定事务资源的状态,无法继续完成事务操作。

3、

在第二阶段,当协调器再次发送提交消息时,它就下去了,唯一接收到这个消息的参与者也下去了,所以即使协调器通过选举协议产生了一个新的协调器,这个事务的状态也是不确定的,没有人知道这个事务是否已经提交。

4.不一致的数据

在两阶段提交的第二阶段,当协调器向参与者发送提交请求时,在发送提交请求的过程中出现本地网络异常或协调器失败。这一次,只有一部分参与者收到提交请求,提交操作将在这部分参与者收到提交请求后执行。然而,其他没有收到提交请求的机器无法执行事务提交,因此数据的局部不一致性出现在整个分布式系统中。

CAP

1、CanCommit

询问。

每个参与者对协调此反馈事务的查询的响应。

2、预调试

假设协调器从所有参与者那里得到了“是”的响应,那么事务预提交将被执行。执行事务操作,在事务日志中记录撤销和重做信息。

假设任何参与者向协调器反馈“否”响应,或者等待超时后,协调器无法从所有参与者获得响应,则事务将被中断。

3、文档

在这个阶段,事务将被提交或回滚。

一、两段式

为协调者和参与者设置了超时机制。

参与者的阻塞范围缩小,第一阶段出现两级阻塞,第二阶段出现三级阻塞。

解决了单点阻塞问题,因为一旦参与者不能及时收到协调者的信息,他会因超时而默认提交。但是,如果协调器发送中止,其中一个参与者由于网络问题未能收到,最终提交,则该参与者的数据与执行中止的其他参与者的数据不一致。

(原两阶段提交中,经过投票,解决了由于协调人崩溃或错误导致参与者无法知道是提交还是暂停的“不确定状态”可能导致的长时间延迟问题。也就是说,即使协调者在发送提交消息后就下去了,而唯一收到这个消息的参与者也同时下去了,我们仍然可以知道它至少处于准备通过提案的阶段,也就是说大家已经决定通过第一阶段,然后就可以直接通过了。(即第一阶段的预告起到担保的作用))

至此,“两阶段和三阶段数据库分布式事务有什么区别”的研究结束,希望能解决大家的疑惑。理论和实践的结合可以帮助你学得更好。去试试吧!如果你想继续学习更多的相关知识,请继续关注网站,边肖会继续努力,给大家带来更多实用的文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/98521.html

(0)

相关推荐

  • 家养狗狗排行榜,有哪些适合家养的中型狗狗

    技术家养狗狗排行榜,有哪些适合家养的中型狗狗有哪些适合家养的中型犬家养狗狗排行榜?种类有很多~其中有几种是本人了解的想养的也有养过的~不懂的就不给您乱说啦[捂脸]第一种(排名不分前后)史宾格犬:这种犬类属于猎犬,也多用于

    生活 2021年10月21日
  • golang解析json(golangjson配置)

    技术如何用golang源码分析simplejson如何用golang源码分析simplejson,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。背景:1,go

    攻略 2021年12月13日
  • mariadb与mysql的区别是什么

    技术mariadb与mysql的区别是什么这篇文章主要讲解了“mariadb与mysql的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mariadb与mysq

    攻略 2021年12月2日
  • 4.运算符和流程控制

    技术4.运算符和流程控制 4.运算符和流程控制运算符
    在 PHP 中,赋值运算符 = 用于给变量赋值。
    在 PHP 中,算术运算符 + 用于把值加在一起
    1.算数运算符运算符
    名称
    描述
    实例
    结果x

    礼包 2021年12月23日
  • CSS+JS怎么实现爱心点赞按钮

    技术CSS+JS怎么实现爱心点赞按钮本篇内容主要讲解“CSS+JS怎么实现爱心点赞按钮”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS+JS怎么实现爱心点赞按钮”吧!To

    攻略 2021年11月20日
  • 满足解决配置DG Broker时报错Error: ORA-16698问题

    技术满足解决配置DG Broker时报错Error: ORA-16698问题这篇文章主要介绍“满足解决配置DG Broker时报错Error: ORA-16698问题”,在日常操作中,相信很多人在满足解决配置DG Bro

    攻略 2021年11月10日