[improve](env) Ensure next majority is met before drop an alive follower#28101
Conversation
|
run buildall |
| for (Frontend fe : frontends.values()) { | ||
| if (fe.getRole() == FrontendNodeType.FOLLOWER) { | ||
| numFollower += 1; | ||
| if (fe.isAlive()) { |
There was a problem hiding this comment.
Alive status is set by heart mgr, the latency time is 5 seconds, In some situation, it can not detect fe is down ?
There was a problem hiding this comment.
Yes, this is only responsible for intercepting common cases. Some extreme cases cannot be guaranteed.
5662195 to
6a9cdbc
Compare
|
run buildall |
Here is an example: ``` mysql> ALTER SYSTEM DROP FOLLOWER "127.0.0.1:19017"; ERROR 1105 (HY000): errCode = 2, detailMessage = Unable to drop this alive follower, because the quorum requirements are not met after this command execution. Current num alive followers 2, num followers 3, majority after execution 2 ```
6a9cdbc to
5283adf
Compare
|
run buildall |
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
TPC-H test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G' |
|
(From new machine)TeamCity pipeline, clickbench performance test result: |
…wer (apache#28101) Here is an example: ``` mysql> ALTER SYSTEM DROP FOLLOWER "127.0.0.1:19017"; ERROR 1105 (HY000): errCode = 2, detailMessage = Unable to drop this alive follower, because the quorum requirements are not met after this command execution. Current num alive followers 2, num followers 3, majority after execution 2 ```
Proposed changes
Issue Number: close #xxx
Here is an example:
Further comments
If this is a relatively large or complex change, kick off the discussion at dev@doris.apache.org by explaining why you chose the solution you did and what alternatives you considered, etc...