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

Connection Pool Parameters

When a connection pool is used to access the database, database connections are established and then stored in the memory as objects during system running. When you need to access the database, no new connection is established. Instead, an existing idle connection is selected from the connection pool. After you finish accessing the database, the database does not disable the connection but puts it back into the connection pool. The connection can be used for the next access request.

pooler_port

Parameter description: Specifies the O&M management port of internal tools, such as cm_agent and cm_ctl. This port is used by the initial user or system administrator to connect to the database through the client.

This parameter is a POSTMASTER parameter. Set it based on instructions provided in Table 2.

Value range: the value of the GUC parameter port of a CN or DN plus 1

Default value: the default value of the GUC parameter port of a CN or DN plus 1. The default value of this parameter is 8001 for CNs and 40001 for DNs.

pooler_maximum_idle_time

Parameter description: Specifies the maximum amount of time that the connections can remain idle in a pool before being removed. After that, the automatic connection clearing mechanism is triggered to reduce the number of connections on each node to the value of minimum_pool_size.

This parameter is a USERSET parameter. Set it based on instructions provided in Table 2.

Value range: an integer ranging from 0 to 2147483647. The smallest unit is s.

Default value: 10 min (600s)

minimum_pool_size

Parameter description: Specifies the minimum number of remaining connections in the pool on each node after the automatic connection clearing is triggered. If this parameter is set to 0, the automatic connection clearing is disabled.

This parameter is a USERSET parameter. Set it based on instructions provided in Table 2.

Value range: an integer ranging from 1 to 65535.

Default value: 50

max_pool_size

Parameter description: Specifies the maximum number of connections between a CN and another CN/DN in a connection pool. This parameter may need to be modified when the cluster scale changes. For example, nodes are added or deleted.

Parameter type: integer

Unit: none

Value range: 1 to 65535

Default value:

  • Independent deployment:

    32768 (60-core CPU/480 GB memory); 16384 (32-core CPU/256 GB memory); 8192 (16-core CPU/128 GB memory); 4096 (8-core CPU/64 GB memory); 2048 (4-core CPU/32 GB memory); 1000 (4-core CPU/16 GB memory)

Setting method: This parameter is a POSTMASTER parameter. Set it based on instructions provided in Table 2.

Setting suggestion: Set this parameter based on the default value of different instance specifications. The value of this parameter must be greater than the value of max_connections. During the adjustment, the connections consumed by internal threads must be reserved. When the number of concurrent services is large, the connections from the CN to other CNs/DNs in the connection pool are consumed. If this parameter is set to a small value, an error is reported when the number of connections reaches the upper limit. As a result, services fail. When a CN is started, it allocates memory in advance based on the parameter value. Therefore, if the parameter value increases, the system consumes more memory resources. However, in general, the impact on the CN memory is small.

persistent_datanode_connections

Parameter description: Specifies whether to release the connection for the current session.

This parameter is a BACKEND parameter. Set it based on instructions provided in Table 2.

Value range: Boolean

  • off indicates that the connection for the current session will be released.
  • on indicates that the connection for the current session will not be released.

    After this parameter is set to on, a session may hold a connection but does not run a query. As a result, other query requests fail to be connected. To fix this problem, the number of sessions must be less than or equal to max_active_statements.

Default value: off

max_coordinators

Parameter description: Specifies the maximum number of CNs in a cluster. This parameter may need to be modified when the cluster scale changes, for example, nodes are added or deleted. During scale-out, ensure that the value of this parameter is greater than the number of CNs in the target cluster. Otherwise, the scale-out will fail. If this parameter is set to a large value during scale-in, more memory resources are consumed when the CN is started. However, in general, the impact on the CN memory is small.

Parameter type: integer

Unit: none

Value range: 2 to 1024

Default value: 128

Setting method: This is a POSTMASTER parameter. You are not advised to modify it. If you need to modify it, set it based on instructions provided in Table 2.

