Throttle Calculation

Global Throttle Manager calculates the throttles as follows:

For Quota and High-Water-Mark throttles, it uses the following formula to get the max count per engine:

MaxCountPerEngine = ThrottleMaxCount/maxActiveEngines

For Rate and Error throttles, the calculation is done as follows:

MaxCountPerEngine = (ThrottleMaxCount/maxActiveEngines)*(UpdateIntervalSec/Throttle Interval)
  • ThrottleMaxCount and Throttle Interval are defined in the throttle configuration.
  • UpdateIntervalSec is the time interval in seconds for sending throttle updates to Global Throttle Manager. The default value is 10 seconds and can be edited in the ASG_CONFIG_HOME/asg.properties file. This is defined by the following property:

      tibco.clientVar.ASG/Throttle/UpdateIntervalSec=10

The value of MaxCountPerEngine is always rounded up. For example, 1.1 will be 2 and 1.9 will also be 2.

For non-zero throttles, this rounding means that the MaxCount Per Engine will always be at least 1. For example, if there are 20 active engines and the calculated value of MaxCountPerEngine is 0.4, then the effective throttle limit is calculated as:

Ceiling(0.4 )x active engines = 1x20 = 20

For this case, the value of MaxCountPerEngine is not 8. (0.4x20)

This indicates that if there are many active engines and the throttles are defined in this setup, then the MaxCount can never be less than the number of active engines.