What are Obituaries#
Since eDirectory is a
Distributed Data Store, each server receives updated information through synchronization. Since all the servers in the replica ring are
Eventual consistency, the server may not hold the same information at a given time. As a result, each server holds on to the old information until all the other servers receive the updates.
eDirectory uses NDS Obituaries to keep track of this type of information and more.
NDS Obituaries are created when an eDirectory object is:#
The
obituary itself is an
attribute of the object on which the change took place. The reason for an
obituary attribute is created is to maintain
database consistency between real copies of the object and
NDS External References of the changed object.
NDS Obituaries will only be purged per
partition, if the
ModifyTimestamp of the
OBIT_PURGEABLE obituary is OLDER then the
timestamp value recorded for the
Purge Vector attribute, for each server
Replica number in the
Replica List as used in the
Transitive Vector. The
PurgeVector will only be updated if the
partition has a successful sync cycle. The purpose of
PurgeVector attribute is to prevent NDS Obituaries from being purged before all
Edirectory Replicas have been
OBIT_NOTIFIED. The values in the attribute are recorded per
Replica number, therefore per server in the
Replica List.
Ndsrepair checks and fixes theNDS Obituaries values.
While the NDS Obituaries is actually stored as an attribute on the
Partition Root Entry the
Obituary Vector is stored only in memory and is recalculated each time that the
Janitor Process runs. To see what the Obituary Vector actually is you can turn on the
Janitor filter in
Ndstrace.
eDirectory utilizes 14 different
NDS Obituaries Types
Three of these types are monitored.
Data is displayed for three different types of obituaries:
- OBIT_DEAD: created when an object is deleted.
- OBIT_NEWRDN: created when an object is renamed.
- OBIT_MOVED: created when an object is moved from one location to another.
NDS Obituaries Classifications of an obituary determines how it is processed. Currently, there are four classes of obituaries.
In order for an
NDS Obituaries to be processed or deleted from eDirectory the must go through several
NDS Obituary States.
Most NDS Obituaries must go through the following NDS Obituary State in order:
You can check on the
NDS Obituary States using
Ndsrepair
There are 12 different distinct combinations for a given NDS Obituaries#
NDS Obituary States and monitored
NDS Obituaries Types generate the distinct combinations:
In
imonitor a number is displayed against each of these combinations, which denotes the total number of objects that are in a particular state at the end of the last obituary processing cycle.
The change cache count displays the number of objects present in the change cache of the partition in the current server.
NDS Obituaries Process Optimization#
Prior
EDirectory 8.8.8.0 (20801.46) had two redundant methods of processing obituaries:
Additionally, if all servers in a ring are on
EDirectory 8.8.8.0 (20801.46),
OBIT_OK_TO_PURGE is no longer used in processing
OBIT_DEAD,
OBIT_NEWRDN and
OBIT_MOVED NDS Obituaries. This results in the cycles required to process an obituary being reduced by 50-75%. Some tests have shown a reduction of up to 230% in the total time to process NDS Obituaries.
Another side benefit is there are far fewer "UsedBy" and "Obit_UsedBy" obituary attributes that need to be processed.
Prior to EDirectory 8.8.8.0 (20801.46), the NDS Obituaries process would not run on a partition if the server was currently outbounding changes for that partition to other servers. This would cause NDS Obituaries for that partition to be delayed. In a busy environment with hundreds of changes per second this could lead to Change Cache buildup. Now the obituary process can run in parallel with outbound synchronization thereby reducing NDS Obituaries processing delays.
Category#
eDirectory
There might be more information for this subject on one of the following: