Alexey Serbin created KUDU-3199:
-----------------------------------
Summary: kudu cluster rebalaner: add a flag to ignore all defined
locations
Key: KUDU-3199
URL: https://issues.apache.org/jira/browse/KUDU-3199
Project: Kudu
Issue Type: Improvement
Components: CLI
Reporter: Alexey Serbin
When the location-aware rebalancer was designed, it was assumed that the tool
should always honor the partitioning of the cluster defined by locations
whatever the partitioning was. The only options considered were to run the
process excluding particular rebalancing phases:
* correction of placement policy violations ({{\-\-disable_policy_fixer}})
* inter-location rebalancing, i.e. rebalancing across different locations
({{\-\-disable_cross_location_rebalancing}})
* intra-location rebalancing, i.e. rebalancing within a location
({{\-\-disable_intra_location_rebalancing}})
As it turns out, there are use cases when people want to run the rebalancer on
a location-aware cluster ignoring the location-awareness specifics. Those
cases are:
# The locations are defined by some higher-level cluster orchestration
software, and people are reluctant to disable the location-awareness for Kudu
specifically (i.e. providing an alternative script for
{{\-\-location_mapping_cmd}}), but want to even out the distribution of
replicas.
# Having just two locations defined for some time. Even if it's a transitional
phase (e.g., awaiting for a new zone/rack/datacenter to be added 'soon'), it
could take some time.
For both cases, there is a workaround if every location has the same number of
tablet servers: run the rebalancer tool with the {{\-\-disable_policy_fixer}}
flag. However, this workaround isn't applicable if there is difference in the
number of tablet replicas per location, and no combination of flags could make
the location-aware rebalancer run as it there were no locations defined.
Let's add a new flag for the {{kudu cluster rebalance}} CLI tool to make it run
on a location-aware cluster as if no locations were defined. Of course, the
flag should be {{off}} by default.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)