operator: unnecessary transfer-leader in move-leader without joint consensus
- Dominant language
- Go
- Stars
- 1.2k
- Forks
- 783
- Avg merge
- 5d 21h
- Merged PRs (30d)
- 36
Description
## Enhancement Task
When attempting to move a leader from store 1 to store 6 using the CreateMoveLeaderOperator with joint consensus, an operator is created with the following steps:
```
steps:[0:{add learner peer 13 on store 6}, 1:{use joint consensus, promote learner peer 13 on store 6 to voter, demote voter peer 1 on store 1 to learner}, 2:{transfer leader from store 1 to store 6}, 3:{leave joint state, promote learner peer 13 on store 6 to voter, demote voter peer 1 on store 1 to learner}, 4:{remove peer on store 1}]
```
This process results in the leader being transferred only once.
Without joint consensus, the operator created follows these steps:
```
steps:[0:{add learner peer 13 on store 6}, 1:{promote learner peer 13 on store 6 to voter}, 2:{transfer leader from store 1 to store 2}, 3:{remove peer on store 1}, 4:{transfer leader from store 2 to store 6}]
```
which will only transfer leader twice.
Contributor guide
Assessment
This issue has not been assessed yet.