Overview#EDirectory Change Cache is located on each server tracks all changed entries in the local replicas and contains EntryID and Creation Timestamp and are to be part of the EDirectory Synchronization process.
Enable or Disable #You can enable or disable the Inline Change Cache for a server.
You can disable Inline Change Cache only when Outbound Synchronization is disabled. Enabling Outbound Synchronization also enables InlineChange Cache.
What Goes into Change Cache#
- Attributes that are marked X-NDS_NOT_SCHED_SYNC_IMMEDIATE are added to the Change Cacheas a Slow Convergent or (30 second hold time).
- Attributes that are marked X-NDS_SCHED_SYNC_NEVER are added to the Change Cache which will sync whenever the next EDirectory Synchronization cycle happens but not longer than the N4u.nds.heartbeat-data interval.
- Any other Attributes will initiate an immediate EDirectory Synchronization.
- Priority Synchronization - This process does NOT use Change Cache.
- X-NDS_NEVER_SYNC - Are not synchronized and therefore are never placed in Change Cache
Asynchronous Outbound Synchronization#Prior to EDirectory 18.104.22.168 (20801.46) there was one thread responsible for iterating through all entries in the Change Cache to see if there was a new value that needed to be sent to other servers. This same thread was also responsible for putting the values in a packet, sending the packet over the wire and waiting on an acknowledgement from the receiving server before proceeding. Performing these tasks sequentially were costly in terms of time required to process the changes out to other servers. In EDirectory 22.214.171.124 (20801.46)+ the work has been split between two threads.
One thread examines the Change Cache, prepares the outgoing packets then fills a queue with the packets. The second thread picks up the packets from the queue and sends them the remote server one at a time. This has reduced the time to get changes out to other servers by up to 50% in some cases.
The default setting for Asynchronous Outbound Synchronization is disabled. In EDirectory 126.96.36.199 (20801.46) imonitor provides an interface to enable this feature. If this feature is enabled the server will be much more aggressive in sending changes out to the remote servers. This can put pressure on the receiving servers resulting in higher utilization. Therefore, another setting has been included with this feature, the Async Dispatcher Thread Delay. This setting allows the administrator to control, in milliseconds, the frequency in which changes are sent to the remote servers. The Async Dispatcher Thread Delay setting, by default, has no delay (0 milliseconds). The allowed range for this setting is 0 - 999 milliseconds. If this value is very small, meaning the thread fires more often, higher CPU and I/O utilization may be seen on the receiving servers due to the higher amount of inbound traffic. Therefore, this setting should be monitored and fine tuned for the specific environment.