Server System Configuration Parameter Usage Instructions (Required Reading)

This document describes the usage of server system configuration parameters, including explanations of parameter data types and values, setting classifications, and more.


Parameter Data Types and Values

All parameter names are case-insensitive.

Each parameter has one of the data types listed in the following table:

Data Type Description Case-Sensitive
boolean Supported values: on / off / true / false / yes / no / 1 / 0 No
enum Enumerated type. Only string values listed in the allowed set are valid No
int Integer
floating point Floating-point number
string String Yes

Some parameter values relate to memory size or time duration. For such values, if you do not use the default unit, you must explicitly specify a unit when setting the value. For example, memory units KB, MB, GB; time units ms, s, min, h, d, m, y, etc. Note that memory units use a multiplier of 1024, not 1000.

Examples:

=# SET statement_mem TO '200MB';
=# SET idle_in_transaction_session_timeout TO '1s';

Note!
1.A valid time expression includes a number and its unit; the same applies to memory expressions.
2.When using the default unit, the unit may be omitted.
3.There must be no space between the number and the unit.
4.INT_MAX represents the maximum constant value for the int type, which is 2147483647.

Setting Classifications

Many system configuration parameters have restrictions on modification privileges, methods of setting, and when settings take effect. For example, only superusers of the YMatrix database can modify certain critical parameters. Some parameters require restarting the database management system before changes take effect.

In YMatrix, each instance of the MXMaster and every MXSegment has its own postgresql.conf file (located in its respective data directory). Some parameters are classified as segments, meaning that each MXSegment instance reads its parameter value from its local postgresql.conf file. Therefore, you must manually configure these parameters on both the MXMaster and each MXSegment. In contrast, if a parameter is of type master, it needs to be set only on the MXMaster—the MXMaster automatically synchronizes the setting to all MXSegments, or the MXSegments ignore their local values.

In summary, the following table and the above explanation aim to clearly describe how to interpret the 设置分类 column in the individual parameter reference tables.

Setting Classification Description
master / segments master means the parameter can be modified on the MXMaster of the YMatrix cluster using the gpconfig command in the postgresql.conf file. After modification, the value is automatically propagated to MXSegments at runtime or ignored by them.
segments means the parameter must be modified on the MXMaster and, if necessary, also on each MXSegment. Each MXSegment uses its own configuration value. These parameters often require a system restart to take effect.
session / system session indicates the parameter is session-level; system indicates it is system-level.
YMatrix parameter precedence order is: session (SET) > database and role (ALTER ROLE...IN DATABASE...SET) > role (ALTER ROLE...SET) > database (ALTER DATABASE...SET) > system (postgresql.conf). System-level parameters can only be modified via the gpconfig command in this file.
restart / reload restart means the change takes effect only after restarting the YMatrix database system.
reload means the change takes effect after reloading the server configuration file (mxstop -u), without stopping the database system.
table table means the parameter can only be set during table creation using the WITH clause. It applies to a single table and cannot be altered once set.
superuser Session-level parameter that can only be modified by a database superuser.
read only Read-only parameter; cannot be modified.