apache / apache/incubator-seata
UpdateExecutor先获取了前后镜像,然后在connectionProxy中commit,如果不在 全局事物中,只是单纯的在globalLock中,没必要生成前后镜像,影响效率,可以直接在前后镜像的获取前加上判断RootContext.inGlobalTransaction
- Dominant language
- Java
- Stars
- 26k
- Forks
- 8.8k
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 4
Description
## Why you need it?
Is your feature request related to a problem? Please describe in details
生成afterImage的时候用的 (id,...) in (1,...),在用sharding时无法路由到对应的表,造成所有库所有表都扫描了。影响性能
另tc建议加个定时扫描针对rollback失败超过多少次或者多少时间的接入下通知(丁丁或者啥),也不用每个业务方自己扫描undo log了
## How it could be?
A clear and concise description of what you want to happen. You can explain more about input of the feature, and output of it.
## Other related information
Add any other context or screenshots about the feature request here.
Contributor guide
Research direction
Start by reading UpdateExecutor and connectionProxy, then trace how RootContext.inGlobalTransaction affects beforeImage and afterImage creation. Reproduce the sharding case described for the after-image query and inspect the rollback-failure and undo-log handling; done means avoiding unnecessary image work outside global transactions and defining the requested rollback notification behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- databases, distributed-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100