首页 > 其他分享 >三阶段提交协议

三阶段提交协议

时间:2023-06-29 17:31:47浏览次数:27  
标签:协议 协调者 响应 阶段 提交 超时 参与者

三阶段提交(Three-phase commit),也叫三阶段提交协议(three-phase commit protocol),是二阶段提交(2PC)的改进版本。

与二阶段提交不同的是,三阶段提交有两个改动点

1.引入超时机制,同时在协调者和参与者中都引入超时机制。

2.在第一阶段和第二阶段中插入一个准备阶段。保证了在最后提交阶段之前各参与阶段的状态是一致的。也就是说,除了引入超时机制之外,3PC把2PC的准备阶段再次一分为二,这样三阶段提交就有CanCommit、PreCommit、DoCommit三个阶段。

CanCommit阶段

协调者向参与者发送commit请求,参与者如果可以提交就返回yes响应,否则返回no响应。

PreCommit阶段

协调者根据参与者的反应情况来决定是否可以继续进行,有以下两种可能。假如协调者从所有的参与者获得的反馈都是yes响应,那么就会执行事务的预执行。假如有任何一个参与者向协调者发送了no响应,或者等待超时之后,协调者都没有接到参与者的响应,那么就执行事务的中断。

doCommit阶段

该阶段进行真正的事务提交,主要包含1.协调者这发送提交请求.2.参与者提交事务,3.参与者响应反馈(事务提交完之后,向协调者发送Ack响应)4.协调者确定完成事务。

标签:协议,协调者,响应,阶段,提交,超时,参与者
From: https://blog.51cto.com/u_11315052/6584092

相关文章

  • 脑电信号采集模块方案的技术阶段总结简析
    原理 脑电图(electroencephalogram,EEG)是通过精密的仪器从头皮上将脑补的大脑皮层的自发性生物电位加以放大记录而获得的图形,是通过电极记录下来的脑细胞群的自发性、节律性电活动。这种电活动是以电位作为纵轴,时间为横轴,从而记录下来的电位与时间相互关系的平面图。脑电波的频率(......
  • ETH-TCP协议与常见问题分析
    SourcePort:源端口,标识发送方的应用进程DestinationPort:目的端口,标识接收方的应用进程SequenceNumber:序列号,用于标识从发送端发出的不同的TCP数据段的序号。数据段在网络中传输时,它们的顺序可能会发生变化;接收端依据此序列号,便可按照正确的顺序重组数据。保证数据传输的有序性......
  • 串行协议适配器行业市场调研及规模分析报告2023-2029
    2023-2029全球串行协议适配器行业调研及趋势分析报告2022年全球串行协议适配器市场规模约亿元,2018-2022年年复合增长率CAGR约为%,预计未来将持续保持平稳增长的态势,到2029年市场规模将接近亿元,未来六年CAGR为%。从核心市场看,中国串行协议适配器市场占据全球约%的市场份额,为全......
  • Labview 与汇川AM400 AM600 AM800 AC800 PLC 通讯 官方协议,报文读取,安全稳定
    Labview与汇川AM400AM600AM800AC800PLC通讯官方协议,报文读取,安全稳定。程序代开发,代写程序。通讯配置,辅助测试。无程序网络通讯实现。常用功能一网打尽。1.命令帧读写。2.支持I16I32Float批量读写。3.支持字符串读写。4.支持Bool批量读写。5.支持Q单点读写。......
  • DHCP协议及解码
    DHCP基本过程 DHCP流程:从初始化状态开始 DHCP流程:重新使用之前的IP: DHCP报文种类: DHCP报文格式 ......
  • 关于SMB协议-Server Message Block-服务器信息块
    SMB:ServerMessageBlock,即服务(器)消息块,是IBM公司在80年代中期发明的一种文件共享协议SMB(全称是ServerMessageBlock)是一个网络协议名,它能被用于Web连接和客户端与服务器之间的信息沟通。SMB最初是IBM的贝瑞·费根鲍姆(BarryFeigenbaum)研制的,其目的是将DOS操作系统......
  • git 如何清除git提交记录?
    1、清除线上仓库git提交记录1.切换到新的分支gitcheckout--orphanlatest_branch2.缓存所有文件(除了.gitignore中声明排除的)gitadd-A3.提交跟踪过的文件(Committhechanges)gitcommit-am"commitmessage"4.删除master分支(Deletethebranch)g......
  • 网络安全学习篇37_第二阶段_基本Linux脚本、变量、判断if、循环for\while、case语句
    上一篇博客:网络安全学习篇36_第二阶段_简单介绍JavaWeb框架之Tomcat服务、Nginx负载均衡、Linux包过滤防火墙IPtables、NAT网络地址转换目录shell脚本变量数值读入if判断语句for、while循环语句case语句开始shell脚本1.脚本的作用:可以执行计划任务把需要执行的代码保存在一个文件......
  • 接口测试(2)--HTTP协议,HTTPS协议
    HTTP协议:是超文本传输协议,它主要规定了在互联网中传输数据时的标准。主要用于定义客户端与web端服务器通讯的格式。HTTP协议工作于客户端-服务端上。浏览器作为HTTP客户端,通过URL向,HTTP服务端即WEB服务器,发送所有请求。HTTP特点:支持客户端/服务器模式,简单快速,灵活,无连接,无......
  • PTA 阶段性总结
    第一部分总结PTA(1)前言:   在第三阶段中,考察了set,map,hashmap,的方法的使用,同时最主要的考察了和前面菜单计价相似的对成绩的处理和判断,在这一阶段题目的难度不是特别大主要是要求我们对课程上的知识进行运用,学会并且理解用法,来提高我们的代码效率(2)设计与分析:   这里......