somandal opened a new pull request, #16933: URL: https://github.com/apache/pinot/pull/16933
This PR adds the capability to have a Helix constraint on the number of state transitions per-resource per-instance. This is to prevent starvation of handling state transitions for certain resources when a flood of state transitions come in for other resources (e.g. say a large number of OFFLINE segments are added to the IdealState, we can run into issues where the REALTIME segment commits may take a long time to process because the Helix messages queue is too full. This PR sets the default value to a very high value to ensure existing systems don't see behavior change. Testing: Tested this locally using the HybridQuickStart. Added some artificial delay to the state transition callbacks to see the behavior assuming these take time to process. Scenarios tried: - Setting a resource limit of "2" per-instance and validated that for each table only 2 messages were in the Helix messages queue. There were 2 tables, so at most had 4 state transition messages at any time for each server - Setting a resource limit of "2" per-instance and an overall instance limit of "3". Validated that the Helix messages queue didn't have more than 3 messages, even though 2 tables had state transitions that needed to be processed cc @Jackie-Jiang @krishan1390 -- 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]
