QHB-specific Module and Extension Options
General Settings
mask_pg_version (boolean)
The default is off. If this is on, then QHB will print
PostgreSQL's core version instead of QHB's when core
version query SELECT version(); is issued.
It is recommended to use this parameter in the cases where external system or client requires specific database system version support.
This parameter can only be set at server start
mask_version_template (string)
By default, it does not affect the value of the name and version, that is, if the value commented out or removed, then the version representation is standard and depends only on mask_pg_version (boolean).
If the administrator specifies a specific expression in the configuration file, for example:
mask_version_template = 'This is QHB {qv} mimicking PG {pv}!\n {lv}'
where:
-
{qv} — current QHB version;
-
{pv} — current PostgreSQL kernel version;
-
{lv} — QHB license information.
replaces the standard representation of the version and product name in accordance with the specified expression.
mask_version_template has higher priority than mask_pg_version. That is, if there is a value in the configuration file for mask_version_template, then the value mask_pg_version is not taken into account.
It is recommended to use this parameter in cases where the external system or client requires support for a specific DBMS version.
A DBMS reboot is required for this parameter to take effect.
enable_backtrace (boolean)
The default is true. This parameter is intended for automatic generation of trace files if FATAL errors occur.
You can turn this parameter off by changing value to false in the qhb.conf file while database is disabled.
To turn it off in active database you must execute ALTER SYSTEM SET enable_backtrace TO false;. As the result of this command warning «WARNING:
disabling this will limit support or even make it impossible» will be issued. In
order for the changes to take effect you need to restart the server configuration
by calling pg_reload_conf() SQL function, executing qhb_ctl reload, or
sending SIGHUP signal to the main server process.
When set to off (by any way), the beforementioned warning will be issued at every database restart.
Analogically, enabling this parameter can be performed in disabled (by setting
value to true) or enabled database (via ALTER SYSTEM SET enable_backtrace TO true; and pg_reload_conf()).
Trace files do not include any personal or confidential information. They are required for sending data to technical support in order to determine the code part that caused the crash.
qhb_backtrace_max_age (time)
The default value is 0s (keep files indefinitely). This is designed to limit the storage time of trace files.
The parameter can be enabled on a disabled database by changing the value in qhb.conf file. A DBMS reboot is required for this parameter to take effect.
Trace files do not include any personal or confidential information. They are required for sending data to technical support in order to determine the code part that caused the crash.
qhb_backtrace_max_count (integer)
The default value is 0 (store an arbitrary number of files). This is designed to limit the number of trace files stored.
The parameter can be enabled on a disabled database by changing the value in qhb.conf file. A DBMS reboot is required for this parameter to take effect.
Trace files do not include any personal or confidential information. They are required for sending data to technical support in order to determine the code part that caused the crash.
TARQ (Disk Block Cache Manager) Parameters
use_qhb_cache (boolean)
Boolean parameter. If this parameter is true, then new cache version will be used.
qhb_cache_size (integer)
Total buffer cache size (if use_qhb_cache=true, then the value of shared_buffers will not be used).
shared_buffers_partitions (integer)
Cache fragments (partitions; they bear no relation to the table partitions) size. Access to each fragment proceeds independently of others. Too high value will cause increasing lock contention; too low value may lead to delays if the partition has not any blocks that are suitable for eviction (all are "dirty" or used by background process).
The recommended value is 128.
tarq_cache.touch_queue_ignore (integer)
Cache fragment filling percentage at which accesses start to result in balancing operations. It can ranging from 1 to 100 (integers only). There is no need for balancing if the fragment is empty or partially filled.
The recommended value is 50.
Rebalancing
Rebalancing is an expensive operation, there can be multiple thousands of accesses to some buffers (system tables content, glossaries, sequences) per second in a loaded environment which have no notable effect on the overall balance. You can use the following settings for evening out:
tarq_cache.touch_window (integer)
The timeframe (in seconds) during which all accesses are considered as one operation.
The recommended value is 3.
tarq_cache.touch_threshold (integer)
The number of times a buffer can be accessed before triggering rebalancing operation.
The recommended value is 5.
Parameter HOLDMEM Eviction Algorithm Enabling and Control
The following parameters in configuration file are used for enabling and control of the eviction algorithm for the tables that preferably stored in memory:
use_possible_buffer (boolean)
Boolean parameter. If the value is true, then buffer cache will be used.
qhb_possible_buffers_size (integer)
Total buffer cache size.
shared_buffers_partitions (integer)
This parameter is the same as the one for TARQ — cache fragments (partitions; they bear no relation to the table partitions) size. Access to each fragment proceeds independently of others. Too high value will cause increasing lock contention; too low value may lead to delays if the partition has not any blocks that are suitable for eviction (all are "dirty" or used by background process).
The recommended value is 128.
use_qhb_onlymem_cache (boolean)
Boolean parameter. If the value is true, then memory cache will be used.
qhb_onlymem_cache_size (integer)
Total memory cache size.
2B: 1С Solution Support
Immediate Statistics Update Configuration Parameters
online_analyze.enable (boolean)
Enables immediate analyze function. The default is false.
online_analyze.verbose (boolean)
Enables the possibility to logging during statistics collection (similarly to ANALYZE VERBOSE SQL command). The default is false.
online_analyze.table_type (enum)
Specifies the table type that immediate analyze should be applied to. The available values are: all, persistent, temporary, none. The default is temporary.
online_analyze.exclude_tables (string)
Specifies the list of tables to exclude from immediate analyze. For example, "tablename_1, tablename_2 ...". The default is empty string ('').
online_analyze.include_tables (string)
Specifies the list of tables to subject to immediate analyze (this parameter overrides online_analyze.exclude_tables). The default is empty string ('').
Note
Values of these two parameters are written as the list of table names separated by commas.
online_analyze.local_tracking (boolean)
Enables the storage of temporary table statistics at local cache. The default is false.
online_analyze.capacity_threshold (integer)
Specifies the maximum number of temporary tables to store at local cache. The default is 100000.
Note
By default, system statistics is used but it is useful to store it at the session backend local cache.
online_analyze.scale_factor (floating point)
Specifies the fraction of updated table rows to require before performing immediate analyze. The default is 0.1.
online_analyze.threshold (integer)
Specifies the minimum number of updated table rows by which immediate analyze may start. The default is 50.
online_analyze.lower_limit (integer)
Specifies the minimum number of table rows by which immediate analyze may start. The default is 0.
online_analyze.min_interval (integer)
Specifies the minimum amount of time (in milliseconds) between ANALYZE calls for the specific table. The default is 10000.
Index Usage Management Configuration Parameters
plantuner.disable_index (string)
Specifies the list of indexes that are not permitted to use.
plantuner.enable_index (string)
Specifies the list of indexes that are permitted to use yet (this parameter overrides plantuner.disable_index).
plantuner.only_index (string)
Specifies the exact list of indexes that are permitted to use (this parameter overrides plantuner.disable_index and plantuner.enable_index).
Note
Values of these three parameters are written as the list of index names separated by commas.
Index name resolving issues for specific user even if the parameter is specified for a server. If some index has not been found by name (for example, if it does not exist), this index is ignored.
plantuner.fix_empty_table (boolean)
This parameter changes the planner estimate of the entirely empty tables (just created or truncated via TRUNCATE). If set to true, QHB devises plans on the assumption that this tables will remain empty. If set to false, by default QHB will think that the tables include several entries (usually 20).
Security Enhanced Memory Clearing
QHB provides a means for proper memory clearing before data are deleted, that is, for replacing these data with zero bytes. Suitable configuration parameters in qhb.conf file are used to manage these features.
In the standard version these parameters are disabled (false) by default to prevent slowdowns. In the certified version these parameters should mandatorily be enabled (true).
wipe_file_on_delete (boolean)
Enables file deletion from external memory.
For SQL commands that delete files to return corresponding disk space to the operating system, if this parameter is switched on, the files to be deleted are first filled with zero bytes. Such commands include:
- Commands that delete database objects:
DROP DATABASE,DROP INDEX,DROP MATERIALIZED VIEW,DROP SCHEMA,DROP TABLE,DROP TEMPORARY TABLE,TRUNCATE; - Commands that re-create objects:
ALTER TABLE ADD COLUMN,ALTER TABLE ALTER COLUMN TYPE,REINDEX,VACUUM FULL.
wipe_heaptuple_on_delete (boolean)
Enables page cleaning.
Enabling this parameter will ensure that all places on the page that are marked
as free when the VACUUM command is executed will be filled with zero bytes.
wipe_memctx_on_free (boolean)
Enables clearing memory blocks in RAM.
Enabling this parameter will ensure that the released RAM area corresponding to the context being deleted will be filled with zero bytes.
wipe_xlog_on_free (boolean)
Enables cleaning of WAL files.
Enabling this parameter will ensure that the WAL segments will be filled with zero bytes before being deleted or reused.
Scheduler, Message Queue Broker Launch at the DBMS Start
with_qsched (string)
Enables task scheduler launch at the DBMS start.
with_mq_broker (string)
Enables message queue broker launch at the DBMS start.
Note
These parameters's values are written as the list of pairs "database owner - database name" separated by commas. For example, 'db_owner1:dbname1, db_owner2:db_name2' or 'db_owner3:dbname3', where db_owner$ is the database owner name, and db_name$ is the database name.
Scheduler Completed Task Log Automatic Cleaning Up
To enable completed task log cleaning up you need to specify qsched_log_rotation_max_lifetime and/or qsched_log_rotation_max_entries, and qsched_log_rotation_period.
qsched_log_rotation_max_lifetime (string)
Maximum log entry lifetime, specified in '1d 1h 1m' format.
qsched_log_rotation_max_entries (string)
Maximum number of log entries, specified in '1d 1h 1m' format.
qsched_log_rotation_period (string)
Amount of time between removing log entries, specified in '1d 1h 1m' format.
qsched_log_rotation_strategy (integer)
Log cleanup strategy. The available values are: 0 — DELETE, 1 — TRUNCATE,
2 — automatic. The default is 0.
Note
Since TRUNCATE for system tables requires permission for their modification, additional configuration parameter allow_system_table_mods = true is required for strategies 1 and 2 to work properly.
qsched_log_rotation_adjustment_period (integer)
Automatic strategy adjustment frequency. The default is 10.
Integrity and Security Background Processes Enabling
To enable the integrity control background process you need to specify integrity_checks parameter.
The integrity control subsystem supports integrity check frequency configuration in running database system by using integrity_period parameter.
To enable the security profile control background process you need to specify logon_jobs parameter.
integrity_checks (bool)
Enabling the integrity control background process, specified in 'on off' format. The default is off.
integrity_period (string)
Integrity check frequency in this database system, specified in '1d 1h 1m' format. The default is 12 hours (12h).
logon_jobs (bool)
Enabling the security profile control background process, specified in 'on off' format. The default is off.
Note
You need to set logon_jobs to off and restart database system before updating cluster via qhb_upgrade. Otherwise there is no guarantee that cluster updating process will be stable (see Chapter Security Profiles).
Note
You need to set integrity_checks to off and restart database system before updating cluster via qhb_upgrade. Otherwise there is no guarantee that cluster updating process will be stable.
QSS Configuration Parameters
Note
Parameters described in this section make sense if QHB uses the QSS features, which must be previously installed. Otherwise, the encryption using will result in errors. At the same time, without QSS installed QHB remains fully functional and operational if no attempts are made to access the QSS features.
qss_mode (integer)
0 (default) means not using QSS features. When 2 is set QHB can use QSS features. Value 1 is reserved and obsolete.
qss_encrypt_statistic (bool)
Controls whether to encrypt statistics on table data. When this parameter is enabled, statistics for all tables will be encrypted, not just encrypted ones. If qss_mode is off, this parameter is ignored.
The default is false.
After changing the parameter value, you need to recollect the statistics on all tables, see Section QSS Secure Storage Module for more details.
qss_shmem_size_cap (integer)
Sets the memory reserved for communication with the QSS server. In any case memory consuming starts at 8 KB, but it can grow to this limit.
Each backend has its own memory. Larger objects can be encrypted but to process them all, memory will be allocated and freed again.