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]

Reply via email to