[ 
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)

Reply via email to