GTS 是集群的核心,需要保证高可用。

    • 对于系统租户,使用 __all_core_table 的 leader 作为 GTS 服务的提供者,高可用能力与普通表一样。时间戳正确性保证。

    原 Leader 主动发起改选的场景,我们称为有主改选。新 leader 上任之前先获取旧 leader 的最大已经授权的时间戳作为新 leader 时间戳授权的基准值。因此该场景下,GTS 提供的时间戳不会回退。

    • 无主选举

    GTS 获取优化

    事务提交的时候都会更新其所在机器的 Global Committed Version,当一条语句可以明确其查询所在机器时,如果是一台机器,则直接使用该机器的 Global Committed Version 作为 Read Version,降低对于全局时间戳的请求压力。

    • 事务提交版本号获取优化