Updated on 2024-08-20 GMT+08:00

AI Features

enable_hypo_index

Parameter description: Specifies whether the database optimizer considers the created virtual index when executing EXPLAIN. By executing EXPLAIN on a specific query statement, you can evaluate whether the index can improve the execution efficiency of the query statement based on the execution plan provided by the optimizer.

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

Value range: Boolean

  • on: A virtual index is created when the EXPLAIN command is executed.
  • off: No virtual index is created when the EXPLAIN command is executed.

Default value: off

db4ai_snapshot_mode

Parameter description: There are two snapshot modes: MSS (materialized mode, storing data entities) and CSS (computing mode, storing incremental information).

Parameter type: string

Unit: none

Value range: "MSS" or "CSS"

  • MSS: materialized mode. The DB4AI stores data entities when snapshots are created.
  • CSS: computing mode. The DB4AI stores incremental information when snapshots are created.

Default value: "MSS"

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

Setting suggestion: Retain the default value. Switch the mode as required.

db4ai_snapshot_version_delimiter

Parameter description: Specifies the delimiter for the snapshot version of a data table.

Parameter type: string

Unit: none

Value range: a string of one character, such as @ and #. Note that ! is invalid.

Default value: "@"

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

Setting suggestion: Retain the default value.

db4ai_snapshot_version_separator

Parameter description: Specifies the delimiter for the snapshot subversion of a data table.

Parameter type: string

Unit: none

Value range: a string of one character, such as @ and #. Note that ? is invalid.

Default value: "."

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

Setting suggestion: Retain the default value.

enable_ai_stats

Parameter description: Specifies whether to create or use intelligent statistics.

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

Value range: Boolean

  • on indicates that intelligent statistics are created and used.
  • off indicates that intelligent statistics are not created or used.

Default value: on

multi_stats_type

Parameter description: Specifies the type of statistics to be created when enable_ai_stats is set to on.

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

Value range: enumerated values. Valid values include "BAYESNET", "MCV", and "ALL".

  • "BAYESNET": Only intelligent statistics are created.
  • "MCV": Only traditional statistics are created.
  • "ALL": Both traditional statistics and intelligent statistics are created.

Default value: "BAYESNET"

ai_stats_cache_limit

Parameter description: Specifies the maximum number of models that can be cached when enable_ai_stats is set to on.

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

Value range: an integer ranging from 30 to 1000

Default value: 100

enable_operator_prefer

Parameter description: Specifies whether to enable the operator preference rule. If the estimated costs are similar, the parameterized path is preferred for table join.

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

Value range: Boolean

  • on indicates that parameterized path preference is enabled.
  • off indicates that parameterized path preference is disabled.

Default value: off

There are two prerequisites for this parameter to take effect:

  • The parameterized path is generated.
  • The estimated cost of the parameterized path is similar to that of other index scan operators.

enable_cachedplan_mgr

Parameter description: Specifies whether to enable the adaptive plan selection function. Adaptive plan selection solves the performance issue caused by the traditional single cache plan that cannot change according to the query condition parameter, and avoids frequent calling of query optimizers. Users can enable this function and maintain multiple cache plans for adapting to different query parameters, improving query execution performance.

Parameter type: Boolean.

Unit: none

Value range:

  • on indicates that the multi-plan cache function is allowed.
  • off indicates that the multi-plan cache function is not allowed.

Default value: on

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

Setting suggestion: Retain the default value. Enabling this parameter helps improve the query performance. If this parameter is disabled, the query performance may deteriorate.

max_stmt_aplan_num

Parameter description: Specifies the maximum number of candidate plans per query in adaptive plan selection.

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

Value range: an integer ranging from 0 to 20

Default value: 5

recommend_session_aplan_memory

Parameter description: Specifies the maximum memory size of candidate plans of each session in adaptive plan selection. If the size is greater than or equal to the value of this parameter, no new candidate plan will be inserted into the memory. The unit is KB.

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

Value range: an integer ranging from 1024 to 102400

Default value: 5120

repick_plan_min_duration

Parameter description: Specifies the lower limit of the detected plan. During policy detection, if the execution time of the detected policy is not less than that of the cplan multiplied by the value of repick_plan_min_duration, an error is reported. If this parameter is set to 0, the error reporting mechanism is disabled.

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

Value range: an integer ranging from 0 to INT_MAX

Default value: 0

enable_adaptive_cost

Parameter description: Determines whether to enable the feedback-based optimizer cardinality and cost correction functions. If this parameter is enabled, the processes of collecting operator information and estimating cardinality are enabled, and the thread for starting backend model maintenance is enabled; otherwise, the thread exits.

Parameter type: Boolean.

Unit: none

Value range:

  • on: The operator information and cardinality estimation processes are enabled.
  • off: The operator information and cardinality estimation processes are disabled.

