本文主要对 GTS 涉及的专有名词及术语进行定义和解析,方便您更好地理解相关概念并使用 GTS。

事务 (Transaction)

事务,是指作为单个逻辑工作单元执行的一系列操作,要么完全执行,要么完全不执行。

分布式事务

事务的发起者、资源及资源管理器和事务协调者分别位于不同的分布式系统的不同节点之上。

事务分支

一个分布式事务可能包含多个数据库本地事务,在 GTS 框架下,分支可能是一个分库上执行的 SQL 语句,或是一个自定义模式服务的调用。

事务边界

分布式事务需要进行开启,在执行结束后需要进行结束(提交或回滚),事务开启和关闭即划定了一个事务边界。

事务模式

GTS 提供的预先定义好的事务模式,不同的事务模式提供了不同的易用性和性能,不同的事务模式组合(详见最佳实践)可解决极度复杂的场景。

事务分组

每个 GTS 应用都需要申请一个事务分组名称,这个唯一名称由客户指定的参数部分以及系统数据组成。

事务别名

事务别名为客户应用中可自定义的标识部分,放在 @TxcTransaction 注解中用于标识运行中某块事务是否开启全局事务,此名称可以在控制台上看到。

事务实例名

事务实例名为客户应用中开启事务的代码块的标识,可以帮助用户了解应用的哪部分代码开启了全局事务,此名称可以在控制台上看到。

事务发起者

即 GTS 客户端,通过事务协调器开启/提交分布式事务。

ACID

数据库事务正确执行的四个特性的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。

一个支持事务的数据库,必需要具有这四种特性,否则在事务过程当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。

两阶段提交协议

两阶段提交协议(Two-Phase Commit protocol,2PC)是分布式事务的处理协议。

XID

XID,即 GTS 分布式事务的全局事务 ID,GTS 服务会为每一个分布式事务生成一个全局唯一的分布式事务 ID。由于其全局唯一性,我们可以通过 GTS 日志中的 XID 帮助排查问题。

BranchId

BranchId,即 GTS 分布式事务的分支事务 ID,它是事务分支的唯一标识。XID 和 BranchId 是一对多的包含关系,即一个全局事务可能包含多个事务分支。通过在 GTS 日志中跟踪某个 BranchId,可以帮助排查问题,观察事务分支提交和回滚的原因。

GlobalCommit

全局事务提交,GTS 中用于表示一个全局事务中提交了所有操作。

GlobalRollback

全局事务回滚,GTS 中用于表示一个全局事务中回滚了所有操作。

BranchCommit

分支事务提交,GTS 中用于表示提交了一个全局事务的某个分支操作。

BranchRollback

分支事务回滚,GTS 中用于表示回滚了一个全局事务的某个分支操作。