[
https://issues.apache.org/jira/browse/KUDU-3733?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gabriella Lotz updated KUDU-3733:
---------------------------------
Description:
h3. Context:
The auto-leader-rebalancer is currently gated behind an experimental flag.
Before removing it, one startup behavior bug must be fixed.
Bug to fix first: RunLoop() currently sleeps for the full
--auto_leader_rebalancing_interval_seconds (default: 1 hour) before executing
the first rebalance pass. This means that on master restart or failover, the
rebalancer is effectively inactive for up to an hour, which is unacceptable in
production. The loop should run once immediately on startup, then sleep between
subsequent iterations.
h3. Current behavior:
sleep → run → sleep → run → ...
h3. Expected behavior:
run → sleep → run → sleep → ...
The fix is a small restructure of RunLoop() in auto_leader_rebalancer.cc from a
while(!WaitFor(...)) pattern to a do \{ run } while(!WaitFor(...)) pattern.
h3. After the bug fix:
Remove --auto_leader_rebalancing_enabled experimental gating (or promote the
flag to stable)
Verify that existing tests still pass with the new loop order
Confirm behavior on master failover: new leader should begin rebalancing
promptly
> Remove experimental flag
> ------------------------
>
> Key: KUDU-3733
> URL: https://issues.apache.org/jira/browse/KUDU-3733
> Project: Kudu
> Issue Type: Sub-task
> Reporter: Gabriella Lotz
> Priority: Major
>
> h3. Context:
> The auto-leader-rebalancer is currently gated behind an experimental flag.
> Before removing it, one startup behavior bug must be fixed.
> Bug to fix first: RunLoop() currently sleeps for the full
> --auto_leader_rebalancing_interval_seconds (default: 1 hour) before executing
> the first rebalance pass. This means that on master restart or failover, the
> rebalancer is effectively inactive for up to an hour, which is unacceptable
> in production. The loop should run once immediately on startup, then sleep
> between subsequent iterations.
> h3. Current behavior:
> sleep → run → sleep → run → ...
> h3. Expected behavior:
> run → sleep → run → sleep → ...
> The fix is a small restructure of RunLoop() in auto_leader_rebalancer.cc from
> a while(!WaitFor(...)) pattern to a do \{ run } while(!WaitFor(...)) pattern.
> h3. After the bug fix:
> Remove --auto_leader_rebalancing_enabled experimental gating (or promote the
> flag to stable)
> Verify that existing tests still pass with the new loop order
> Confirm behavior on master failover: new leader should begin rebalancing
> promptly
--
This message was sent by Atlassian Jira
(v8.20.10#820010)