xa事务

这几天看到青云开源了一个分布式数据库,radon

初略看了一下,是sharding+xa事务的思路

之前对xa事务了解的不多,趁此机会看了一下mysql 5.7的xa事务(mysql 5.7的innodb 支持xa事务)


分为内部xa和外部xa

外部xa:mysql充当rm,tm由外部协调者充当

内部xa:mysql既是rm,又是tm(内部xa需要存储引擎支持表处理维度的二阶段提交,目前只有innodb做到)


分为

xa start xid

...sql 语句

xa end xid

xa prepare xid

xa commit xid/xa rollback xid


xa recover 用于查询之前prepare未commit或者rollback的xid


5.7后prepare的xid会进行持久化,机器重启后仍然存在(如果有主从,mysql会确保复制给从)

当然应用层需要把响应的xid持久化,用来做错误修复

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容