About the low latency and high throughput options
There are two correlator options that determine the behavior of the correlator with regard to low latency and high throughput. Exactly one of these options is always set. The default varies:
On multiprocessor machines, the
--lowLatency option is set.
On uniprocessor machines, the
--highThroughput option is set.
Typically, you do not need to change which option is set. However, if performance is not satisfactory, changing from one option to the other might have a positive effect. Some background about how the correlator works is required to determine whether to change which option is set.
Within the correlator, EPL emits one event at a time. However, when the Apama transport sends events from the correlator to receivers, there is a fixed amount of overhead regardless of whether the transport sends one event or a batch of events. In other words, it is more efficient to send batches of events rather than single events. Consequently, the correlator puts emitted events on a queue. This keeps processing and communications separate, and allows flexibility with regard to latency and throughput.
The Apama transport pulls events off the correlator’s queue and sends them to receivers. The behavior of the transport is determined by which option is set:
Low latency — When
--lowLatency is set, the transport waits until an event is on the correlator’s queue. The transport then sends, in one batch, as many events as are available on the queue. Because of thread scheduling effects, this can be more than the event that woke up the transport. This is the default behavior for multiprocessor machines.
High throughput — When
--highThroughput is set, the transport waits 10 milliseconds before it tries to send any events. Typically, during that time, the correlator emits enough events to its output queue to form an efficient batch. This is the default behavior for uniprocessor machines.
As you can imagine, waiting 10 milliseconds has a negative impact on the latency of the system. On multiprocessor systems, waiting 10 milliseconds is not desired. However, on uniprocessor machines, the consequences for not waiting for a batch of events to transport is too great and so the default is high throughput.
Apama technical support recommends that you run a correlator on a system that has at least dual CPUs.
Copyright © 2013
Software AG, Darmstadt, Germany and/or Software AG USA Inc., Reston, VA, USA, and/or Terracotta Inc., San Francisco, CA, USA, and/or Software AG (Canada) Inc., Cambridge, Ontario, Canada, and/or, Software AG (UK) Ltd., Derby, United Kingdom, and/or Software A.G. (Israel) Ltd., Or-Yehuda, Israel and/or their licensors.