Replication Strategies
The master directory server must provide reliable replication to the replica systems. OpenLDAP currently provides three methods for replicating that data, each with its pros and cons.
Replication types
- slurpd – A push-based method of replication
- syncrepl – A pull-based or push-based method of replication
- delta-syncrepl – Another pull-based method of replication, using slapo-accesslog and syncrepl
slurpd replication
Slurpd is the oldest of the replication mechanisms. It allows the master to connect to replicas and push changes.
Pros
- Proven track record for reliability
- Allows master->client replication when there is a firewall preventing the replicas from initiating connections to the master.
- Data updates are minimal (ADD, DEL, or deltas for MOD)
Cons
- Not actively developed
- Minimally configurable
- Requires a secondary process for replication (slurpd)
- Does not support replica catch-up
syncrepl replication
Syncrepl is the newest form of replication. It allows replica servers to connect to the master to pull changes.
Pros
- Highly configurable
- Actively developed
- Allows master->client replication when the master is behind a firewall that prevents it from opening connections to a replica
- Supports replica catch-up if the replicas database is older than the masters
- Replication does not require a separate process
- Can be used with back-ldap to implement push-based replication
Cons
- Data updates are maximal (ADD, DEL, or a full set of MODs for all existing attributes)
delta-syncrepl replication
Delta-Syncrepl is an extension of syncrepl, and uses the accesslog overlay to track changes that need replicating.
Pros
- Highly configurable
- Actively developed
- Allows master->client replication when the master is behind a firewall that prevents it from opening connections to a replica
- Supports replica catch-up if the replicas database is older than the masters
- Replication does not require a separate process
- Data updates are minimal (ADD, DEL, or deltas for MOD)
Cons
- Updates are serialized. If there are multiple processes that update the master, updates will be very slow.
