[ 
https://issues.apache.org/jira/browse/KUDU-3732?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gabriella Lotz updated KUDU-3732:
---------------------------------
    Description: 
h2. Address the two existing TODOs

Both are in 
{{{}[src/kudu/master/auto_rebalancer.cc](src/kudu/master/auto_rebalancer.cc){}}}:

{*}TODO 1 (line 478){*}: {{remove moves that fail to be scheduled from 
'replica_moves'}}

Currently {{ExecuteMoves()}} iterates all moves but does not remove 
failed-to-schedule moves. Failed moves stay in the in-progress set, blocking 
future rounds from reconsidering those tablets. Fix: collect scheduling 
failures and erase them from {{replica_moves}} before returning, so 
{{CheckReplicaMovesCompleted}} only waits on actually-submitted moves.

{*}TODO 2 (line 853){*}: {{Retrieve consensus state from CatalogManager 
instead}}

{{CheckMoveCompleted()}} currently mirrors the tool-side 
{{CheckCompleteMove()}} — it issues RPCs. The better path reads consensus state 
from the master's in-memory catalog (already available via 
{{{}CatalogManager{}}}), eliminating the extra RPC round-trip per move. The 
implementation pattern exists in {{{}CatalogManager::GetTabletLocations{}}}.

{*}Jira{*}: one ticket per TODO is reasonable, or bundle them as {{{}KUDU-XXXX: 
Auto-rebalancer correctness cleanup{}}}.

  was:Address TODO in auto_rebalancer.cc.


> Get consensus state from CatalogManager
> ---------------------------------------
>
>                 Key: KUDU-3732
>                 URL: https://issues.apache.org/jira/browse/KUDU-3732
>             Project: Kudu
>          Issue Type: Sub-task
>            Reporter: Gabriella Lotz
>            Priority: Major
>
> h2. Address the two existing TODOs
> Both are in 
> {{{}[src/kudu/master/auto_rebalancer.cc](src/kudu/master/auto_rebalancer.cc){}}}:
> {*}TODO 1 (line 478){*}: {{remove moves that fail to be scheduled from 
> 'replica_moves'}}
> Currently {{ExecuteMoves()}} iterates all moves but does not remove 
> failed-to-schedule moves. Failed moves stay in the in-progress set, blocking 
> future rounds from reconsidering those tablets. Fix: collect scheduling 
> failures and erase them from {{replica_moves}} before returning, so 
> {{CheckReplicaMovesCompleted}} only waits on actually-submitted moves.
> {*}TODO 2 (line 853){*}: {{Retrieve consensus state from CatalogManager 
> instead}}
> {{CheckMoveCompleted()}} currently mirrors the tool-side 
> {{CheckCompleteMove()}} — it issues RPCs. The better path reads consensus 
> state from the master's in-memory catalog (already available via 
> {{{}CatalogManager{}}}), eliminating the extra RPC round-trip per move. The 
> implementation pattern exists in {{{}CatalogManager::GetTabletLocations{}}}.
> {*}Jira{*}: one ticket per TODO is reasonable, or bundle them as 
> {{{}KUDU-XXXX: Auto-rebalancer correctness cleanup{}}}.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to