A topology master server receives configuration changes from other servers in the topology, verifies the changes, and then makes the changes available to all connected servers.
When updating, the master sends a digest of its subtree contents. If the node's digest differs from the master's, the server node knows it is not synchronized. The servers pull the entire subtree from the master if they detect that they are not synchronized.
A server detects it is not synchronized with the master under the following conditions:
- The server's subtree digest differs from the master's digest at the end of its periodic polling interval.
- One or more servers have been added to or removed from the topology.
The master of the topology is selected by prioritizing servers based on:
- Minimum supported product version
- Server version
- Earliest start time
- Startup UUID (smaller is preferred)
After determining a master, the topology data is reviewed from all available servers, every five seconds by default, to determine if any new information identifies a better server master. If a new server can be the master and no other servers have indicated that they should be the master, it will communicate its eligibility to the other servers. This ensures that all servers accept the same master at approximately the same time, within a few milliseconds of each other. If there is no better master, the initial master maintains the role.
After the best master has been selected for the given interval, the following conditions are confirmed:
- A majority of servers is reachable from that master.
The master server itself is considered while determining this majority.
- There is only a single master in the entire topology.
If either of these conditions is not met, the topology is without a master and the peer polling frequency is reduced to 100 milliseconds to find a new master as quickly as possible. If there is no master in the topology for more than one minute, a mirrored-subtree-manager-no-master-found alarm is raised. If one of the servers in the topology is forced as master with the force-as-master-for-mirrored-data option in the Global Configuration object, a mirrored-subtree-manager-forced-as-master-warning warning alarm is raised. If multiple servers have been forced as masters, then a multiple-servers-forced-as-masters alarm is raised.