CAICAIIs commented on PR #1057:
URL: 
https://github.com/apache/incubator-seata-go/pull/1057#issuecomment-4038431493

   结合当前 seata-go 的实现现状,并基于当前实现和评论区已验证的问题,我倾向于关闭当前pr,并在后续通过独立重构方式推进。参考了 Java 端 
XA 的资源抽象思路,大概要完成以下这些重构任务才能重新设计
   
   1. 先重构 XA 的公共框架
      - 先把当前偏 MySQL 的 XA 主流程,改成可按不同数据库挂接不同实现的结构。
   2. 把现有 MySQL XA 迁移到新框架里
      - 先保证 MySQL 现有能力不变,验证新框架本身是稳的。
   3. 补上数据库能力说明
      - 明确每种数据库分别支持什么:
      - 是否支持两阶段提交、是否支持 recover、是否要求绑定同一连接、错误语义是否一致。
   4. 先验证 Oracle 在 Go 里有没有真正可行的实现路径
      - 先做小范围验证,确认驱动、连接管理、提交/回滚、recover 链路是否真的能走通。
   5. 单独实现 PostgreSQL 的两阶段提交方案
      - 不直接照搬 MySQL XA,而是按 PostgreSQL 自己的两阶段提交机制单独实现。
   6. 如果 Oracle 路线验证通过,再正式补 Oracle 支持
      - 把 Oracle 做成独立实现,不混在 MySQL 逻辑里。
   7. 最后补完整测试
      - 补正常提交、正常回滚、异常中断、恢复处理、跨连接二阶段处理这些测试。


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to