Multimaster configurations

The configuration must ensure that updates for the same entry or set of entries do not occur to several peer masters at the same time. The replication system can be configured in such a way that all writes go to one master except in the case of failover. Or, the system can be configured so that all writes for a specified subtree go to one master except in the case of failover.

If writes of the same entry occur on several masters, then before such write can be replicated, an update conflict might occur.

A directory server instance can be configured with conflict resolution. This configuration ensures that for almost all update conflicts, the latest change to a specified entry is preserved. It ensures that the content of all servers converges to the same value for the entry. However, update conflicts must be avoided. Conflict resolution might cause inherent loss of data because the later change to the entry is preserved but the earlier change is discarded. Conflict resolution can also affect replication performance, if the number of conflicts that are observed is large.

Sometimes, it is not possible to avoid configurations where update conflicts can occur. For example, there might be IBM® Verify Directory at two sites. Because of a temporary loss of network connectivity between the sites, all writes occurring at a specified site might occur on the server for that site. Update conflicts might occur as a result, and the IBM Verify Directory conflict resolution procedures then converge the content of entries on the servers. However, in most configurations, nearly all update conflicts can be avoided.

If conflict resolution is used, the following condition must be ensured. The directory server must be loaded so that timestamps for the created entries are same on all servers in the topology at the outset. There are two ways to ensure this condition:
  • Load a directory server by using bulkload and then back up the database and restore that database backup on the other servers.
  • Load a directory server by using bulkload and then extract an LDIF file, including timestamps from this server by using the db2ldif command. Thereafter, bulkload the resulting LDIF file onto the other servers in the replication topology.