Skip to content

Operate transactions design

WangLiang/王良 edited this page Jan 9, 2024 · 38 revisions

控制台操作事务功能设计

全局事务状态分为三⼤类:

  • 重试:GlobalStatus.Committing, GlobalStatus.CommitRetrying, GlobalStatus.Committed, GlobalStatus.TimeoutRollbacking,GlobalStatus.TimeoutRollbackRetrying, GlobalStatus.RollbackRetrying, GlobalStatus.Rollbacking
  • 失败:CommitFailed,RollbackFailed,TimeoutRollbackFailed,CommitRetryTimeout, RollbackRetryTimeout
  • 其他:Begin,AsyncCommitting,Committed,Rollbacked,Finished

下⽂的重试,失败状态指上述这些状态

1. 全局事务操作功能设计:

1.1)删除全局事务:

图片

1.2)停⽌提交/回滚重试:

图片

1.3)继续提交/回滚重试:

图片

1.4)更换状态操作示意图:

图片

注意:定时任务跳过该全局事务为PhaseTwo_STOP_Retryable的状态即可

1.5)发起单次提交/回滚:

Uploading 图片.png…

1.6)变更状态操作:

Uploading 图片.png…

问题:
将失败的修改为重试状态:

  • CommitFailed / RollbackFailed :是否要考虑超时时间问题,因为这期间可能过了很久,修改后会⻢上超时⽽失败
  • 针对TimeoutRollbackFailed / CommitRetryTimeout / RollbackRetryTimeout,有两个做法
    • 不⽀持修改,直接报错
    • ⽀持修改,但需要需要传⼊新的超时时间
Clone this wiki locally