Managing replication conflicts

Friday 20th October, from 10.40 to 11.20 AM

In multimaster replication environments simultaneous updates can be applied which, when finally replicated can lead to conflicting updates. These conflicts can happen at the attribute level or entry level. At the attribute level conflicts could result in schema violations for required attributes or single valued attributes.

At the entry level the most common examples are adding the same entry in parallel on multiple servers or adding a child entry on one server and deleting the parent on an other server. But there can be more complex scenarios.

Most ldap servers either explicitly or implicitly handle these conflict scenarios, but the result can either be confusing and in many cases also creating inconsistent data on the different servers.
This talk will demonstrate the potential conflict scenarios and then provide a theory on how to resolve these conflicts. The result is a set of rules to apply in the update resolution process:

  • Transparency rule: Operations rejected by the update resolution should be invisible by the client application, but accessible for administrators
  • Consistency rule: After processing a given set of operations on all servers, the contents of the database on all servers has to be identical
  • Correctness rule: we define what the correct state of the database after update resolution should be.
  • Relaxation rule: Maintaining all the information required to finally reach the state defined by the correctness rule can be too much overhead and we define when we can relax the correctness requirement without violating the consistency

The application of these rules will be demonstrated on a set of conflict scenarios and it will be shown how this is implemented in the 389-ds directory server

14_Ludwig Krispenz_ldapcon2017-replconflicts License CC-BY-SA

Ludwig Krispenz

Principal Software Engineer, Red Hat

Started supporting Netscape Directory Server 1.2 and since was supporting and developing iPlanet DS, Sun DSEE and 389-ds. Currently I am working in the FreeIPA team to ensure a better integration and support of requested features in the core directory server.

Back to program