Replication conflict resolution
You can know more about replication conflicts and ways to resolve those by reading the information provided here.
Conflict resolution for add and modify operations in peer-to-peer replication is based on Timestamp. The entry update with the most recent modify TimeStamp on any server in a multi-master replication environment is the one that takes precedence. Replicated delete and rename request are accepted in the order received without conflict resolution. When a replication conflict is detected the replaced entry is archived for recovery purposes in the Lost and Found log. See Utilities for logging for more information.
Updates to the same entry made by multiple servers might cause inconsistencies in directory data because conflict resolution is based on the TimeStamp of the entries. The most recent modify TimeStamp takes precedence. If the data on your servers become inconsistent, see the ldapdiff command information in the Command Reference for information on resynchronizing servers.
- The granularity of timestamp is inconsequential in case of password policy operational attributes even though these attributes hold the timestamp value.
- The timestamp granularity of entries added or modified on Windows platform will be in milliseconds. However, in case of non-Windows platform the timestamp granularity will be in microsecond. This means that if an entry is replicated from a non-Windows machine to a Windows machine the timestamp of the entry will have microsecond level granularity. On the other hand, if an entry is replicated from a Windows machine to a non-Windows machine the timestamp of the entry will have millisecond level granularity.
To resolve replication conflict it needs the supplier to provide the entry's timestamp before the entry was updated on the supplier. The consumer server takes the replicated timestamp and updates and applies it without conflict checking.
- See Object Identifiers (OIDs) and attributes in the root DSE and OIDs for supported and enabled capabilities to find out how to determine, if your servers support conflict resolution.
- To resolve replication conflict, a regular database entry which has a later timestamp is not replaced by a replicated entry which has an earlier timestamp. However, conflict resolution does not apply to entry cn=schema which is always replaced by a replicated cn=schema.
- Replication conflict resolution can be disabled on a consumer if it does not have more than one supplier in the replication topology. In such a replication topology, messages related to the conflicting operation that are logged in the ibmslapd.log file can be considered as simple warning messages. As a work around to stop logging of these messages, you can set the configuration file parameter ibm-slapdNoReplConflictResolution to true using the ldapmodify command.
Setting up a load balancer is one method of resolving data conflict resolution.
A load balancer, such as WebSphere® Application Server Edge Components, has a virtual host name that applications use when sending updates to the directory. The load balancer is configured to send those updates to only one server.If that server is down, or unavailable because of a network failure, the load balancer sends the updates to the next available peer server until the first server is back on line and available. Refer to your load balancer product documentation for information on how to install and configure the load balancing server.
When conflict resolution is enabled and changes are made to the membership of a given group on two servers concurrently, conflict resolution will be triggered repeatedly and this may affect the server’s performance if the groups are large.
IBM Security Directory Suite enables you to selectively enable or disable replication conflict resolution for modifications to group entries by defining the value of the “ibm-slapdEnableConflictResolutionForGroups” attribute present under the “cn=Replication, cn=configuration” entry of the configuration file.
If the attribute “ibm-slapdEnableConflictResolutionForGroups” is set to FALSE then no conflict resolution will be performed even if a conflict is detected for operations on group entries like adding, deleting, or renaming an attribute of type member or uniquemember.
However, a single modify request can target multiple attributes. In such a case, if in a single modify request any other attribute other than member or uniquemember is used, then replication conflict resolution will still be performed even though the attribute “ibm-slapdEnableConflictResolutionForGroups” is set to FALSE.
Use one of the following methods to enable or disable replication conflict resolution for modifications to group entries: