11.3. Old Value Queuing

The Cascade DataHub maintains a queue of old values for all registered points for each client. The depth of this queue is variable. The purpose of queuing old values is to reduce the chance that a data change will be missed during bursts of abnormally high data flow.

For example, if a switch is turned on, then off, then on again very rapidly, the data might arrive at the DataHub so quickly that it has no opportunity to send it where it needs to go before the next value arrives. If this happens, the DataHub may only transmit the final "on" value and the client will not notice that there was in fact an on-off-on transition.

The Cascade DataHub can maintain a short queue to reduce the probability of this happening. If the queue is at least three values deep, the DataHub will send the on-off-on transition even if it knows that the first two values are already stale.

Old value queuing is harmless so long as periods of abnormally high data flow are short. If the data flow rate is high enough that the DataHub can never keep up, the effect is that the old value queue will always be full, no matter how long or short it is. The CPU cost of maintaining even a short queue in a sustained overload situation is very high, and depends on the queue depth. See also Section 11.6, “CPU Saturation”.

How to Optimize