Dynamic parameters for the running system. An instance of this class is referenced
by each Destination and affects the behavior of both systems involved
in the check. The RunParameters object defines the performance characteristics and
what to check. Changes that are saved while the system is running will take immediate
effect unless otherwise specified.
property GlobalSelectionMask as array of %String (MAXLEN = 32767);
An array of strings used to determine the set of global names to check
in each database. It is keyed by LocalDatabase, which is the
local database path for non-mirror DataCheck configurations and the mirror
database name for mirrored DataCheck configurations. Keys should be normalized
using ##class(SYS.DataCheck.LocalDatabase).Normalize() before being inserted.
The value is a mask, or comma-separated list of masks, to select globals.
If the value is not defined for a database, it defaults to select all globals.
IMPORTANT: Callers that modify this array are responsible for ensuring that
the database is specified correctly, and for non-mirror DataCheck
configurations, that it has a mapping specified in the DataCheck configuration.
Example masks are as follows:
ABC* - All strings starting with ABC
A:D - All strings between A and D
A:D,Y* - All strings between A and D, and all strings starting with Y
A:D,'C* - All strings between A and D, except those starting with C
Changes take effect next time a new check is begun (ie on entering the 'Check' phase).
The minimum number of nodes to traverse in a query. This is the granularity,
in number of global nodes, with which the system will isolate discrepant global ranges.
A value of 1 means that the system will isolate discrepancies down to a single
node. Higher values give vastly better performance through unmatched sections.
An integer between 1 and 10 to control how much of the system
resources (CPU, disk I/O, database cache) the DataCheck system may use.
The implementation may differ over time as software and hardware
characteristics evolve. The setting can be changed dynamically to tune
DataCheck activity up or down. The characteristics of every system are
different, but the following general meanings apply:
A throttle setting of 1 uses no more resources than one process for
performing DataCheck queries. In other words, it uses at most one CPU and
does only one disk I/O at a time. Whether the resources used are primary CPU
or primarily disk I/O depends on whether the data is in buffers already and can
vary as the check progresses.
As the throttle is raised up to 8, more system resources are consumed at
each step. For systems with large amounts of resources (many CPUs, etc),
each interval is scaled to increase resource consumption by, very roughly, the
same multiplicative factor, such that at a throttle setting of 8, DataCheck
uses a large portion of system resources. This takes into account the number
of CPUs and other factors. At a throttle setting of 8 the system is still
expected to be responsive to a light load of application activity, and settings
of 6, 7, or 8 may be an appropriate on a typical system at off-peak hours
(weekends or overnights for example).
A throttle setting of 9 is like 8, but allows DataCheck jobs to use the
entire buffer pool (unsets the batch flag).
A throttle setting of 10 attempts to utilize nearly all system resources
for completing the check.
property UseGlobalSelectionMask as %Boolean [ InitialExpression = 0 ];
If true use the per-database selection mask defined in the
GlobalSelectionMask array to choose which globals to check.
If false, check all globals in all directories.
Changes take effect next time a new check is begun (ie on entering the 'Check' phase).
property UseGlobalSelectionRangeLists as %Boolean [ InitialExpression = 0 ];
If true use the RangeList objects from the set of Global Selection RangeLists
to define additional subscript ranges to include/exclude.
If false ignore the Global Selection RangeLists
Changes take effect next time a new check is begun (ie on entering the 'Check' phase).