Runtime Parameters
The following parameters are expert settings only. There is usually only an expert way to decide the right value and therefore there is no guarantee of improved performance when a parameter is used. |
Where are runtime parameters configured?
We differentiate between MDM-specific runtime parameters and general runtime properties.
You can recognize MDM-specific runtime parameters by the nme.
prefix.
These parameters are stored in the MDM database and updated through the MDM Web App Admin Center.
They are loaded to the database automatically on the initial server startup, or manually, for example, after an external configuration change or after resetting your environment. For details about how and when to run the migration manually, see MDM Web App Admin Center > Server Dashboard.
After editing certain parameters in the Admin Center, you need to restart the MDM Server for the changes to take effect. If required, this is mentioned in the parameter description and indicated in the web application. |
General runtime parameters, such as those configuring hardware resources available to the MDM Server, are provided to the JVM when starting the MDM Server (for example, -Dnme.copyColumns.skipUnchanged=true
) or included in the runtime.properties
file.
By default, the file is located in <ataccama.one.mdm.config.config-folder>/etc
(alternatively, the file is found in <ataccama.one.mdm.config.runtime-folder>
).
To verify the actual location, check the values of the ataccama.one.mdm.config.config-folder
and ataccama.one.mdm.config.runtime-folder
application properties.
Runtime parameters values set during engine startup are available in ONE Runtime Server Admin.
Even though they start with the nme. prefix, nme.matching.* properties are configured and managed the same way as general runtime parameters: through the runtime.properties file.
This way, you can configure them separately for each instance instead of having a shared configuration for all matching steps.
|
Edit permissions for runtime parameters
Runtime parameters are edited from the MDM Web App Admin Center > Runtime Parameters screen. For details, see MDM Web App Admin Center.
To edit runtime parameters, you need to be assigned a role defined in the ataccama.one.mdm.admin-center.manager.required-roles
application property.
By default, this is the MDM_server_admin
role.
To learn more about the relevant application properties, see MDM Admin Center Permissions.
Process control
Name | Default value | Description | ||||
---|---|---|---|---|---|---|
nme.copyColumns.skipUnchanged |
|
If
|
||||
nme.match.rematchIf.removeManualMatch |
|
If |
Performance
Name | Default value | Description | ||
---|---|---|---|---|
nme.clean.parallelism |
|
Default parallelism setting for cleansing plans.
Can be overridden by |
||
nme.validate.parallelism |
|
Default parallelism setting for master validation. |
||
nme.multiLoad.parallel |
|
Number of delta load operations that are executed in parallel during a M`ultiLoad` operation. |
||
nme.delta.parallel |
|
Number of threads that are used to load entities in delta load operations. |
||
nme.delta.parallel.threshold |
|
Minimum number of incoming records (all entities together) required to trigger parallel processing of delta load operation (used only if |
||
nme.consolidation.parallel |
|
Number of threads (and database connections) that are used in the consolidation phase. |
||
nme.consolidation.parallel.threshold |
|
Minimum number of modified records (all entities together) after delta detection required to trigger parallel consolidation (used only if |
||
nme.commit.parallel |
|
Number of threads (workers) available during the committing phase. Workers can simultaneously insert entities into the repository. |
||
nme.commit.parallel.threshold |
|
Minimum number of modified records (all entities together) required to trigger parallel committing (only if |
||
nme.commit.parallel.entity.maxWorkers |
|
Maximum number of threads (workers) that can be assigned to an entity during the committing phase. Enables parallel committing to a single entity. |
||
nme.commit.parallel.sort |
|
A metric used to prioritize entities for parallel committing. Allowed values:
|
||
nme.commit.trimTooLongStrings |
|
If |
||
nme.matching.partition.parallel |
|
Number of threads used for processing partitions in the Matching step. Can also be configured for specific entities or specific matching within the entity, see Matching step performance tuning. Configured in the |
||
nme.matching.key.parallel |
|
Number of threads used for processing key rules in the Matching step. Can also be configured for specific entities or specific matching within the entity, see Matching step performance tuning. Configured in the |
||
nme.matching.rule.parallel |
|
Number of threads used for processing matching rules in the Matching step. Can also be configured for specific entities or specific matching within the entity, see Matching step performance tuning. Configured in the |
||
nme.matching.parallel.threshold |
|
Minimum amount of data belonging to a partition or key rule required to enable parallel processing (only if the corresponding parallelism setting is greater than 1). Can also be configured for specific entities or specific matching within the entity, see Matching step performance tuning. Configured in the |
||
nme.matching.parallel.group.threshold |
|
Minimum size of key groups necessary for processing matching rules in parallel (only if the key rule parallelism is greater than 1). Can also be configured for specific entities or specific matching within the entity, see Matching step performance tuning. Configured in the |
||
nme.matching.parallel.statistics |
|
Enables metrics tracking of the amount of data processed in each part (both serially and in parallel). For key groups, reports the number of key groups and the average group size. Configured in the |
||
nme.taskExecutor.parallel |
|
Number of tasks (loads, exports) executed by Task Executor in parallel (provided that synchronization conditions allow that).
|
||
nme.export.read.parallel |
|
Number of data sources that are read in parallel in a single export operation. |
||
nme.export.read.parallel.nameFilter |
\ |
List of comma-separated names of export operations that will support parallel retrieval of data sources.
Using the asterisk ( |
||
nme.io.storage.memSize |
|
Number of records kept in memory in temporary storages. Any records exceeding that number are written to the hard disk and deserialized when needed. This is a shared parameter and is applied to each entity from the Instance and Master models.
|
||
nme.io.storage.compress |
|
Temporary files storing processed records can be compressed. Possible values:
|
||
nme.checkPoint.directory |
same as |
Base folder for storing MDM checkpoint data for a resumable initial load operation. If the parameter isn’t specified, internally it still uses the same base folder as defined in |
||
nme.checkPoint.restore.parallel |
|
Number of threads used to restore the checkpoint. |
||
nme.consolidation.pool.minSize |
|
Minimum size of the pool of plan runners for cleanse, match, and merge plans.
|
||
nme.consolidation.pool.maxSize |
|
Maximum size of the pool of plan runners for cleanse, match, and merge plans.
|
||
nme.parallel.strategy |
|
The parallelism mode of RW operations:
|
||
nme.parallel.coordinator.key.strategy |
|
The strategy for key processing to optimize memory usage when large source IDs are used. Possible values:
|
||
nme.parallel.restart.wait |
|
Delay (in milliseconds) in a restart loop while the server waits for all conflicting transactions to finish. NOTE: After editing the value, restart the MDM server to apply the change. |
Other
Name | Default value | Description | ||
---|---|---|---|---|
nme.taskExecutor.taskLogLevel |
|
By default, the start and finish of all operations (load, export, reprocess, processDelta) and their subtasks are logged to the standard logger (usually StdOut). To switch this off, set the value to There is another, hybrid option: |
||
nme.statistics.maxDirtyCount |
|
Data statistics are computed in an incremental way, creating partial counts that needs to be summed up to get the correct total value. If the number of partial counts is greater than this parameter, partial counts are summed up and replaced by a single total count. |
||
nme.eventHandler.active |
|
If If |
||
nme.eventHandler.publish.batchSize |
|
Data change events are (for performance reasons) published in batches. This parameter sets the number of events in one batch. |
||
nme.stream.consumers.active |
|
Stream consumers are stopped on server start. This option allows starting all stream consumers on server startup. |
||
nme.services.range.maxCount |
|
Maximum allowed value of the
|
||
nme.services.values.returnNulls |
|
If |
||
nme.tmpStorage.checkDuplicates |
|
If This additional check leads to reduced performance, which is why it is set to |
||
nme.normalize.emptyStringIsNull |
|
If
By default, the parameter is set to |
||
nme.model.source_id.length |
|
Size of the Keep in mind that this column is indexed, and some databases have a size limit for indexable varchar columns. This means that setting this parameter to a large enough value might result in a "max index size breached" error, depending on your database.
|
Database and storage
VLDB persistence parameters
The following parameters apply only when VLDB persistence is used.
Name | Default value | Description | ||
---|---|---|---|---|
nme.vldb.batchSize |
|
Batch size for writing data in the committing phase. |
||
nme.vldb.commitSize |
|
Commit size for writing data in the committing phase. |
||
nme.readonly |
|
If In read-only mode, the transactions cannot change data in the repository.
In cluster installations, where several NME instances are running over the same database storage, this flag should be set to
|
||
nme.vldb.smallDataThreshold |
|
Threshold for the number of
|
||
nme.vldb.tinyDataThreshold |
|
Threshold for the number of |
||
nme.vldb.prefetch.large |
/ |
If set, the value of this property is used as the prefetch size for SELECT statements for LARGE expected data sizes. |
||
nme.vldb.prefetch.small |
/ |
If set, the value of this property is used as the prefetch size for SELECT statements for SMALL expected data sizes. |
||
nme.vldb.alterTableLevel |
|
Defines what alter table commands are executed if a table in the database does not match the model. Allowed values:
|
||
nme.vldb.visibilityResolver.tmpTableThreshold |
|
Threshold for the number of logical transactions present in the TREG to switch engine queries using global temporary tables.
|
||
nme.vldb.xidMemory.size |
|
Number of records in RW transactions (XIDs) that are stored on transaction for faster LTC. This limits the size of one transaction and accessor (entity).
|
||
nme.vldb.xidMemory.totalSize |
|
The highest number of records in RW transactions (XIDs) that are stored for faster LTC. NOTE: After editing the value, restart the MDM server to apply the change. |
||
nme.vldb.heartbeat.interval |
|
How often (in seconds) the main database connection executes commits during a write operation which runs with multiple database connections. This prevents the main connection from running too long without a commit and helps avoid some issues related to long-running transactions (for instance, it limits the size of database logs). NOTE: After editing the value, restart the MDM server to apply the change. |
Data collector (LTC) parameters
The following settings apply to an LTC feature related to VLDB persistence.
The LTC stands for Logical Transaction Collector, which is a component responsible for deleting obsolete records. In a way, it is similar to Java garbage collector but it deals with data related to obsolete transactions.
Name | Default value | Description | ||
---|---|---|---|---|
nme.vldb.collector.enabled |
|
If
|
||
nme.vldb.collector.batchSize |
|
Batch size (the number of deleted records in one |
||
nme.vldb.collector.batchWait |
|
Delay (in milliseconds) between executing individual deletion batches in the LTC process. |
||
nme.vldb.collector.commitSize |
|
Commit size (the number of deleted records in deletion commit sets) for the LTC process. |
||
nme.vldb.collector.commitWait |
|
Delay (in milliseconds) between processing individual deletion commit sets in the LTC process. |
Hint parameters
The following parameters make it possible to apply hints for some special computations that are done during the processing.
The hint examples given can only be used in Oracle databases version 11 and later.
After editing, restart the MDM server to apply the changes. |
Name | Default value | Description | ||
---|---|---|---|---|
nme.vldb.unorderedInList.match.small |
|
Hint for retrieving matched records for SMALL |
||
nme.vldb.unorderedInList.match.large |
|
Hint for retrieving matched records for LARGE |
||
nme.vldb.unorderedInList.unmatch |
|
Hint for retrieving unmatched records for
|
||
nme.vldb.orderedInList.match.small |
|
Hint for retrieving matched records for SMALL |
||
nme.vldb.orderedInList.match.large |
|
Hint for retrieving matched records for LARGE |
||
nme.vldb.tableAccessor.find.small |
|
Hint for retrieving data via SELECT WHERE for SMALL datasets. |
||
nme.vldb.tableAccessor.find.large |
|
Hint for retrieving data via SELECT WHERE for LARGE datasets. |
||
nme.vldb.tableAccessor.find.main.small |
|
Hint for retrieving data via SELECT LEFT JOIN for SMALL datasets. |
||
nme.vldb.tableAccessor.find.main.large |
|
Hint for retrieving data via SELECT LEFT JOIN for LARGE datasets. |
||
nme.vldb.tableAccessor.count.accuracy.mode |
|
Hint for controlling the accuracy of record counting. If set to |
Database persistence parameters
The following parameters can be applied only when database persistence is used.
Name | Default value | Description | ||
---|---|---|---|---|
nme.db.inList.batchSize |
|
Batch size for |
||
nme.db.inList.commitSize |
|
Commit size for |
||
nme.db.batchSize |
|
Batch size for writing data in the committing phase. |
||
nme.db.commitSize |
|
Commit size for writing data in the committing phase. |
||
nme.db.smallDataThreshold |
|
Threshold for the number of records deciding if LARGE or SMALL data hints should be used. |
||
nme.db.tinyDataThreshold |
|
Threshold for the number of records.
Numbers under this threshold are considered tiny and a different access method is used (direct access instead of |
||
nme.db.alterTableLevel |
|
Defines what alter table commands are executed if a table in the database does not match the model. Allowed values:
|
Hint parameters
The following parameters make it possible to apply hints for some special computations that are done during the processing.
The hint examples given can only be used in Oracle databases version 11 and later.
After editing, restart the MDM server to apply the changes. |
Name | Default value | Description |
---|---|---|
nme.db.unorderedInList.match |
|
Hint for retrieving matched records for |
nme.db.unorderedInList.unmatch |
|
Hint for retrieving unmatched records for |
nme.db.unorderedInList.match |
|
Hint for retrieving matched records for |
nme.db.unorderedInList.unmatch |
|
Hint for retrieving unmatched records for |
nme.db.inList.main.hint |
|
Hint for retrieving data via SELECT LEFT JOIN. |
Was this page useful?