RIClustering

The RIClustering parameter determines whether the High-speed Apply Engine distributes work between multiple agents based on the referential integrity (RI) settings of the target tables.

Attributes

This parameter has the following attributes:

Attribute

Value

Section

[DistributionTuning]

Abbreviation

None

DBMS

Db2, Db2 LUW, Oracle

Required?

No

Valid values

Yes or No

Default value

Yes

Usage

Use this parameter to group tables based on database-defined RI relationships, and to send the SQL statements affecting any table in an RI group to the same agent. This type of work distribution reduces the possibility of RI-related conflicts. To create the groups, High-speed Apply Engine follows the chain of parent tables in RI relationships, up to the number of generations specified by the RIRecursionLimit parameter (for more information, see RIRecursionLimit). As it encounters new tables, High-speed Apply Engine dynamically updates the groups of tables. Select one of the following values:

  • Specify Yes if you want High-speed Apply Engine to group target tables based on database-defined RI relationships and distribute work for each group to a different agent. The default value is Yes.

  • Specify No to permit multiple agents to process the target tables in an RI relationship. If you specify No, RI-related conflicts can occur because High-speed Apply Engine does not always process the statements in the same order in which they were input. You might want to set up conflict rules to handle such errors by deferring them, then reprocessing the deferred SQL. If you specify No, High-speed Apply Engine ignores the value of the RIRecursionLimit parameter.

This parameter does not apply under distribution by unit of recovery (when the DistributionType parameter is UR). To control RI processing under distribution by unit of recovery, use the URCheckRI parameter. If you include the [ObjectCluster] section in your configuration, High-speed Apply Engine sets this parameter to No, regardless of the value specified in the configuration.

Because this parameter is Yes by default, the most common reason to specify it is to disable this type of distribution and prevent High-speed Apply Engine from grouping tables based on database-defined RI. You might want to disable RI distribution for the following reasons:

  • You know there are RI relationships between the target tables in your apply request, but you know that either 1) there are no RI conflicts in your input data, or 2) you can safely ignore any RI conflicts. By disabling distribution based on RI, you can:

    • Enable multi-threaded execution for faster performance

    • Avoid unnecessary processing as High-speed Apply Engine interrogates the target DBMS to determine RI relationships

  • Your apply request includes partitioned tables that are part of RI relationships, but none of the other RI-related tables are included in the apply request. In this situation, you disable RI distribution to let High-speed Apply Engine distribute work between agents based on partitions instead of RI relationships. For more information, see Precedence for distribution of work by object.



Was this page helpful? Yes No Submitting... Thank you

Comments