-
Notifications
You must be signed in to change notification settings - Fork 720
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow evicting leader scheduling when lightning importing #7853
Comments
Hi, after I understand the context, I think that if it was just to solve this problem, it would be enough to filter out pd/pkg/schedule/schedulers/scheduler_controller.go Lines 474 to 486 in 4820bc5
But that would make the interface proprietary and weaken its generalization. So would you consider providing more keys like |
We could do both step by step. First providing the same behavior as before to skip the evict leader scheduler, then extend the ability to stop any other scheduler. |
Do you have any suggestions? @rleungx |
I think we need to clarify the semantics of |
@rleungx You seem to prefer the second option. I completely agree with your thoughts. Let me briefly describe the prioritization issue. I try to use dot to express hierarchical relationship. A.B means that the rank of A is greater than that of B, i.e., A contains B. In this case, we prioritize A before B. For example, if a user sets deny A and allow A.B, then allow B on top of deny A, instead of denying A directly to override allow B. The case of allow A and deny A.B is similar. The details can't be described in a few sentences, so I'd like to know how the team would like to handle this issue, and I'll write a more detailed proposal if team are inclined to implement the second one. |
Which solution would you like? @lance6716 |
I think this one is better. Client can configure what rules it wants to be excluded from "deny all". |
After discuss with @rleungx @easonn7 @lance6716 , we ultimately opted for the first method. This is because after searching for all possible block situations related to the scheduler, I found that the only situation where TiKV can be taken offline using ti-operator when lightning sets the rule label. So, the first solution completely meets our needs. |
Enhancement Task
Previously, lightning used the global pause policy to avoid scheduling when importing data, which allowed evicting the leader in the process. After #4649, we support pausing scheduling a specified key range through a label rule. But it will pause all scheduling including the evict leader.
Recently, we encountered an issue: pingcap/tidb#51143. The import process will block the pod from being rescheduled to another node. In this case, pausing evicting the leader is not suitable. At least, we need to make it compatible with the previous behavior.
The text was updated successfully, but these errors were encountered: