Skip to content
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

Merged
merged 2 commits into from
Nov 27, 2016

Conversation

huachaohuang
Copy link
Contributor

@huachaohuang huachaohuang commented Nov 21, 2016

I think the scorers are too complicated, we can calculate the scores very easily.

@huachaohuang huachaohuang changed the base branch from huachao/selector to develop November 22, 2016 06:45
@huachaohuang huachaohuang changed the title [DNM] server/resource: replace score type with resource kind server/resource: replace score type with resource kind Nov 22, 2016
I think the score things are too complicated, we can calculate
the scores more easily.
@huachaohuang
Copy link
Contributor Author

PTAL @siddontang @overvenus


// Check diff score.
diff := source.resourceRatio(cb.kind) - target.resourceRatio(cb.kind)
if diff < cb.cfg.MaxDiffScoreFraction {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not MinDiff here?

Copy link
Contributor Author

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
Copy link
Contributor

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?

Copy link
Contributor Author

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()
Copy link
Contributor

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 ?

Copy link
Contributor Author

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.

@siddontang
Copy link
Contributor

Rest LGTM

The code looks more clean now, but should improve the test coverage.

PTAL @overvenus

Copy link
Member

@overvenus overvenus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@huachaohuang huachaohuang merged commit 2f78600 into develop Nov 27, 2016
huachaohuang added a commit that referenced this pull request Nov 27, 2016
* server/resource: replace score type with resource kind

I think the score things are too complicated, we can calculate
the scores more easily.
huachaohuang added a commit that referenced this pull request Nov 28, 2016
* server/resource: replace score type with resource kind

I think the score things are too complicated, we can calculate
the scores more easily.
huachaohuang added a commit that referenced this pull request Nov 29, 2016
* server/resource: replace score type with resource kind

I think the score things are too complicated, we can calculate
the scores more easily.
huachaohuang added a commit that referenced this pull request Dec 1, 2016
* server/resource: replace score type with resource kind

I think the score things are too complicated, we can calculate
the scores more easily.
huachaohuang added a commit that referenced this pull request Dec 7, 2016
* server/resource: replace score type with resource kind

I think the score things are too complicated, we can calculate
the scores more easily.
@huachaohuang huachaohuang deleted the huachao/resource-score branch December 7, 2016 10:53
huachaohuang added a commit that referenced this pull request Dec 8, 2016
* server/resource: replace score type with resource kind

I think the score things are too complicated, we can calculate
the scores more easily.
huachaohuang added a commit that referenced this pull request Dec 8, 2016
* 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants