klsince opened a new pull request, #10118:
URL: https://github.com/apache/pinot/pull/10118

   Previously, SegmentRelocator just keeps adding new rebalance tasks 
periodically, w/o knowing the previous ones may be still running and perhaps 
for the same table. This option adds a waiting queue for SegmentRelocator to 
run rebalance tasks sequentially and w/o redundancy.
   
   Running tasks sequentially is mainly to avoid cpu overload on controllers. 
When table has a large ideal/external states, the 
waitForExternalViewToConverge() method can be very cpu costly, as it has to 
deserialize those large helix state. Besides, this method is called by 
TableRebalancer in a while-true loop to rebalance table incrementally, 
incurring the cost of deserialization repetitively. We found when running many 
SegmentRelocator tasks in parallel, the cpu util of controllers could go up to 
100%, affecting other cluster activities like real-time ingestion. 
   
   ## Release notes ##
   controller.segmentRelocator.rebalanceTablesSequentially - false by default


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to