2段提交和3段提交分析

2段提交

Note left of Coordinator: Voting phase
Coordinator->Cohort1: query
Coordinator->Cohort2: query

Cohort1-->Coordinator: yes/no
Note right of Cohort1: prepare/abort

Cohort2-->Coordinator: yes/no
Note right of Cohort2: prepare/abort

Note left of Coordinator: Commit phase
Coordinator->Cohort1: commit/rollback
Coordinator->Cohort2: commit/rollback

Cohort1-->Coordinator: acknowledgment
Note right of Cohort1: commit/abort

Cohort2-->Coordinator: acknowledgment
Note right of Cohort2: commit/abort

提交请求阶段

  1. 协作者给各个执行者发送提交请求;
  2. 执行者接收到提交请求,开始执行事务,双方记录回滚和重试日志;
  3. 执行者执行完事务,通知协作者是否可以执行提交,挂起资源等待协作者的通知;

提交阶段

  1. 协作者接收到所有的执行者的通知以决定发起提交或回滚请求;
  2. 每个执行者完成协作者的指令,释放资源;
  3. 协作者等待所有的执行者的 ack 后完成事务;

3段提交

时间: 2024-10-23 03:51:50

2段提交和3段提交分析的相关文章

php中限制ip段访问、禁止ip提交表单的代码

在需要禁止访问或提交表单的页面添加下面的代码进行判断就可以了. 注意:下边只是一个PHP限制IP的实例代码,如果您打算应用到CMS中,请自行修改. <?php /加IP访问限制 if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $userip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR

Spark提交应用程序之Spark-Submit分析

1.提交应用程序 在提交应用程序的时候,用到 spark-submit 脚本.我们来看下这个脚本: if [ -z "${SPARK_HOME}" ]; then export SPARK_HOME="$(cd "`dirname "$0"`"/..; pwd)" fi # disable randomized hash for string in Python 3.3+ export PYTHONHASHSEED=0 exe

关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究[转]

1.XA XA是由X/Open组织提出的分布式事务的规范.XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口.XA接口是双向的系统接口,在事务管理器(Transaction Manager)以及一个或多个资源管理器(Resource Manager)之间形成通信桥梁.XA之所以需要引入事务管理器是因为,在分布式系统中,从理论上讲(参考Fischer等的论文),两台机器理论上无法达到一致的状态,需要引入一

对分布式事务及两阶段提交、三阶段提交的理解

转载至:http://www.cnblogs.com/binyue/p/3678390.html,最近学习需要,先转载方便用用来强化加深印象 一.分布式数据一致性 在分布式系统中,为了保证数据的高可用,通常会将数据保留多个副本(replica),这些副本会放置在不同的物理的机器上. (1)什么是数据一致性 在数据有多份副本的情况下,如果网络.服务器或者软件出现故障,会导致部分副本写入成功,部分副本写入失败.这就造成各个副本之间的数据不一致,数据内容冲突. 造成事实上的数据不一致. (2)CAP定

Mybatis的JDBC提交设置/关闭mysql自动提交------关于mysql自动提交引发的惨剧

学习Mybatis时提到了JDBC方式需要自己手动提交事务,如果不加session.commit会导致数据库的数据无法正常插入(程序本身又不给你报错,还装出一副我已经插入成功的样子) SqlSession session = sessionFactory.openSession(); 如果要自动提交的话加个参数就好啦 SqlSession session = sessionFactory.openSession(true);//自动提交 手动提交的话 SqlSession session = s

[数学] 将长为L的木棒随机折成3段,则3段构成三角形的概率

1.题目 如题,将长为L的木棒随机折成3段,则3段构成三角形的概率是多少? 2.解析 这个与其说是编程题目,倒不如说是个数学题目.可能是你没有见过,或者没有过这种解题思想.(还是那句,一回生两回熟,类推吧) 设分成的三段木棍的长度分别为:x,y,L-x-y. (1)首先,三边长度都大于0.可以有下面的推导公式: 可以知道,满足条件的区域面积为,(1/2)*L*L,如下所示(就是阴影区域的面积大小): (2)其次,要构成三角形,必须满足任意两边之和大于第三边(也就是任意两边之差小于第三边).可以有

jquery.form.js实现将form提交转为ajax方式提交的使用方法

本文实例讲述了jquery.form.js实现将form提交转为ajax方式提交的方法.分享给大家供大家参考.具体分析如下: 这个框架集合form提交.验证.上传的功能. 这个框架必须和jquery完整版结合,否则使用min则无效. 原理:利用js进行对form进行组装成ajax的url和data,原理还是用ajax来提交,其实这完全可以自己写,但是有这个框架可能会更简单. 一.最简单例子: 第一步:引用js <!--这里的min是自己用js压缩工具对完整版进行的压缩 并不是真正的min,所以好

category is in invalid format hint微信第三方平台将第三方提交的代码包提交审核出错

微信第三方平台通过接口https://api.weixin.qq.com/wxa/submit_audit?access_token=TOKEN将第三方提交的代码包提交审核时一直返回错误码85008的错误信息: category is in invalid format hint 查了半天是接口提交数据时json_encode时中文不能编码提交 将向微信的提交代码     $this->https_post($url,json_encode($postData)); 改为     $this->

form表单提交转为ajax方式提交

在做项目的过程中遇到要将form表单提交转为ajax方式提交,下面是我总结的如何把form表单提交无缝转为ajax方式提交的方法. 原先的form表单长这样: <form action="xxx" method="get"> //action的值是请求的url地址 <div class="form-group"> <label for="name">姓名</label> <

国内手机号码段,卫星电话号段

手机号码段 电信 中国电信手机号码开头数字 133.153.180.181.189.177.173.149 联通 中国联通手机号码开头数字 130.131.132.155.156.145.185.186.176 移动 中国移动手机号码开头数字 134.135.136.137.138.139.150.151.152.158.159.182.183.184.157.187.188 147.178 补充 14号段以前为上网卡专属号段,如中国联通的是145,中国移动的是147等等. 170号段为虚拟运营