Tombstone entries in a directory server
Before entries are permanently deleted from the RDBM database, a subtree is created to hold the entries to be deleted with operation attributes. This feature is available in IBM® Security Verify Directory, Version 6.2 and later versions.
The to-be-deleted entries are moved to the tombstone subtree, cn=Deleted
Objects, and the attribute table is updated for the entry
to mark the entry as deleted by adding attribute such as isDeleted.
This feature is supported only on the primary RDBM back-end of the
directory server. Tombstones are not supported in configuration, schema,
or change log back-end.
There might be situations where data inconsistency gets introduced by entry deletions when this feature is enabled, which requires the intervention of the directory administrator. For performance reasons, there is no check that is provided, which can possibly prevent tombstones entries with the attribute isDeleted set to TRUE from being accidentally created or modified under any subtrees.
You can identify these entries in an RDBM back-end database by comparing the searches. Compare the search results that are returned by a normal search with a search base to that returned by a null base search.
For example, consider an RDBM back-end database with two subtrees: o=sample and cn=Deleted
Objects. where, o=sample, contains three
entries: cn=A, cn=B, and cn=C (with isDeleted=TRUE).
The subtree cn=Deleted Objects containing entries, cn=X, cn=Y,
and cn=Z (without isDeleted=TRUE).
- In a search with a search base
o=sampleand search filter,objectclass=*, all entries under the search base, including entries withisDeleted=TRUE, are displayed. - In a null base search with search filter,
objectclass=*, all entries except for those entries withisDeleted=TRUEare displayed.
| Subtree search base | Search filter | With control | Search results | Remarks |
|---|---|---|---|---|
o=sample |
objectclass=* |
No |
|
cn=C is a normal entry with isDeleted=TRUE |
null |
objectclass=* |
No |
|
List LDAP_ENTRY table with isDeleted!=TRUE. cn=C is
not qualified. |
isDeleted attribute is
accidentally deleted or is set to FALSE for
entries under the tombstone subtree. When searches that use a search
base and null base are requested with the return deleted object control,
the following results are displayed. - In a search with a search base,
cn=Deleted Objects, and search filter,objectclass=*, all entries under search base are returned. However, when a search with a search base,cn=Deleted Objects, and search filter,isDeleted=TRUE, is requested, entries withisDeleted=FALSEare not returned. - In a null base search with search filter,
objectclass=*, all entries in the database are displayed. However, when a null base search with search filter,isDeleted=TRUE, is requested, only the entries with attributeisDeleted=TRUEin the database are displayed.
| Subtree search base | Search filter | With control | Search results | Remarks |
|---|---|---|---|---|
cn=Deleted Objects |
objectclass=* |
Yes |
|
cn=Z is a tombstone without isDeleted=TRUE |
cn=Deleted Objects |
isDeleted=TRUE |
Yes |
|
|
null |
objectclass=* |
Yes |
|
List the LDAP_ENTRY table,
including entries with isDeleted=TRUE. |
null |
isDeleted=TRUE |
Yes |
|