Updated on 2024-07-30 GMT+08:00

Instance Parameters

By default, DDM allows you to modify only the following parameters. If you need to modify other parameters in some special scenarios, such as data migration, contact technical support.

Table 1 Parameter description

Parameter

Description

Value Range

Default Value

bind_table

Data association among multiple sharded tables. The optimizer processes JOIN operations at the MySQL layer based on these associations. For details about parameter examples, see the description below the table.

  • The format should be:

    [{<table1>.<column1>,<table2>.<column2>},{<table1>.<column2>,<table3>.<column1>},...]

    The value is in the format of <table1>.<column1>,<table2>.<column2> and can contain multiple objects.

  • The version should be:

    DDM 2.3.2.7 or later.

-

character_set_server

DDM server's character set. To store emoticons, set both this parameter and the character set on RDS to utf8mb4.

For a DDM instance 3.0.9 or later, you can execute show variables like '%char%' to query its character set. You will find that character_set_client, character_set_results, and character_set_connection in the command output all have a fixed value, utf8mb4.

gbk, utf8, utf8mb4

utf8mb4

collation_server

Collation on the DDM server.

utf8mb4_unicode_ci, utf8mb4_bin, utf8mb4_general_ci

utf8mb4_unicode_ci

concurrent_execution_level

Concurrency level of scanning table shards in a logical table:

  • DATA_NODE: indicates that database shards are scanned in parallel and table shards in each database shard are scanned in serial.
  • RDS_INSTANCE: indicates that RDS DB instances are scanned in parallel and shards in each DB instance are scanned in serial.
  • PHY_TABLE: indicates that all table shards are scanned in parallel.

RDS_INSTANCE, DATA_NODE, PHY_TABLE

DATA_NODE

connection_idle_timeout

Number of seconds the server waits for activity on a connection before closing it. The default value is 28800, indicating that the server waits for 28,800 seconds before closing a connection.

60~86400

28800

contains_shard_key

Whether the SELECT, UPDATE, and DELETE statements must contain sharding keys in filter conditions.

OFF or ON

OFF

ddl_precheck_mdl_threshold_time

Threshold of the MDL duration in DDL pre-check. The unit is second. The default value is 120.

1~3600

120

enable_table_recycle

  • ON: indicates that the table recycle bin is enabled.
  • OFF: indicates that the table recycle bin is disabled.

After the table recycle bin is enabled, deleted tables are moved to the recycle bin and can be recovered by running the RESTORE command within seven days.

OFF or ON

OFF

long_query_time

Minimum duration of a query to be logged as slow, in seconds. The default value is 1, indicating that the query is considered as a slow query if its execution duration is greater than or equal to 1 second.

0.01~10

1

max_allowed_packet

Maximum size allowed for the packets transferred between the server and the client at a time. The value must be a multiple of 1024.

1024~1073741824

1073741824

max_backend_connections

Maximum of concurrent client connections allowed per DDM instance. When this parameter is set to 0 (default), the maximum concurrent connections from a DDM node to an RDS instance is: (RDS instance's maximum connections - 20)/DDM nodes. This parameter does not take effect only after maximum connections are set on RDS.

0~10000000

0

max_connections

Minimum concurrent connections from a DDM instance node to the client.

This value depends on node classes and processing capabilities of the target data node. Too many connections may cause connection waiting, affecting performance. The consumption of DDM connections varies with the number of shards and SQL design.

For example, If a SQL statement contains a sharding key, each DDM connection consumes one data node connection. If the SQL statement contains no sharding keys and the number of shards is N, N data node connections are consumed.

If SQL design is appropriate and processing capabilities of DDM and its data nodes are good enough, you can set this parameter to a value slightly smaller than the product of backend data nodes x maximum connections supported by each data node.

Carry out pressure tests on your services and then select a proper value.

10~40000

20000

min_backend_connections

Minimum of concurrent client connections allowed per DDM instance. The default value is 10.

0~10000000

10

seconds_behind_master

Threshold in seconds of the replication lag between a primary RDS instance to its read replica. The default value is 30, indicating that the time for data replication between the primary RDS instance and its read replicas cannot exceed 30 seconds. If the time exceeds 30 seconds, the data read requests are no longer forwarded to the read replicas.

0~7200

30

sql_execute_timeout

Number of seconds to wait for a SQL statement to execute before it times out. The default value is 28800, indicating that the SQL statement times out if its execution time is greater than or equal to 28,800 seconds.

For data nodes, ensure that net_write_timeout has a greater value than sql_execute_timeout.

100~28800

28800

temp_table_size_limit

Size of a temporary table.

500000~2000000000

1000000

transfer_hash_to_mod_hash

Whether the hash algorithm must be converted into mod_hash during table creation.

OFF or ON

OFF

ultimate_optimize

Whether the SQL execution plan is optimized based on parameter values.

OFF or ON

ON

force_read_master_in_transaction

Whether SQL statements involved in each transaction are read from the master node.

CAUTION:

This parameter is available in version 3.0.9 or later. If this feature is enabled in version 3.0.9 but the version is downgraded to 3.0.9 below, the feature keeps enabled when the version returns to 3.0.9 or later.

OFF or ON

OFF

ddl_flowcontrol_threshold

Maximum number of DDL executions (including successful and failed executions) allowed per hour.

1000~100000

10000