book
Article ID: KB0089151
calendar_today
Updated On:
Description
Resolution:
The quantum options provide a mechanism for developers to tune the balance between fairness and performance. Fairness is defined as how RTserver shares network resources between RTserver connections. In its default configuration where preference is given to performance a high speed publisher can monopolize the connection to RTserver until all its messages are sent.
In SmartSockets 5.5.5, four undocumented 'quantum' options were added. Two of the quantum options control how the RTserver deals with RTclient connections; the other two control how the RTserver deals with connections to other RTservers. Quantums are set based on time, on number of messages, or both for each connection type. By default, all quantum settings are off.
Any change in the performance of your application when setting these options is difficult to predict. As a rule of thumb if you have very large messages it is probably best to set time based quantums. If your messages are small then message based quantums are more useful. If both time and message quantums are set then whichever expires first will reset both, that being, process up to X number of messages but not to exceed Y milliseconds.
For connections to other RTservers:
_max_msgs_per_server_quantum - This option defines the maximum number of messages that RTserver will process on another RTserver connection before moving on to the next connection that needs attention. The default value is 0, meaning that the RTserver ignores this option. Value is set
in number of messages.
_max_time_per_server_quantum - The maximum amount of time in milliseconds that RTserver will process messages on another RTserver connection before moving on to the next connection that needs attention. The default value is 0, meaning that the RTserver ignores this option. Value is set in milliseconds.
For connections to RTclients:
_max_msgs_per_client_quantum - The maximum number of messages that RTserver will process on an RTclient connection before moving on to the next connection that needs attention. The default value is 0, meaning that the RTserver ignores this option. Value is set in number of messages.
_max_time_per_client_quantum - The maximum amount of time in milliseconds that RTserver will process messages on an RTclient's connection before moving on to the next connection that needs attention. The default value is 0, meaning that the RTserver ignores this option. Value is set in milliseconds.
For connections using groups:
_max_msgs_per_group_quantum - The maximum number of messages that RTserver will process on a group connection before moving on to the next connection that needs attention. The default value is 0, meaning that the RTserver ignores this option. Value is set in number of messages.
_max_time_per_group_quantum - The maximum amount of time in milliseconds that RTserver will process messages on a group connection before moving on to the next connection that needs attention. The default value is 0, meaning that the RTserver ignores this option. Value is set in milliseconds.
Issue/Introduction
What are the RTserver Quantum Options?