thunguo commented on issue #1056: URL: https://github.com/apache/incubator-seata-go/issues/1056#issuecomment-4038605216
> 发现现有 XA 链路从驱动注册、DBType 识别到二阶段提交流程都仍然带有明显的 MySQL 假设,同时 Oracle 在 Go 侧的底层 XA 路径也还没有验证打通,所以现在无法在 PR [#1057](https://github.com/apache/incubator-seata-go/pull/1057) 基础上直接实现。如果实现可以参考以下大致路线方案: > > 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]