Setting suggestion: Set this parameter based on the actual cluster specifications. If the value of this parameter is less than the number of CNs in the cluster, node creation will fail. When a CN is started, it allocates memory in advance based on the parameter value. Therefore, if the parameter value increases, the system consumes more memory resources. However, in general, the impact on the CN memory is small.

max_datanodes

Parameter description: Specifies the maximum number of DNs in a cluster. This parameter may need to be modified when the cluster scale changes, for example, nodes are added or deleted. During scale-out, ensure that the value of this parameter is greater than the total number of DN shards in the target cluster. Otherwise, the scale-out will fail. If this parameter is set to a large value during scale-in, more memory resources are consumed when the CN is started. However, in general, the impact on the CN memory is small.

Parameter type: integer

Unit: none

Value range: 2 to 65535

Default value: 256

Setting method: This is a POSTMASTER parameter. You are not advised to modify it. If you need to modify it, set it based on instructions provided in Table 2.

Setting suggestion: Set this parameter based on the actual cluster specifications. If the value of this parameter is less than the number of DNs in the cluster, node creation will fail. When a CN is started, it allocates memory in advance based on the parameter value. Therefore, if the parameter value increases, the system consumes more memory resources. However, in general, the impact on the CN memory is small.

cache_connection

Parameter description: Specifies whether to reclaim the connections of a connection pool.

This parameter is a SIGHUP parameter. Set it based on instructions provided in Table 2.

Value range: Boolean

  • on indicates that the connections of a connection pool will be reclaimed.
  • off indicates that the connections of a connection pool will not be reclaimed.

Default value: on

enable_force_reuse_connections

Parameter description: Specifies whether a session forcibly reuses a new connection.

This parameter is a BACKEND parameter. Set it based on instructions provided in Table 2.

Value range: Boolean

  • on indicates that the new connection is forcibly used.
  • off indicates that the current connection is used.

Default value: off

pooler_connect_max_loops

Parameter description: Specifies whether to enable the connection retries to enhance stability of setting up connections in primary/standby switchover scenarios. If a service fails to connect to the primary server, it will retry by attempting to connect to the standby server. If the standby server is successfully promoted to primary, the retry attempt will succeed. This parameter specifies the total number of retry attempts. If this parameter is set to 0, retries are disabled. The service only establishes a connection to the primary server.

This parameter is a USERSET parameter. Set it based on instructions provided in Table 2.

Value range: an integer ranging from 0 to 20.

Default value: 1

pooler_connect_interval_time

Parameter description: Specifies the interval between retries when pooler_connect_max_loops is set to a value greater than 1. You are advised to set this parameter to a value slightly greater than the time required for primary/standby switchover in the current cluster.

This parameter is a USERSET parameter. Set it based on instructions provided in Table 2.

Value range: an integer ranging from 0 to 7200. The smallest unit is s.

Default value: 15s

pooler_timeout

Parameter description: Specifies the timeout period of communication between each connection in a CN's connection pool and another CN/DN.

This parameter is a SIGHUP parameter. Set it based on instructions provided in Table 2.

Value range: an integer ranging from 0 to 7200. The smallest unit is s.

Default value: 10 min

pooler_connect_timeout

Parameter description: Specifies the timeout period of connecting a CN's connection pool to another CN/DN in the same cluster.

This parameter is a SIGHUP parameter. Set it based on instructions provided in Table 2.

Value range: an integer ranging from 0 to 7200. The smallest unit is s.

Default value: 1 min

pooler_cancel_timeout

Parameter description: Specifies the timeout period of canceling a connection by a CN's connection pool during error processing. If similar timeout occurs when an exception of the subtransaction or stored procedure is captured, the transaction containing the subtransaction or the stored procedure rolls back. If the source data from the COPY FROM operation is not consistent with that of the table structure in the target table, and the parameter value is not 0, an error is reported.

This parameter is a SIGHUP parameter. Set it based on instructions provided in Table 2.

Value range: an integer ranging from 0 to 7200. The smallest unit is s. 0 (not recommended) indicates that the timeout is disabled.

Default value: 15s