J-HowHuang opened a new pull request, #19055: URL: https://github.com/apache/pinot/pull/19055
## Description In the case where rebalance needs multiple iteration due to frequent ideal state update from other writer (e.g. realtime ingestion), if the table has any tier, a TierSegmentAssignment instance will be constructed every time in which ZK reads are requested on all segments (and it's not bulk read but individual reads). We don't need to refresh segment to tier mapping every time. Instead, each rebalance job captures the segment to tier mapping when started, and re-use this to determine each segment's tier (if a segment changed its eligible tier mid-fly, we can rely on the next rebalance run to correct that, as we don't have strict contract on how quick tiers should reflect) ## Change * Add `Map<String, String> _segmentToTierName` in `BaseSegmentAssignment` * Compute `_segmentToTierName` the first time `rebalanceTiers()` is called * Use `_segmentToTierName` and `currentAssignment` to construct `TierSegmentAssignment` -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
