!!! Overview [{$pagename}] is a [Process|Processes] that brings the on-disk version of the (Typically [eDirectory]) [Data Store|DataStore] to the same coherent state as the in-memory ([FLAIM Cache]) [database]. [FLAIM] can perform a [{$pagename}] during the minimal update activity on the database. [{$pagename}] by default runs every [second] and writes the [dirty cache] ([FLAIM Cache]) to the disk. [{$pagename}] acquires a [DIB Lock] on the (typically [eDirectory]) [Data Store|DataStore] and performs the maximum amount of possible work until either the [{$pagename}] completes or another thread is waiting to update the [Data Store|DataStore]. [cpinterval] is the time for which the [database] waits before it initiates the [{$pagename}] [NDS Thread] which brings the on-disk version of the [database] up to the same coherent state as the in-memory ([cache]) [database]. The [checkPointThread] flushes the [Dirty cache] to the [Disk partition], followed by cleaning up the [Roll-Forward Log]. Since [FLAIM Block Cache] is temporarily suspended while [checkPointThread] runs, setting the [cpinterval] to a high value to achieve faster [FLAIM Block Cache]. To prevent the on-disk database from becoming too far out of sync, there are conditions under which a [{$pagename}] is forced even if other [NDS Threads] are waiting to [update] the [DataStore]: * If the [checkPointThread] cannot complete a checkpoint within a specified [cpinterval] (the default is 3 minutes), it is forced and the [dirty cache] is cleaned. * If the size of the dirty [FLAIM Cache] is larger than the [maxdirtycache] (if set), a [{$pagename}] is forced to bring down the dirty [FLAIM Cache] size to [lowdirtycache] (default is [zero]). !! [{$pagename}] [Monitoring] [{$pagename}] [Monitoring] can be performed by using the [LOCK] parameter within [ndstrace] which will show the [DIB Lock] activity. [iMonitor Diagnostic Logger] !! [FLAIM] [Updates] Only [NDS Threads] performing [Create], [Update] or [Delete] operations are required to obtain the [DIB Lock] before performing the operation. Threads performing [Read] operations ([SearchRequest], etc.) do __NOT__ require a [DIB Lock] before performing the operation. Also as the [checkPointThread] on each [eDirectory] [FLAIM] [DataStore] is single threaded there can be no concurrent writing operations. !! [{$pagename}] Runs When * [cpinterval] has been reached or * dirty [FLAIM Cache] is larger than the [maxdirtycache] !! Category %%category [eDirectory]%% !! More Information There might be more information for this subject on one of the following: [{ReferringPagesPlugin before='*' after='\n' }]