rajagopr opened a new pull request, #15008: URL: https://github.com/apache/pinot/pull/15008
## Description Added support to pause and resume ingestion for OFFLINE and REALTIME tables when disk utilization exceeds a configured threshold. ## Key Components Introduced `ResourceUtilizationChecker` – A controller periodic task that collects disk utilization of server instances. `ResourceUtilizationInfo` – A container that holds disk usage info of Pinot instances. `/instance/diskUtilization` – New API that is exposed on the Pinot server instances. ## How it Works The periodic task `ResourceUtilizationChecker` runs periodically and computes the disk usage info of the Pinot server instances. It captures the disk utilization info within the ResourceUtilizationInfo objects. For REALTIME tables, the periodic task `RealTimeSegmentValidationManager` pauses consumption on any given table if disk utilization is above the threshold. For OFFLINE tables, the `PinotTaskManager` ensures that new ingestion tasks are not generated if disk utilization is above threshold. ## Notes on Implementation – The periodic task `ResourceUtilizationChecker` runs by default when the controller starts. As of now, this runs as part of every controller. – For OFFLINE tables, new ingestion task generation is blocked when resource constraints are violated as opposed to pausing the task queue. This is because the task queue is shared across all tenants in the cluster. ## Configs `"controller.enable.resource.utilization.check": "true"` --> Config used to enable/disable the behavior that pauses ingestion when resource constraints are violated. ## Testing Tested that the periodic task runs without any errors. ``` 2025/02/07 02:23:01.425 INFO [ResourceUtilizationChecker] [pool-20-thread-1] Running periodic task: ResourceUtilizationChecker 2025/02/07 02:23:01.443 INFO [BasePeriodicTask] [pool-20-thread-1] [TaskRequestId: auto] Finish running task: ResourceUtilizationChecker in 18ms ``` Will perform additional tests and update the results. -- 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