tmqueue optimization - forwarder thread wakeup in case if sleeping and having enqueued forwardable msg
With such change, better system response may be reached, if system performs slow message processing (slower than forwarder sleep time).
#1 Updated by Lauris about 1 month ago
- Status changed from New to Resolved
- % Done changed from 0 to 100
Following updates have been made for tmqueue process:
- tmqueue process have been optimized so that for automatic queues, if new message is available for sending and forwarding dispatch thread is idling, then wake up the dispatch thread for immediate message sending. Due to lock-less nature of the implementation, still it is possible that -s scan time sleep will be applied by forward thread. Original functionality of independent forward dispatch thread sleeping may be restored back with -N flag.
- Performance have been improved when working with multiple forward queues.
- Added new flag sync for queue definition. Which helps to synchronize forward worker threads (if workers>1). Value sync=y means synchronize on tpacall() when destination service is called. sync=c means synchronize on commit. I.e. when first worker have fully committed it's work, only then other worker will submit the message to destination service. The default value is sync=n, meaning no synchronization is applied between the worker threads.
Available from Enduro/X release 7.5.34+.