Default value:

  • on: default value of the newly installed database.
  • off: default value of the database in versions earlier than 505.1.0 after the database is upgraded.

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

Setting suggestion: Retain the default value. Enable or disable this parameter based on the actual requirement.

enable_feedback_cardest

Parameter description: Specifies whether to enable the feedback-based optimizer cardinality and cost correction functions. This parameter is used by developers to diagnose model-related problems. If enable_adaptive_cost is set to off, and this parameter is set to on, the operator information is still collected and the API of cardinality estimation feedback is still called. However, in this case, the thread for backend automatic model maintenance is not enabled. Developers can use the gs_acm_analyze_workload_manual() function to manually train models for diagnosing problems.

Parameter type: Boolean.

Unit: none

Value range:

  • on: The operator information is collected, and the API of cardinality estimation feedback is still called. However, the backend automatic model maintenance thread is not enabled.
  • off: The enable_adaptive_cost parameter takes full control.

Default value:

  • on: default value of the newly installed database.
  • off: default value of the database in versions earlier than 505.1.0 after the database is upgraded.

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

Setting suggestion: You are advised to retain the default value so that developers can diagnose model-related problems. If this parameter is not required, you can disable it and the enable_adaptive_cost parameter can take full control. However, this operation will compromise flexibility.

adaptive_cardest_strategy

Parameter description: Specifies the preference of the selection cardinality estimation model.

Value type: enumerated type

Unit: none

Value range: "auto", "use_statistics", and "use_feedback".

  • "auto": adaptive mode. In this mode, the system automatically determines whether to use the statistical method or feedback method based on the estimation accuracy in the history.
  • "use_statistics": Statistics are preferentially used for cardinality estimation.
  • "use_feedback": The feedback model is preferentially used for cardinality estimation.

Default value: "auto"

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

Setting suggestion: Retain the default value.

maximal_feedback_model_num

Parameter description: Specifies the maximum number of cardinality feedback models. If the actual number exceeds the value of this parameter, no new models will be trained.

Parameter type: integer.

Unit: none

Value range: –1 to 1000000. The value –1 indicates that there is no upper limit.

Default value: 10000

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

Setting suggestion: Retain the default value. If this parameter is set to an excessively small value, the cardinality estimation feedback function may fail because the system cannot train enough new models. If this parameter is set to an excessively large value, the system performance may deteriorate.

feedback_model_cache_limit

Parameter description: Specifies the maximum number of cardinality feedback models that can be cached in the global memory.

Parameter type: integer.

Unit: none

Value range: 10 to 100000

Default value: 500

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

Setting suggestion: Retain the default value. If this parameter is set to an excessively large or small value, the system performance deteriorates.

feedback_model_expired_time

Parameter description: Specifies the timeout interval for cardinality feedback models, which is used to clear expired models periodically.

Parameter type: integer.

Unit: millisecond

Value range: 500–2147483647

Default value: 1000*60*60*24

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

Setting suggestion: Retain the default value. If the timeout interval is too long, the system performance deteriorates. If the timeout interval is too short, unexpired models may be deleted, affecting functions.

feedback_collection_expired_time

Parameter description: Specifies the timeout interval for cardinality feedback models, which is used to clear expired operator models periodically.

Parameter type: integer.

Unit: millisecond

Value range: 50–2147483647

Default value: 1000*60*60

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

Setting suggestion: Retain the default value. If the timeout interval is too long, the system performance deteriorates. If the timeout interval is too short, unexpired models may be deleted, affecting functions.

adaptive_cost_min_time

Parameter description: Specifies the execution duration threshold of SQL statements for cardinality feedback collection. Only the feedback of statements whose execution duration is greater than the value of this parameter is collected.

Parameter type: integer.

Unit: millisecond

Value range: 0 to 2147483647

Default value: 1000

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

Setting suggestion: You are advised to set this parameter to 20% of the execution duration of slow queries to be tuned. If this parameter is set to a small value, the system performance may deteriorate by about 1%. If this parameter is set to a large value, the query that can be automatically optimized does not take effect.

cost_update_window_size

Parameter description: Specifies the size of the sliding window for collecting data for regression.

Parameter type: integer.

Unit: none

Value range: 1–20

Default value: 5

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

Setting suggestion: Retain the default value.

adaptive_costest_strategy

Parameter description: Specifies whether the new or old cost model is used for cost evaluation.

Value type: enumerated type

Unit: none

Value range: "L0" and "L1"

  • "L0": The new cost model is triggered only when the cardinality estimation is correct (for example, using the cardinality estimation feedback).
  • "L1": The new cost model is preferentially used for calculation.

Default value: "L0"

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

Setting suggestion: Retain the default value.

adaptive_costmodel_calibration_interval

Parameter description: Specifies the interval at which the cost model correction logic is triggered.

