apache / apache/incubator-seata
[Summer2021] Improving the phase-two performance of TCC mode
- Dominant language
- Java
- Stars
- 26k
- Forks
- 8.8k
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 4
Description
# Background
At present, the TCC mode only supports synchronous rollback, but in some scenarios, some TCC branches can be rollback asynchronously.
Reduce the cost of global rollback.
The Seata community wants to open the task to `Summer 2021`.
# Target
In TCC mode, the phase-two rollback can be asynchronous.
# Difficulty
Medium
# Mentor
@wangliang181230
[841369634@qq.com](mailto:841369634@qq.com)
# Output Requirements
* TCC annotation, add a field for the type of rollback. The default value is synchronous rollback.
* When the TCC branch is registered, the type of rollback is submitted to `Seata-Server` together.
* When `Seata-Server` global rollback, if the type of rollback is asynchronous rollback, skip the branch and let a thread named `asyncRollbacking` rollback the branch.
# Technical Requirements
* Familiar with Java programming language.
* Understand common design patterns
* Ability to read source code
————————————————————————
# 背景
目前TCC模式只支持同步回滚,但是在部分场景下,部分TCC分支是可以异步回滚的。
降低全局回滚的时间成本。
Seata 社区想将这个任务开放给 `Summer 2021`。
# 目标
在TCC模式下,二阶段回滚操作可异步化。
# 难度
中等
# 导师
@wangliang181230
[841369634@qq.com](mailto:841369634@qq.com)
# 产出要求
* TCC的注解,添加回滚方式的字段,默认:同步回滚。
* TCC分支注册时,将回滚方式一同提交到`Seata-Server`。
* `Seata-Server`全局回滚时,如果分支的回滚方式为异步回滚,则跳过该分支,留到异步定时任务来处理回滚。
# 能力要求
* 熟悉Java开发语言。
* 理解常见设计模式。
* 具备一定的源码阅读能力。
Contributor guide
Research direction
Start by tracing the TCC annotation, branch registration, and Seata-Server global rollback flow described in the requirements. Done means rollback type metadata is registered with each branch, synchronous rollback remains the default, and asynchronous branches are skipped for an asyncRollbacking worker.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100