-
Notifications
You must be signed in to change notification settings - Fork 3.4k
HBASE-29203 There should be a StorefileSize equivalent to the TableSkewCost #6825
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
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
8422758 to
95750a6
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
ff7414c to
f138bbb
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
f138bbb to
067b8d0
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
067b8d0 to
cbe681c
Compare
cbe681c to
3339597
Compare
|
🎊 +1 overall
This message was automatically generated. |
|
🎊 +1 overall
This message was automatically generated. |
ndimiduk
left a comment
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.
Your pictures are too pretty to pass up. Let's learn what we can about how it performs at scale.
| double regionCost = 0; | ||
| if (loads != null && !loads.isEmpty()) { | ||
| // Average the storefile sizes if there are multiple measurements. | ||
| for (BalancerRegionLoad rl : loads) { |
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.
Is this going to be too expensive for a cluster with 1000 servers and 100,000 regions?
This may be a legitimate use-case for re-implementing as a Stream with parallel processing enabled.
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.
Luckily prepare isn't called too often, so hopefully it won't be too bad
…ewCost (#6825) Co-authored-by: Ray Mattingly <rmattingly@hubspot.com> Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
…ewCost (#6825) Co-authored-by: Ray Mattingly <rmattingly@hubspot.com> Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
…ewCost (apache#6825) Co-authored-by: Ray Mattingly <rmattingly@hubspot.com> Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
…ent to the TableSkewCost (apache#6825) (will be in 2.7) Co-authored-by: Ray Mattingly <rmattingly@hubspot.com> Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
…ent to the TableSkewCost (apache#6825) (will be in 2.7) Co-authored-by: Ray Mattingly <rmattingly@hubspot.com> Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
…ewCost (apache#6825) Co-authored-by: Ray Mattingly <rmattingly@hubspot.com> Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
…ewCost (#6825) Co-authored-by: Ray Mattingly <rmattingly@hubspot.com> Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
…ent to the TableSkewCost (apache#6825) (will be in 2.7) Co-authored-by: Ray Mattingly <rmattingly@hubspot.com> Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
…ent to the TableSkewCost (apache#6825) (will be in 2.7) Co-authored-by: Ray Mattingly <rmattingly@hubspot.com> Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
…ewCost (apache#6825) (apache#6839) Signed-off-by: Nick Dimiduk <ndimiduk@apache.org> Co-authored-by: Ray Mattingly <rmattingly@hubspot.com>
I deployed this to a QA cluster at my company and enabled:
We ended up with multiple tables, balanced virtually perfectly in every regard (the empty column is the host assigned to serving system tables):

I'm still thinking about how to unit test this. It is implicitly tested by our existing test suite since it has a default cost >0, but there is not much precedent for testing these cost functions individually and it would be non-trivial to meaningfully test it in isolation