Apama 10.15.0 | Deploying and Managing Apama Applications | Correlator Utilities Reference | Starting the correlator | Determining whether to disconnect slow receivers | Description of slow receivers
 
Description of slow receivers
The correlator uses two strategies to detect slow receivers: time-based, and size-based.
Time-based (maxOutstandingSecs) slow consumer detection
Events that the correlator sends to Apama clients, IAFs or other correlators are acknowledged by the receiver after the event has been delivered to the receiver. By default, if the correlator does not receive an acknowledgment within 10 seconds after the correlator sent the event, the correlator marks that receiver as being slow to consume events.
For most systems, and assuming that the underlying network connections are not prone to drop-outs, the default setting of 10 seconds is usually adequate.
You can control the length of time within which the receiver must acknowledge an event before it is marked as a slow receiver. To do so, you can specify maxOutstandingSecs in the YAML configuration file that is used when starting the correlator. See YAML configuration file for the correlator.
For example, if you specify maxOutstandingSecs: 15.0 in the YAML configuration file, the correlator marks a receiver as slow if the correlator does not receive an acknowledgment within 15 seconds. If you do not specify this element, the default is 10 seconds. You should not specify a value under 1 second because doing so raises the risk that the correlator might designate a receiver as slow when it is in fact not slow.
The mechanism that flags a receiver as slow is not precise. If a receiver does not acknowledge an event sequence after 10 seconds (the default setting), the correlator does not immediately designate the receiver as slow. Typically, the designation happens within the next 5 seconds. If you change the value of maxOutstandingSecs, the slow designation takes effect between 1 and 1.5 times the value of maxOutstandingSecs.
Size-based (maxOutstandingKb) slow consumer detection
maxOutstandingKb can also be specified in the YAML configuration file that is used when starting the correlator. See YAML configuration file for the correlator.
The correlator keeps track of the events that have been sent to each receiver but have not yet been acknowledged, based on the amount of memory taken up by those events. The correlator marks a receiver as being slow if the size of the events waiting to be acknowledged goes above the maxOutstandingKb limit, which is 10MB by default.
Note that the size-based slow consumer detection operates completely independently of the time-based (maxOutstandingSecs) slow consumer detection.
It is rare for the size-based limit to be exceeded unless the events being transmitted are very large.
Connectivity plug-ins slow consumer detection
Connectivity chains use time-based slow consumer detection similar to maxOutstandingSecs. The size of the time window is currently set at 10 seconds (not configurable). A chain that has not processed a message for more than 10 seconds is logged as slow, but is not disconnected.