中秋国庆一共12天,玩的有点嗨,完全没想工作的事情- -。回来赶紧补补。看了一下mycat关于事务的支持情况,做一下记录。

 说mycat的事务支持之前,先说说XA协议,即分布式事务。指的是TM(事务管理器)和RM(资源管理器)之间的接口,定义了一些以ax_,xa_开头的接口函数。如下:(来自XA规范文档)

  

  从这些函数的定义大致可以看出XA协议做的工作。整个XA协议主要基于二阶段提交的概念。这个概念很好理解,当TM接到一个全局事务请求的时候,TM会把请求告知注册在它身上的所有RM,当所有RM准备就绪后,再执行commit操作。在这个过程中,如果某个RMcommit失败了,那么TM会进行协调,一可以回滚其它所有RM上的事务,二是等这个失败的RM恢复后,重新进行commit。

  TM是用日志来记录XA事务的状态的,且日志必须存储的很可靠。当然,真个XA协议,就是建立在可靠的TM和RM之上。

  

  而mycat的事务支持是弱XA的,事务内的SQL在各自分片上执行并且返回状态码,如果某个分片上的返回码为error,mycat就认为本次事务失败了,此时将会一次回滚事务所涉及到的所有分片。反之,如果所有的分片都返回成功的返回码,则当AP(应用程序)提交事务的时候,mycat会同时向事务涉及的所有分片发送提交事务的命令。

  之所以说是弱XA,是因为在二阶段提交的工程中,若commit时某个节点出错了,只能回滚,而不会等其恢复后再次提交。

  关于XA中特别重要的日志存储,mycat未来计划以zookeeper作为XA事务的日志存储手段,依靠zookeeper的可靠性,从而实现了TM角色的可靠性。

  

mycat的事务支持情况的更多相关文章

  1. Mycat 分布式事务的实现

    引言:Mycat已经成为了一个强大的开源分布式数据库中间件产品.面对企业应用的海量数据事务处理,是目前最好的开源解决方案.但是如果想让多台机器中的数据保存一致,比较常规的解决方法是引入"协调 ...

  2. 分布式 基本理论 CAP 之 各分布式系统的cap支持情况

    分布式系统.理论.协议 非常非常多, 它们多cap 的支持是怎么样的呢? 需要注意的是,分布式系统 为了应付各种 复杂 应用场景,支持各种各样的功能,可能有的提供了选项或某种机制, 某个时刻,支持CP ...

  3. JDBC 学习笔记(十一)—— JDBC 的事务支持

    1. 事务 在关系型数据库中,有一个很重要的概念,叫做事务(Transaction).它具有 ACID 四个特性: A(Atomicity):原子性,一个事务是一个不可分割的工作单位,事务中包括的诸操 ...

  4. SQL Server On Linux:基于实际项目案例,总结功能支持情况及相关问题解决方案,讲如何快速完成迁移

    上个月,有个朋友问我说Sql Sever向Mysql迁移有什么好的经验分享,他们公司客户明确提出不再提供Windows服务器,现在计划Mysql迁移.我说Mysql迁移成本太高了,不妨可以了解一下SQ ...

  5. Mycat的事务异常:Caused by: java.sql.SQLException: Transaction error, need to rollback.Distributed transaction is disabled!

    工作中踩到的一个坑 ,一个报错,导致整个服务不能用.工程部署四个节点,请求是按轮询机制分发的,所以请求四次报错,整个系统瘫痪.记录下 . 项目环境:spring +Mybaties +mycat +D ...

  6. 浏览器对localstorage的支持情况以及localstorage在saas系统中的应用实践思考

    首先,还是要说,任何一种新特性的引入,通常有着其特有的场景和解决的目标需求,localstorage也一样.在我们的应用场景中,主要在金融业务服务的saas系统.其中涉及很多更改频率很多的元数据的客户 ...

  7. 关于HTML5音频——audio标签和Web Audio API各平台浏览器的支持情况

    对比audio标签 和 Web Audio API 各平台浏览器的支持情况:   audio element Web Audio API desktop browsers Chrome 14 Yes  ...

  8. Web存储(Web Storage)的浏览器支持情况

    所有很酷的功能特征的出现最关键的就是浏览器的支持情况,幸运的是,所有的现代浏览器都支持HTML5 Web存储(Web Storage),从IE8开始也支持它.HTML5 Web存储(Web Stora ...

  9. css选择器浏览器支持情况

    css选择器浏览器支持情况

随机推荐

  1. 【mybatis】mybatis中insert操作,返回自增id

    需求是这样的: mybatis中insert操作,返回自增id,因为这个自增id需要给后续业务用到. 原本是这样的: 将insert语句传入,正常执行insert操作,返回int永远是 0[失败] 或 ...

  2. iOS -- xxxViewController进行pop时直接crash进main.m,EXC_BAD_ACCESS(code=1,address=0x20)

    今天在调试程序时,遇到了奇怪的错误.我从主页跳进(push)一个ViewController时一切正常,但是返回主页(pop)时却crash了,直接跳进了main.m(EXC_BAD_ACCESS(c ...

  3. awk的求和计算使用;awk多个分隔符如何使用?

    1.对于下图,如何使用awk求所有各列的和 和:175 16 78 19 方法:awk '{for(n=1;n<=NF;n++)t[n]+=$n}END{for(n=1;n<=NF;n++ ...

  4. 控制CUP占用率曲线

    在<编程之美>上看过一道面试题就是要求:输出cup占用率的曲线图 今天看到了一篇文章就试试看看: #include <iostream> #include <cmath& ...

  5. ubuntu怎样打开命令行终端(5种方法)

    内容中包含 base64string 图片造成字符过多,拒绝显示

  6. inputclean插件的使用方法

    inputclean插件的使用方法 语言:javascript 是jquery插件, 目的:给文本框添加×,点击×,就可以清空文本框内容. 如图: 详细交互效果: 1,当文本框聚焦时,×永久显示,无论 ...

  7. 转:mybatis——select、insert、update、delete

    一.select <!-- 查询学生,根据id --> <select id="getStudent" parameterType="String&qu ...

  8. iOS UI08_tableView省市区字典数组

    北京 1 北京市 1 西城区 1 东城区 2 崇文区 3 宣武区 4 朝阳区 5 丰台区 6 石景山区 7 海淀区 8 门头沟区 9 房山区 10 通州区 11 顺义区 12 昌平区 13 大兴区 1 ...

  9. jquery中text(),html(),val()在取值上的区别

    1.html():读取和修改一个元素的HTML内容: 2.text():读取和修改一个元素的文本内容: 3.val():读取和修改一个表单元素的value字段值.

  10. windown vs2012 编译ffplay

    自己写的播放器播放有些文件出现问题,但ffplay播放都很正常,为方便调试,将ffplay.c编译成可执行文件. 一. 环境搭建 环境搭建前面已经有文章介绍,没有特殊的地方,不再赘述. 二.修改con ...