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