apache / apache/incubator-seata

UpdateExecutor先获取了前后镜像,然后在connectionProxy中commit,如果不在 全局事物中,只是单纯的在globalLock中,没必要生成前后镜像,影响效率,可以直接在前后镜像的获取前加上判断RootContext.inGlobalTransaction

Open
#3,789 6 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.