10.3 Resolving Conflicts

If a conflict occurs, then the replication between conflicting servers stops. Replication uses "last-write-wins" policy. Conflict can occur for one of the following reasons:

  • During upgrade: when a new server communicates with the old server.

  • When two unique objects have been added.

Outgoing conflict indicates an incoming conflict on the destination server. Unique object collision causes two corresponding conflicts: incoming and outgoing on both the source and target servers.

An example of a collision: MasterX and MasterY create a same login chain 'Visitor'. This can lead to a conflict because both try to send ‘Visitor’ to each other.

You can resolve the conflict with one of the following ways:

Simplest way: two fixes remove two objects:

  • Remove Visitor chain on both the servers: Press "Fix incoming" on both.

  • "Forget outgoing" on both the servers.

  • Use INSERT conflicts. You must be careful of "fixing" UPDATE conflict. You could have renamed two different objects to the same name. It is better to rename them and forget conflicts on both servers and avoid fixing them.

Smarter way: fix one, forget another:

  • Remove Visitor on MasterY: Press "Fix incoming"

  • "Forget outgoing" on MasterY. It does not retry to send conflicting Visitor anymore.

  • "Forget incoming" on MasterX.

  • Wait for half a minute. MasterY accepts outgoing Visitor from MasterX.

Possible way: two outgoing forgets - two independent objects:

Use for UPDATE conflicts. Object changes will be lost but will sync on next object change.

Zero way: two incoming forgets:

Do nothing. Source server re-sends the changes until you forget the outgoing conflict.

Purge working tables: This is last resort. If you see low-level errors in replication log, if conflict resolution does not work for you, then you may force replication system to forget all pending replicas and re-initialize.The server will stay out-of-sync. Eventually it will normalize - changes will replicate and overwrite each other. If you feel some administrative option is wrong (such as Event definition), go to server where the option is "right" and press Save in option editor. Thus, re-saving an object re-replicates it to all servers.

Advanced Authentication scans for the replication conflicts, automatically. To resolve existing conflicts, in the Cluster section of the Advanced Authentication Server Registrar, click Conflicts above the DB servers list. If no conflicts are detected, only the information is displayed. If there are any conflicts, the details and controls to resolve the conflicts are displayed. You will get a confirmation request with each action. The confirmation contains notes that help you to resolve the conflicts.