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
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 private or sensitive information. They are required for sending data to technical support in order to determinate chunk of code that responsible for error arising.
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 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.
Rbytea Configuration Parameters
rbytea.filesystem_storage_path (string)
Specifies the catalog (file system/volume mounting points) for the data image storage.
Binary data will be stored in this server catalog. There will be created directory for each database (with database OID), and it will include multiple subdirectories with data files.
Subdirectory names from database catalog to file will be rbytea type uuid, and file extension will be number of the transaction in which the data first appeared in system.
Catalog should be available for user that has started database server to read/write into.
By default, if this parameter is omitted or empty, binary data will be stored in '<database_catalog>/rbytea' catalog.
shared_preload_libraries (string)
Shared library loading at QHB start.
This parameter provides shared library loading at QHB start and initialization of the [background process][Фоновый процесс очистки] for old image cleanup. Otherwise old image automatic cleanup will not be performing.
Value 'librbytea' should be added.
Note
If shared_preload_libraries has already been set to other libraries loading, there is no need to overwrite its value. You must to add librbytea (with an appropriate delimiter) instead.
rbytea.worker_restart_time (integer)
Sets the interval between cleaning background process runs.
[Background process][Фоновый процесс очистки] do not run continuously. Data are static enough; therefore there is no need to run cleaning process too frequently. This parameter specifies the delay between its runs. This value is specified in seconds. The default is 86400 seconds (24-hour day).
rbytea.databases_for_vacuuming (string)
Databases for cleaning background process.
This parameter determines which databases will be subject to cleaning. Database names is listed separated by commas. Qhbmaster will start just as many cleaning background processes as number of the databases listed in this parameter. The default is qhb.
rbytea.filesystem_qss_mode (integer)
Background encryption enabling.
If the system supports background encryption during disk write, this parameter also allows to encrypt rbytea binary data. To enable encryption you should set this parameter to 1. The default is 0.
When encrypting, data are filled (leveled out) up to 16-byte block boundary so len(rbytea) and len_full(rbytea) functions may return different values for the same data. md5store(rbytea) and sha256store(rbytea) functions evaluate checksums for encrypted data that was filled up to 16-byte block boundary.
It is up to the database administrator to take care of the encryption key change.
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 Purge
QHB provides a means for proper memory purge 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 row deletion.
If this parameter is switched on, VACUUM fills the page spaces marked as free
with zero bytes.
wipe_memctx_on_free (boolean)
Enables RAM clearing.
This parameter fills the released memory with zero bytes if the released memory belongs to a particular context.
wipe_xlog_on_free (boolean)
Enables WAL files cleaning up.
If this parameter is switched on, the WAL segment will be filled with zero bytes before it is deleted or overwritten.
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 database owner name, and db_name$ is 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 Section [Профили безопасности]).
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.