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

backport-2.1: storage: make load-based replica rebalancing decisions at the store level #29663

Merged
merged 5 commits into from
Sep 6, 2018

Conversation

a-robinson
Copy link
Contributor

Backport 5/5 commits from #28852.

/cc @cockroachdb/release


Built on top of #28340, which is where the first 3 commits are from. This is still somewhat incomplete, in that it's missing unit tests and I'm only just now running tpc-c 10k on it. Sending out now to start the discussion of whether to include it in 2.1, since we're obviously very late in the intended development cycle.

Follow-up to cockroachdb#28340, which did this for just leases.

Fixes cockroachdb#17979

Release note (performance improvement): Range replicas will be
automatically rebalanced throughout the cluster to even out the amount
of QPS being handled by each node.
This leaves properly cleaning up the code for later, but ensures that
the existing cluster setting will enable store-level rebalancing rather
than the old experimental write/disk-based rebalancing.

Release note: None
It's identical to the test for load-based lease rebalancing, just with
more than 3 nodes such that replicas must be rebalanced in addition to
leases in order for load to be properly spread across all nodes.

Release note: None
This cleans up all the old code, settings, and tests without massively
overhauling the structure of things. More could be done to simplify
things, but this is the least intrusive set of changes that seem
appropriate so late in the development cycle.

Release note (backwards-incompatible change): The experimental,
non-recommended stat-based rebalancing setting controlled by the
kv.allocator.stat_based_rebalancing.enabled and
kv.allocator.stat_rebalance_threshold cluster settings has been removed
and replaced by a new, better supported approach to load-based
rebalancing that can be controlled via the new
kv.allocator.load_based_rebalancing cluster setting. By default, leases
will be rebalanced within a cluster to achieve better QPS balance.
@a-robinson a-robinson requested review from BramGruneir and a team September 6, 2018 18:54
@cockroach-teamcity
Copy link
Member

This change is Reviewable

Copy link
Member

@BramGruneir BramGruneir left a comment

Choose a reason for hiding this comment

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

LGTM

Reviewable status: :shipit: complete! 0 of 0 LGTMs obtained

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