-
Notifications
You must be signed in to change notification settings - Fork 719
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
server/resource: replace score type with resource kind #393
Conversation
1fa7243
to
68b081e
Compare
I think the score things are too complicated, we can calculate the scores more easily.
68b081e
to
e3b0759
Compare
PTAL @siddontang @overvenus |
|
||
// Check diff score. | ||
diff := source.resourceRatio(cb.kind) - target.resourceRatio(cb.kind) | ||
if diff < cb.cfg.MaxDiffScoreFraction { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not MinDiff here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, some configs are confusing, I will change them later.
} | ||
|
||
type leaderBalancer struct { | ||
cfg *BalanceConfig | ||
st scoreType | ||
kind ResourceKind |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we use leaderKind directly in leaderBalancer?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then we need to type it in different places :(
} | ||
if maxUsedRatio < s.usedRatio() { | ||
maxUsedRatio = s.usedRatio() | ||
} | ||
if minLeaderRatio > s.leaderRatio() { | ||
minLeaderRatio = s.leaderRatio() | ||
} | ||
if maxLeaderRatio < s.leaderRatio() { | ||
maxLeaderRatio = s.leaderRatio() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no need to check min == max ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, it's OK if min == max, it means we balance very well.
Rest LGTM The code looks more clean now, but should improve the test coverage. PTAL @overvenus |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
* server/resource: replace score type with resource kind I think the score things are too complicated, we can calculate the scores more easily.
* server/resource: replace score type with resource kind I think the score things are too complicated, we can calculate the scores more easily.
* server/resource: replace score type with resource kind I think the score things are too complicated, we can calculate the scores more easily.
* server/resource: replace score type with resource kind I think the score things are too complicated, we can calculate the scores more easily.
* server/resource: replace score type with resource kind I think the score things are too complicated, we can calculate the scores more easily.
* server/resource: replace score type with resource kind I think the score things are too complicated, we can calculate the scores more easily.
* server/selector: add selector interface and balance selector (#388) We can use selector to abstract different strategies to select the source and target stores. * server: use selector to schedule region peer (#389) * server/resource: replace score type with resource kind (#393) I think the score things are too complicated, we can calculate the scores more easily. * server/metrics: remove redundant metrics (#395) * server/balancer: add scheduler and simplify schedule configs (#396) The original balance configs are complicated and some of them are very confusing, now we simplify them to make it more easy to understand. We replace the concept of "balance" with "schedule". Balance means to keep the resource balance, but we will introduce different kinds of strategies in the future which may not balance, and balance is just one kind of strategies to schedule resources between stores. * server/coordinator: replace balancer worker with coordinator (#398) Coordinator can control the speed of different schedulers. Every scheduler has a unique name, we can add API to run or stop any schedulers dynamically, and different schedulers can run concurrently. * server/constraints: add replication constraints (#402) * server/scheduler: add grant-leader-scheduler (#406) * server/coordinator: combine scheduler and controller * server/api: add scheduler api (#407) We can now use API to list all schedulers, add or remove a scheduler. * Add shuffle-leader-scheduler (#409) * server/scheduler: add shuffle-leader-scheduler
I think the scorers are too complicated, we can calculate the scores very easily.