Parameter type: integer.

Unit: millisecond

Value range: 0 to 2147483647. The value 0 indicates that the cost models are not automatically corrected.

Default value: 1000*60*60

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

Setting suggestion: Retain the default value. If this parameter is set to an excessively small value, the cost model frequently triggers the correction function, resulting in performance deterioration. If this parameter is set to an excessively large value, the model cannot be corrected in a timely manner, resulting in poor performance.

unix_socket_directory

Parameter description: Specifies the path for storing files in the unix_socket communication mode. You can set this parameter only in the configuration file gaussdb.conf. Before enabling the fenced mode, you need to set this GUC parameter.

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

Value range: a string of 0 or more characters

Default value: ''

enable_ai_watchdog

Parameter description: Enables or disables the AI watchdog function.

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

Value range: Boolean

  • on: enabled.
  • off: disabled.

Default value: on

enable_ai_watchdog_forcible_oom_detection

Parameter description: Forcibly enables or disables the OOM detection function of the AI watchdog. If this parameter is disabled, the system automatically determines whether to enable the OOM detection function based on the current database specifications. In automatic determination mode, the OOM detection function is enabled only when max_process_memory is set to 64GB or a larger value. The OOM detection function depends on the information obtained by the memory management module. Therefore, if the memory management module is disabled or invalid, the OOM detection function cannot be enabled.

Parameter type: Boolean.

Unit: none

Value range:

  • on: enabled.
  • off: disabled.

Default value: off

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

Setting suggestion: Retain the default value. If this function is enabled, the system performance may be affected.

enable_ai_watchdog_healing

Parameter description: Enables or disables the self-healing function of the AI watchdog.

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

Value range: Boolean

  • on: enabled.
  • off: disabled.

Default value: on

ai_watchdog_max_cpu_usage

Parameter description: Specifies the expected upper limit of the database CPU usage. The value is normalized based on the multi-core situation. If this parameter is set to 0, the system does not check the CPU usage.

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

Value range: a floating-point number ranging from 0 to 1.

Default value: 0.8

ai_watchdog_oom_dynamic_used_threshold

Parameter description: Specifies the expected upper limit of the dynamic memory usage of the database.

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

Value range: a floating-point number ranging from 0 to 1.

Default value: 0.95

ai_watchdog_oom_growth_confidence

Parameter description: Specifies the confidence level of the OOM detection algorithm.

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

Value range: a floating-point number ranging from 0.1 to 1.

Default value: 0.95

ai_watchdog_oom_malloc_failures

Parameter description: Specifies the maximum number of consecutive memory allocation failures tolerated. If the number of consecutive memory allocation failures exceeds this value, the OOM detection function may be triggered.

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

Value range: an integer ranging from 1 to 32000.

Default value: 50

ai_watchdog_oom_other_used_memory_threshold

Parameter description: Specifies the expected upper limit of memory usage of other parts of the database, in MB.

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

Value range: an integer ranging from 1 to 1048576.

Default value: 20480

ai_watchdog_oom_process_threshold

Parameter description: Specifies the expected percentage of the database process usage to the value of max_process_memory. When the threshold is reached, memory leakage determination is triggered. The value can be greater than 1.

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

Value range: a floating-point number ranging from 0 to 10.

Default value: 1.1

ai_watchdog_oom_shared_threshold

Parameter description: Specifies the expected upper limit of the shared memory usage of the database.

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

Value range: a floating-point number ranging from 0 to 1.

Default value: 0.4

ai_watchdog_rto_restriction_time

Parameter description: Specifies the RTO threshold of the AI watchdog self-healing function. If the RTO threshold is exceeded, self-healing is not performed. The unit is second.

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

Value range: an integer ranging from 0 to 36000.

Default value: 600

ai_watchdog_tolerance_times

Parameter description: Specifies the maximum number of consecutive abnormal events that can be tolerated by the AI watchdog before self-healing is started. This parameter can be used to avoid incorrect operations.

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

Value range: an integer ranging from 0 to 100.

Default value: 4

ai_watchdog_tps_threshold

Parameter description: Specifies the lower limit of the expected TPS usage of the database instance. If the TPS usage is lower than the value of this parameter, the exception determination logic is triggered.

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

Value range: an integer ranging from 0 to 32000.

Default value: 2

ai_watchdog_wait_time

Parameter description: Adjusts the waiting time, in seconds. To prevent the database from frequently performing self-healing operations, the database waits for a period of time after startup.

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

Value range: an integer ranging from 0 to 36000.

Default value: 1800

ai_watchdog_warning_retention

Parameter description: Specifies the maximum number of alarm records that the AI watchdog can retain in the dbe_perf.ai_watchdog_detection_warnings view.

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

Value range: an integer ranging from 0 to 32000.

Default value: 20