[
https://issues.apache.org/jira/browse/KUDU-3733?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gabriella Lotz updated KUDU-3733:
---------------------------------
Summary: Restructure RunLoop() in auto_leader_rebalancer (was: Remove
experimental flag)
> Restructure RunLoop() in auto_leader_rebalancer
> -----------------------------------------------
>
> Key: KUDU-3733
> URL: https://issues.apache.org/jira/browse/KUDU-3733
> Project: Kudu
> Issue Type: Sub-task
> Reporter: Gabriella Lotz
> Assignee: 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)