返回顶部
首页 > 资讯 > 数据库 >腾讯云TDSQL MySQL版 - 开发指南 分布式事务
  • 430
分享到

腾讯云TDSQL MySQL版 - 开发指南 分布式事务

腾讯云TDSQLMySQL版-开发指南分布式事务 2016-10-17 05:10:14 430人浏览 绘本
摘要

由于事务操作的数据通常跨多个物理节点,在分布式数据库中,类似方案即称为分布式事务。 TDsql Mysql版 支持普通分布式事务协议和 XA 分布式事务协议。TDSQL mysql版(内核5.7或以上版本)默认支持分布式事务,且对客户端透

腾讯云TDSQL MySQL版 - 开发指南 分布式事务

由于事务操作的数据通常跨多个物理节点,在分布式数据库中,类似方案即称为分布式事务。
TDsql Mysql版 支持普通分布式事务协议和 XA 分布式事务协议。TDSQL mysql版(内核5.7或以上版本)默认支持分布式事务,且对客户端透明,像使用单机事务一样方便。
TDSQL MySQL版 分布式事务采用两阶段提交算法(2PC)保证事务的原子性(Atomicity)和一致性(Consistency),隔离级别配置为 Read committed、Repeatable read 或 Serializable。

普通分布式事务
begin; # 开启事务
... # 跨 set 的增删改查等非 DDL 操作
commit; # 提交事务
XA 分布式事务
XA 分布式事务是指跨实例的事务:

xa begin ""; # 开启 XA 事务,事务标识由系统内部生成,因此传入空字符串
... # 跨 set 的增删改查等非 DDL 操作
select gtid(); # 获取当前 XA 事务的标识,下面假定为"xid"
xa prepare "xid"; # 准备事务
xa commit/rollback "xid"; # 提交或回滚事务
新增事务接口
select gtid() :获取当前分布式事务的全局唯一标识。如果为空,则该事务不是分布式事务。

普通分布式事务标识的格式为:‘网关id’-‘proxy随机值’-‘序列号’-‘时间戳’-‘分区号’,例如 c46535fe-b6-dd-595db6b8-25。
XA 分布式事务标识的格式为:‘ex’-‘网关id’-‘proxy随机值’-‘序列号’-‘时间戳’-‘分区号’,例如 ex-c46535fe-b6-dd-595db6b8-25。
select gtid_state(“当前分布式事务的全局唯一标识”):在事务提交异常之后(默认3秒后)用来获取事务的状态。可能的结果有:

COMMIT:标识该事务已经或者最终会被提交。
ABORT:标识该事务最终会被回滚。
空:由于事务的状态会在一个小时之后清除,因此有以下两种可能:
一个小时之后查询,标识事务状态已经清除,
一个小时以内查询,标识事务最终会被回滚。
xa boost ‘当前分布式事务的全局唯一标识’:普通事务提交(commit)发送异常之后,事务在一段时间内(默认30秒)由后台组件自动提交或者回滚掉。如果用户不愿意等待这么长的时间,可以反复调用该接口,促使系统及时地提交或回滚掉事务。该接口会返回事务的状态,即提交或者回滚。

xa lockwait:显示当前分布式事务的等待关系。用户可以通过 dot 工具,将其转化为图片。

xa show:显示当前 proxy 上处于活跃状态的事务。

您可能感兴趣的文档:

--结束END--

本文标题: 腾讯云TDSQL MySQL版 - 开发指南 分布式事务

本文链接: https://lsjlt.com/news/8692.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作