15.12. Managing Deleted Entries with Replication
When an entry is deleted, it is not immediately removed from the database. Rather, it is converted into a tombstone entry, a kind of backup entry that is used by servers in replication to resolve specific conflicts (orphaned entries). The tombstone entry is the original entry with a modified DN, an added
nsTombstone
object class, but the attributes are removed from the index.
Tombstones are not preserved indefinitely. A purge job is run periodically, at a specified interval (set in the
nsDS5ReplicaTombstonePurgeInterval
attribute); the purge removes old tombstone entries. Tombstone entries are saved for a given amount of time (set in the nsDS5ReplicaPurgeDelay
attribute); once a tombstone entry is older than the delay period, it is reaped at the next purge job.
Both the purge delay and the purge interval are set on the replica entry in the
cn=replica,cn=
replicated suffix,cn=mapping tree,cn=config
configuration entry. There are two considerations when defining the purge settings for replication:
- The purge operation is time-consuming, especially if the server handles a lot of delete operations. Do not set the purge interval too low or it could consume too many server resources and affect performance.
- Suppliers use change information, including tombstone entries, to prime replication after initialization. There should be enough of a backlog of changes to effectively re-initialize consumers and to resolve replication conflicts. Do not set the purge delay (the age of tombstone entries) too low or you could lose information required to resolve replication conflicts.Set the purge delay so that it is slightly longer than the longest replication schedule in the replication topology. For example, if the longest replication interval is 24 hours, keep tombstone entries around for 25 hours. This ensures that there is enough change history to initialize consumers and prevent the data stored in different suppliers from diverging.
When you use the
dsconf replication set
command, the --repl-tombstone-purge-interval=seconds
option sets the nsDS5ReplicaTombstonePurgeInterval
attribute and the --repl-purge-delay=seconds
option the nsDS5ReplicaPurgeDelay
attribute.
For example, to set the tombstone purge interval to
43200
(12 hours) and the replica purge delay to 90000
(25 hours):
# dsconf -D "cn=Directory Manager" ldap://supplier.example.com replication set \ --repl-tombstone-purge-interval=43200 --repl-purge-delay=90000
Note
To clean up the tombstone entries and the state information immediately, set a very small value to the
nsDS5ReplicaTombstonePurgeInterval
and nsDS5ReplicaPurgeDelay
attributes. Both attributes have values set in seconds, so the purge operations can be initiated almost immediately.
Warning
Always use the purge intervals to clean out tombstone entries from the database. Never delete tombstone entries manually.