5.15. Misc Configuration Parameters

relcache_expire (integer)

Specifies the relation cache expiration time in seconds. The relation cache is used for caching the query result of PostgreSQL system catalogs that is used by Pgpool-II to get various information including the table structures and to check table types(e.g. To check if the referred table is a temporary table or not). The cache is maintained in the local memory space of Pgpool-II child process and its lifetime is same as of the child process. So If the table is modified using ALTER TABLE or some other means, the relcache becomes inconsistent. For this purpose, relcache_expire controls the life time of the cache. Default is 0, which means the cache never expires.

This parameter can only be set at server start.

relcache_size (integer)

Specifies the number of relcache entries. Default is 256.

Note: If the below message frequently appears in the Pgpool-II log, you may need to increase the relcache_size for better performance.

       "pool_search_relcache: cache replacement happened"
      

This parameter can only be set at server start.

check_temp_table (boolean)

Setting to on, enables the temporary table check in the SELECT statements. To check the temporary table Pgpool-II queries the system catalog of primary/master PostgreSQL backend, which increases the load on the primary/master server. If you are absolutely sure that your system never uses temporary tables, then you can safely turn off the check_temp_table. Default is on.

This parameter can be changed by reloading the Pgpool-II configurations. You can also use PGPOOL SET command to alter the value of this parameter for a current session.

check_unlogged_table (boolean)

Setting to on, enables the unlogged table check in the SELECT statements. To check the unlogged table Pgpool-II queries the system catalog of primary/master PostgreSQL backend which increases the load on the primary/master server. If you are absolutely sure that your system never uses the unlogged tables (for example, you are using 9.0 or earlier version of PostgreSQL) then you can safely turn off the check_unlogged_table. Default is on.

This parameter can be changed by reloading the Pgpool-II configurations. You can also use PGPOOL SET command to alter the value of this parameter for a current session.

pid_file_name (string)

Specifies the full path to a file to store the Pgpool-II process id. The pid_file_name path can be specified as relative to the location of pgpool.conf file or as an absolute path Default is "/var/run/pgpool/pgpool.pid".

This parameter can only be set at server start.

logdir (string)

Specifies the full path to a directory to store the pgpool_status. Default is "/tmp".

This parameter can only be set at server start.

health_check_test (boolean)

Caution

Do not set this parameter to on in a production environment. This feature is purely for testing purpose.

Setting to on, enables the testing facility of health checking. In this case the health check process looks into backend_down_request under logdir. The file may contain multiple lines, and each line corresponds to each backend. A line in the file starts with backend id (must be a decimal number starting with zero), then a TAB, and ends with "down". The backend is assumed in down status and Pgpool-II will start a failover. Once the failover completes, the "down" is rewritten to "already_down" by health check process to prevent repeating failovers.

This feature is particularly useful for testing failover_require_consensus. Suppose we have 3 watchdog node. Each watchdog checks healthiness of backend 0. By setting "0 down" in the file onky under watchdog 0, other watchdogs disagree with the unhealthiness of backend 0, so failover will not occur. This kind of partial network failure can be simulated using this feature.

Default is off.

This parameter can only be set at server start.