When starting MQTT Transmission, changing one MQTT server definition, refreshing the whole MQTT transmission (under “transmission controll”), or failing over to a redundant Ignition gateway, it appears that the MQTT Transmission module must re-discover its whole tag tree.
The status field in the MQTT transmission server definitions progresses through the following states:
0 of 00 of XX of X
Based on my understanding, Store & Forward begins buffering data once the server connection reaches the 0 of X state. If that understanding is correct, data generated during the initial 0 of 0 period is lost, even with S&F.
My main question is:
Is there any way to reduce or eliminate data loss during the 0 of 0 period, or is the only option to reduce the duration of that state?
My Environment
- Approximately 50,000 tags are published through MQTT Transmission.
- Initially, the
0 of 0period lasted about 50 seconds before all MQTT server connections completed discovery. The step between 0 of X and X of X always take a negligible amount of time. - During this process, Ignition reports CPU and memory utilization well below 100%.
What I’ve tried
-
Split the data across 60 MQTT clients (60 Edge nodes) within a single MQTT Server definition.
- No noticeable reduction in discovery time during failover to a redundant GW.
-
Removed custom metadata properties on the tag field.
- No significant improvement.
-
Kept the same number of MQTT clients but split them across multiple MQTT Server definitions in the transmission module.
- Reduced the discovery time by approximately 50%, but it is still around 35 seconds.
Questions
- Is there any way to reduce or eliminate data loss during the 0 of 0 period, or is the only option to reduce the duration of that state?
- Are there any other settings or architectural changes that can reduce the
0 of 0discovery period? - We have a redundant Ignition Gateway configured with a Warm redundancy activity level. While the gateway is running as the backup, the MQTT Transmission server connection status remains at 0 of 0. Is there a configuration option that allows the backup gateway to pre-discover the tag tree while it is on standby? In other words, can it remain in a state equivalent to 0 of X