本文主要對 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 中用于表示回滾了一個全局事務的某個分支操作。