Interface instances attempt to be primary at the same time
- Last UpdatedApr 03, 2023
- 1 minute read
In scenarios where both instances of the interface are started at the same time, or both are running and the data source is started, IF-Node1 and IF-Node2 might both try to assume the role of primary.
At startup, both copies check the active ID point value and the heartbeat point value for the backup. The value determines the role of the node:
-
Primary: If the interface instance reads its own failover ID, it transitions to the primary role. This transition takes two failover interval updates for new data to show up in Data Archive.
-
Backup: when the interface instance reads the other instance's failover ID, it remains in backup role and monitors the heartbeat value for the other interface instance. If the heartbeat value stops updating, the backup transitions to primary. This process takes four failover update intervals, in order to monitor, verify heartbeat value, assume control, and update Data Archive.
-
Unassigned: If both interface instances start at approximately the same time and the active ID point value is unclaimed, IF-Node1 and IF-Node2 both write their failover ID values to the active ID point, transition to AssumingControl, and wait two failover update intervals. Assume IF-Node2 was the last to write its value. At the next failover update interval, IF-Node1 reads the failover ID of IF-Node2 as the active ID value and transitions to the backup role, and IF-Node2 reads its own failover ID and transitions to the primary role. While the point update is immediate, the delay in role transitions resolves any role conflicts that may have occurred before the update reached the data source.