由于事务操作的数据通常跨多个物理节点,在分布式数据库中,类似方案即称为分布式事务。

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 上处于活跃状态的事务。

腾讯云TDSQL MySQL版 - 开发指南 分布式事务的更多相关文章

  1. 腾讯云TDSQL MySQL版 - 开发指南 二级分区

    TDSQL MySQL版 目前支持 Range 和 List 两种格式的二级分区,具体建表语法和 MySQL 分区语法类似. 二级分区语法 一级 Hash,二级 List 分区示例如下: MySQL ...

  2. 腾讯云TDSQL PostgreSQL版 -最佳实践 |优化 SQL 语句

    查看是否为分布键查询 postgres=# explain select * from tbase_1 where f1=1; QUERY PLAN ------------------------- ...

  3. 286万QPS!腾讯云TDSQL打造数据库领域的“超音速战机”

    Bloodhound SSC超音速汽车将陆地极限速度提升到1678公里/小时,号称陆地“超音速战斗机”.无独有偶,同样也在2017年,在英特尔®.腾讯金融云团队的共同见证下,腾讯云数据库TDSQL采用 ...

  4. 腾讯云TDSQL监控库密码忘记问题解决实战

    首先,给大家介绍一下TDSQL.TDSQL MySQL 版(TDSQL for MySQL)是腾讯打造的一款分布式数据库产品,具备强一致高可用.全球部署架构.分布式水平扩展.高性能.企业级安全等特性, ...

  5. TDSQL MySQL版基本原理-水平分表 读写分离 弹性扩展 强同步

    TDSQL MySQL版(TDSQL for MySQL)是部署在腾讯云上的一种支持自动水平拆分.Shared Nothing 架构的分布式数据库.TDSQL MySQL版 即业务获取的是完整的逻辑库 ...

  6. 腾讯云TDSQL审计原理揭秘

    版权声明:本文由孙勇福原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/244 来源:腾云阁 https://www.qclo ...

  7. 阿里云数据库MySQL版快速上手!

    MySQL是全球最受欢迎的开源数据库,其在各Web应用中均有广泛部署.阿里云数据库MySQL版基于Alibaba的MySQL源码分支,经过双11高并发.大数据量的考验,拥有优良的性能和吞吐量.除此之外 ...

  8. Navicat连接腾讯云实例MySQL

    Navicat连接腾讯云实例MySQL 授权所有的用户通过root账户 root密码登陆远程数据库 连接腾讯云实例上的MySQL数据库 这里的密码填入数据库的密码 这里的密码填入登陆云实例的密码也就是 ...

  9. ReadHub项目Kotlin版开发指南(三、MVP架构)

    ReadHub项目Kotlin版转换指南(一.环境搭建) ReadHub项目Kotlin版转换指南(二.数据库和网络请求) ReadHub项目Kotlin版转换指南(三.MVP架构) Android ...

随机推荐

  1. 浅淡fhq_Treap

    浅淡 \(fhq\_Treap\) 前言 fhq_Treap \(yyds\)! \(sto\ FHQ\ orz\) 机房大佬们都打的 \(Splay\) 只有蒟蒻打的 \(fhq\) (防火墙)(范 ...

  2. flex布局制作自适应网页

    网页布局是css的一个重点应用.传统的布局都是依赖display.position.float属性来实现的,但是特殊布局就不易实现,如垂直居中. 01 flex布局是什么?‍ Flex 是 Flexi ...

  3. 备战-Java IO

    备战-Java IO 君如载酒须尽醉,醉来不复思天涯. 简介:备战-Java IO. 一.概述 Java 的 I/O 大概可以分成以下几类: 磁盘操作:File 字节操作:InputStream 和 ...

  4. react-router4 介绍

    react-router 的理解: 1) react 的一个插件库2) 专门用来实现一个 SPA 应用3) 基于 react 的项目基本都会用到此库 SPA  的理解: 1) 单页 Web 应用(si ...

  5. 分布式ID生成器(CosId)的设计与实现

    分布式ID生成器(CosId)设计与实现 CosId 简介 CosId 旨在提供通用.灵活.高性能的分布式 ID 生成器. 目前提供了俩类 ID 生成器: SnowflakeId : 单机 TPS 性 ...

  6. spring的属性注入和构造器注入

    spring在向IOC容器中注入Bean的时候,有三种注入方式: 属性注入构造器注入工厂方法注入平常中用到的前两种方法较多,下面对前两种方法举例.一.属性注入1.创建一个car类,作为注入的bean ...

  7. 自动化测试(1)selenium+python+chrome 连接测试

    环境准备: python版本:3.8.4 开发工具:pycharm 使用chrome和对应的webdriver http://npm.taobao.org/mirrors/chromedriver/ ...

  8. Maven作用及应用

    1.简介 Maven是一个项目管理的Java 工具,在JavaEE中,我们可以使用Maven方便地管理团队合作的项目,现在我们在学习JavaEE框架,使用Maven可以管理类库,有效方便地供团队中的其 ...

  9. SpringCloud升级之路2020.0.x版-1.背景

    本系列为之前系列的整理重启版,随着项目的发展以及项目中的使用,之前系列里面很多东西发生了变化,并且还有一些东西之前系列并没有提到,所以重启这个系列重新整理下,欢迎各位留言交流,谢谢!~ Spring ...

  10. 如何在windows 11中安装WSLG(WSL2)

    什么是 WSL WSL(Windows Subsystem for Linux):Windows 系统中的一个子系统,在这个子系统上可以运行 Linux 操作系统. 可以让开发人员直接在 Window ...