Parallel DSI parameters

You can customize the parallel DSI thread environment using the configuration parameters shown in Table 4-6. Use these configuration parameters with alter connection to tune parallel DSI threads for individual connections.

Table 4-6: Parallel DSI configuration parameters

Configuration parameter

Description

dsi_commit_check_locks_intrvl

The number of milliseconds (ms) the DSI executor thread waits between executions of the rs_dsi_check_thread_lock function string.

Default: 1000 ms (1 second) Minimum: 0 Maximum: 86,400,000 ms (24 hours)

dsi_commit_check_locks_log

The number of times the DSI executor thread executes the rs_dsi_check_thread_lock function string before logging a warning message.

Default: 200

Minimum: 1

Maximum: 1,000,000

dsi_commit_check_locks_max

The maximum number of times the DSI executor thread executes the rs_dsi_check_thread_lock function string before rolling back and retrying a transaction.

Default: 400 Minimum: 1 Maximum: 1,000,000

dsi_commit_control

Specifies whether commit control processing is handled internally by Replication Server using internal tables (on) or externally using the rs_threads system table (off).

Default: on

dsi_ignore_underscore_names

When the dsi_partitioning_rule is set to “name,” specifies whether or not Replication Server ignores transaction names that begin with an underscore. Values are “on” and “off.”

Default: on

dsi_large_xact_size

The number of statements allowed in a transaction before it is considered to be a large transaction.

Default: 100 Minimum: 4

dsi_num_large_xact_threads

The number of parallel DSI threads to be reserved for use with large transactions. The maximum value is one less than the value of dsi_num_threads.

Default: 0

dsi_num_threads

The number of parallel DSI threads to be used for a connection. A value of 1 disables the parallel DSI feature.

Default: 1 Minimum: 1 Maximum: 255

dsi_partitioning_rule

Specifies the partitioning rules (one or more) the DSI uses to partition transactions among available parallel DSI threads. Values are origin, origin_sessid, time, user, name, and none. See “Partitioning rules: reducing contention and increasing parallelism” for detailed information.

Default: none

dsi_serialization_method

Specifies the method used to maintain serial consistency between parallel DSI threads when applying transactions to a replicate data server.

  • no_wait – specifies that a transaction can start as soon as it is ready—without regard to the state of other transactions.

  • wait_for_start – specifies that a transaction can start as soon as the transaction scheduled to commit immediately before it has started.

  • isolation_level_3– specifies that a transaction can start as soon as the transaction scheduled to commit immediately before it has started, and that transaction isolation level 3 locking be used in the replicate data server.

  • wait_for_commit – specifies that a transaction cannot start until the transaction scheduled to commit immediately preceding it is ready to commit.

  • none – same as wait_for_start. Retained for backward compatibility.

  • single_transaction_per_origin – same as wait_for_start with dsi_partitioning_rule set to origin. Retained for backward compatibility.

Default: wait_for_commit

dsi_sqt_max_cache_size

The maximum SQT cache size for the database connection. The default, 0, means the current setting of the sqt_max_cache_size parameter is used as the maximum cache size for the connection.

Default: 0

parallel_dsi

A shorthand method for configuring parallel DSI to default values. A value of “on” sets dsi_num_threads to 5, dsi_num_large_xact_threads to 2, dsi_serialization_method to wait_for_commit, and dsi_sqt_max_cache_size to 1 million bytes. A value of “off” sets the parallel DSI values to their defaults. You can set this parameter to “on” and then set individual parallel DSI configuration parameters to fine-tune your configuration.

Default: off

To configure a connection for parallel DSI, set the parallel_dsi parameter to on and then set individual parallel DSI configuration parameters to fine-tune your environment.

For example, to enable parallel DSI for the connection to the pubs2 database on the SYDNEY_DS data server, enter:

alter connection to SYDNEY_DS.pubs2
 set parallel_dsi to 'on'

See “Configuring parallel DSI for optimal performance” for guidelines on configuring the parameters.