This page (revision-1) was last changed on 29-Nov-2024 16:16 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 1 added 43 lines
!!! 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' }]