Configuration Parameters

This document lists the configuration parameters (GUC) of SynxDB database in alphabetical order.

allow_dml_directory_table

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Controls whether data manipulation language (DML) statements such as INSERT, UPDATE, and DELETE are permitted against directory tables in SynxDB.

allow_in_place_tablespaces

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Allows tablespaces to be created directly inside the pg_tblspc directory instead of at an external location, which is primarily intended for testing purposes.

analyze_only_modified_relations

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether ANALYZE skips relations that have not been modified since the last analyze. When set to on, ANALYZE checks the changes_since_analyze counter in pgstat for each relation. If the counter is zero (indicating no inserts, updates, or deletes since the last analyze), the relation is skipped with a log message: skipping analyze relation "<relation_name>", no data modifications since last analyze. This reduces unnecessary ANALYZE overhead in large databases with many static tables, speeding up maintenance operations. For partitioned tables, each leaf partition is checked individually, so only modified partitions are re-analyzed. This parameter also works with VACUUM (ANALYZE). For inheritance tables, the optimization applies when you run ANALYZE on individual child tables; running ANALYZE on the parent table does not individually check each child table.

application_name

  • Variable Type: String

  • Default Value: ‘’

  • Setting Category: user

  • Description: Sets the application name that SynxDB reports in statistics views, log entries, and similar diagnostic output, making it easier to identify the source of a connection.

aqumv_allow_foreign_table

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether SynxDB allows Answer Query Using Materialized Views (AQUMV) rewriting to consider materialized views that are built on foreign or external tables.

archive_cleanup_command

  • Variable Type: String

  • Default Value: ‘’

  • Setting Category: sighup

  • Description: Sets the shell command that SynxDB executes at every restart point during recovery, typically used to remove WAL archive files that are no longer needed.

archive_command

  • Variable Type: String

  • Default Value: ‘’

  • Setting Category: sighup

  • Description: Sets the shell command that SynxDB calls to archive a completed WAL file, enabling WAL archiving when archive_mode is enabled.

archive_mode

  • Variable Type: Enum

  • Default Value: off

  • Value Range: always, on, off

  • Setting Category: postmaster

  • Description: Controls whether SynxDB archives completed WAL files using the command specified by archive_command.

array_nulls

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether an unquoted NULL in array input is interpreted as a null element; when this parameter is disabled, such input is instead taken literally as the string “NULL”.

authentication_timeout

  • Variable Type: Integer

  • Default Value: 60

  • Unit: s

  • Value Range: [1,600]

  • Setting Category: sighup

  • Description: Sets the maximum time SynxDB allows for a client to complete the authentication handshake before the connection attempt is aborted.

autovacuum

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: sighup

  • Description: Controls whether SynxDB starts the autovacuum subprocess, which automatically vacuums and analyzes tables in the background.

autovacuum_analyze_scale_factor

  • Variable Type: Real

  • Default Value: 0.1

  • Value Range: [0,100]

  • Setting Category: sighup

  • Description: Sets the fraction of a table’s estimated row count that must be inserted, updated, or deleted before autovacuum triggers an analyze on that table; this value is added to autovacuum_analyze_threshold when determining the actual trigger point.

autovacuum_analyze_threshold

  • Variable Type: Integer

  • Default Value: 50

  • Value Range: [0,2147483647]

  • Setting Category: sighup

  • Description: Sets the minimum number of inserted, updated, or deleted tuples needed on a table before autovacuum triggers an analyze on that table.

autovacuum_freeze_max_age

  • Variable Type: Integer

  • Default Value: 200000000

  • Value Range: [100000,2000000000]

  • Setting Category: postmaster

  • Description: Sets the “maximum age” of transaction IDs in a table. When the number of transactions accumulated since the transaction ID was allocated reaches this value, the system automatically performs autovacuum on the table to prevent transaction ID wraparound. This operation is enforced even if autovacuum is disabled to ensure data safety.

autovacuum_max_workers

  • Variable Type: Integer

  • Default Value: 3

  • Value Range: [1,262143]

  • Setting Category: postmaster

  • Description: Sets the maximum number of autovacuum worker processes that can run concurrently to reclaim dead tuples and help prevent transaction ID wraparound.

autovacuum_multixact_freeze_max_age

  • Variable Type: Integer

  • Default Value: 400000000

  • Value Range: [10000,2000000000]

  • Setting Category: postmaster

  • Description: Specifies the multixact ID age at which a table is forced to undergo autovacuum to prevent multixact ID wraparound.

autovacuum_naptime

  • Variable Type: Integer

  • Default Value: 60

  • Unit: s

  • Value Range: [1,2147483]

  • Setting Category: sighup

  • Description: Sets the minimum interval between successive autovacuum runs on any given database.

autovacuum_vacuum_cost_delay

  • Variable Type: Real

  • Default Value: 2

  • Unit: ms

  • Value Range: [-1,100]

  • Setting Category: sighup

  • Description: Sets the vacuum cost delay time (in milliseconds) for autovacuum operations.

autovacuum_vacuum_insert_scale_factor

  • Variable Type: Real

  • Default Value: 0.2

  • Value Range: [0,100]

  • Setting Category: sighup

  • Description: Specifies a fraction of the table size that is added to autovacuum_vacuum_insert_threshold when deciding whether an insert-heavy table should be vacuumed by autovacuum.

autovacuum_vacuum_insert_threshold

  • Variable Type: Integer

  • Default Value: 1000

  • Value Range: [-1,2147483647]

  • Setting Category: sighup

  • Description: Sets the minimum number of inserted tuples required before autovacuum considers vacuuming a table; setting it to -1 disables insert-driven autovacuuming for that table.

autovacuum_vacuum_scale_factor

  • Variable Type: Real

  • Default Value: 0.2

  • Value Range: [0,100]

  • Setting Category: sighup

  • Description: Controls the threshold ratio of updated or deleted tuples to total tuples before autovacuum is performed.

autovacuum_vacuum_threshold

  • Variable Type: Integer

  • Default Value: 50

  • Value Range: [0,2147483647]

  • Setting Category: sighup

  • Description: Controls the minimum number of updated or deleted tuples required to trigger autovacuum.

autovacuum_work_mem

  • Variable Type: Integer

  • Default Value: -1

  • Unit: kB

  • Value Range: [-1,2147483647]

  • Setting Category: sighup

  • Description: Sets the maximum amount of memory that each autovacuum worker process can use. When set to -1, SynxDB uses the value of maintenance_work_mem instead.

backend_flush_after

  • Variable Type: Integer

  • Default Value: 0

  • Unit: 32kB

  • Value Range: [0,256]

  • Setting Category: user

  • Description: Sets the number of pages a backend process can write before the operating system is asked to flush those writes to disk, which helps smooth out I/O and avoid large write spikes at checkpoint time.

backslash_quote

  • Variable Type: Enum

  • Default Value: safe_encoding

  • Value Range: safe_encoding, on, off

  • Setting Category: user

  • Description: Controls whether a backslash can be used as an escape character for a single quote within an ordinary string literal.

backtrace_functions

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: superuser

  • Description: Specifies a comma-separated list of C function names for which a backtrace is logged whenever an error is raised inside them, primarily to help troubleshoot internal error conditions.

bgwriter_flush_after

  • Variable Type: Integer

  • Default Value: 64

  • Unit: 32kB

  • Value Range: [0,256]

  • Setting Category: sighup

  • Description: Sets the number of pages after which the background writer requests the operating system to flush previously written pages to disk, which helps avoid large I/O bursts around checkpoints.

block_size

  • Variable Type: Integer

  • Default Value: 32768

  • Value Range: [32768,32768]

  • Setting Category: internal

  • Description: Shows the size, in bytes, of a database disk block. This value is determined at compile time and cannot be changed at runtime.

bonjour

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: postmaster

  • Description: Controls whether the server advertises its existence on the network via Bonjour/Zeroconf service discovery.

bonjour_name

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: postmaster

  • Description: Specifies the service name used when advertising the server via Bonjour; if left unset, the computer’s host name is used by default.

bytea_output

  • Variable Type: Enum

  • Default Value: hex

  • Value Range: escape, hex

  • Setting Category: user

  • Description: Sets the output format used when values of type bytea are converted to text, such as in query results.

check_function_bodies

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether SynxDB checks routine bodies for syntactic and semantic validity during CREATE FUNCTION and CREATE PROCEDURE.

checkpoint_completion_target

  • Variable Type: Real

  • Default Value: 0.9

  • Value Range: [0,1]

  • Setting Category: sighup

  • Description: Specifies the target duration for completing a checkpoint, expressed as a fraction of the checkpoint interval, so that dirty buffer flushing is spread out over time rather than happening in a burst.

checkpoint_flush_after

  • Variable Type: Integer

  • Default Value: 32

  • Unit: 32kB

  • Value Range: [0,256]

  • Setting Category: sighup

  • Description: Sets the number of pages written during a checkpoint after which the system requests the operating system to flush those writes to disk.

checkpoint_timeout

  • Value Range: 30 - 86400 (integer, in seconds)

  • Default Value: 300 (5 minutes)

  • Setting Category: local, system, reload

  • Description: Specifies the maximum time interval between automatic WAL checkpoints.

    If no unit is specified when setting this parameter, the system defaults to seconds. The allowed range is 30 seconds to 1 day. The default value is 5 minutes (300 seconds or 5min). Increasing this parameter’s value will increase the time required for crash recovery.

client_connection_check_interval

  • Variable Type: Integer

  • Default Value: 0

  • Unit: ms

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the time interval between checks for client disconnection while a query is running. A value of 0 disables this check.

client_encoding

  • Variable Type: String

  • Default Value: SQL_ASCII

  • Setting Category: user

  • Description: Sets the character set encoding that SynxDB uses to communicate with the client.

client_min_messages

  • Variable Type: Enum

  • Default Value: notice

  • Value Range: debug5, debug4, debug3, debug2, debug1, log, notice, warning, error

  • Setting Category: user

  • Description: Sets the minimum message severity level that is sent to the client. Each level includes all the levels that follow it, and the later the level, the fewer messages are sent.

cluster_key_command

  • Variable Type: String

  • Default Value: ‘’

  • Setting Category: sighup

  • Description: Specifies the external command used to obtain the cluster key for cluster-level file encryption.

cluster_name

  • Variable Type: String

  • Default Value: ‘’

  • Setting Category: postmaster

  • Description: Sets the name of the cluster, which is included in the process title so that individual processes can be identified when multiple clusters are running on the same host.

compute_query_id

  • Variable Type: Enum

  • Default Value: auto

  • Value Range: auto, regress, on, off

  • Setting Category: superuser

  • Description: Controls whether SynxDB computes a query identifier for each executed statement. When set to auto, the identifier is computed unless a module that also computes query IDs is already loaded.

constraint_exclusion

  • Variable Type: Enum

  • Default Value: on

  • Value Range: partition, on, off

  • Setting Category: user

  • Description: Enables the query planner to use table constraints to skip scanning tables or partitions whose constraints guarantee that no rows can match the query.

cpu_index_tuple_cost

  • Variable Type: Real

  • Default Value: 0.005

  • Value Range: [0,1.79769e+308]

  • Setting Category: user

  • Description: Sets the planner’s estimate of the cost of processing each index entry during an index scan, used as one input when comparing candidate execution plans.

cpu_operator_cost

  • Variable Type: Real

  • Default Value: 0.0025

  • Value Range: [0,1.79769e+308]

  • Setting Category: user

  • Description: Sets the planner’s estimate of the cost of processing each operator or function call, used as one input when comparing candidate execution plans.

cpu_tuple_cost

  • Variable Type: Real

  • Default Value: 0.01

  • Value Range: [0,1.79769e+308]

  • Setting Category: user

  • Description: Sets the planner’s estimate of the cost of processing each tuple (row) during query execution, used as one input when comparing candidate execution plans.

create_restartpoint_on_ckpt_record_replay

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: sighup

  • Description: Controls whether a mirror creates a restartpoint immediately after replaying a checkpoint record, rather than waiting for the next scheduled restartpoint.

cursor_tuple_fraction

  • Variable Type: Real

  • Default Value: 1

  • Value Range: [0,1]

  • Setting Category: user

  • Description: Sets the planner’s estimate of the fraction of a cursor’s rows that will actually be retrieved, which the planner uses to choose a plan that favors fast startup over minimizing total execution cost when only a subset of rows is expected to be fetched.

data_checksums

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: internal

  • Description: Shows whether data checksums are enabled for the current cluster. This is a read-only value determined when the cluster was initialized and cannot be changed afterward.

data_directory

  • Variable Type: String

  • Default Value: ‘’

  • Setting Category: postmaster

  • Description: Sets the file system directory where the server stores its data.

data_directory_mode

  • Variable Type: Integer

  • Default Value: 448

  • Value Range: [0,511]

  • Setting Category: internal

  • Description: Shows the file permission mode of the data directory. The value is a numeric mode specification in the form accepted by the chmod and umask system calls; to use the customary octal format, the number must start with a leading 0.

data_sync_retry

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: postmaster

  • Description: Controls whether the server keeps running after a failure occurs while syncing data files to disk.

datalake.agent_server_url

  • Variable Type: String

  • Default Value: http://localhost:3888

  • Setting Category: user

  • Description: Specifies the URL of the agent server used for datalake catalog operations, such as Iceberg catalog access.

datalake.disable_cache_file

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the segments cache the data files they read from object storage or HDFS on their local disks. Off (the default) enables the cache; on disables it. The setting covers every lake read in the session, both datalake_fdw external tables and Iceberg tables. A datalake_fdw external table created with enablecache 'true' keeps caching even when this parameter is on.

datalake.disable_filter_pushdown

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: When set to on, disables predicate pushdown for datalake_fdw external tables and Iceberg tables. With pushdown disabled, the scan returns all rows and filters are evaluated in upper plan nodes. Use this to compare query behavior with and without pushdown.

datalake.enable_file_meta_cache

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the ORC tail and the Parquet footer are cached in Gopher. When turned on, a later open of the same file reads that metadata from the cache instead of going back to the object storage or HDFS. The parameter covers only ORC and Parquet foreign tables created through datalake_fdw; Iceberg tables, Hudi tables, and CSV or text foreign tables are unaffected. datalake.file_meta_max_size caps the cached metadata of a single file. The metadata cache takes effect only while the data file cache is on.

datalake.enable_get_block_location

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether to enable HDFS block location retrieval during directory listing operations. When set to on, the system retrieves block location information from HDFS during directory listing, enabling HDFS-aware query planning for data locality optimization. This can improve performance for datalake workloads by allowing the query planner to consider data locality when assigning tasks to segments. This parameter only affects HDFS directory listing operations and has no effect on other storage types.

datalake.enable_iceberg_analyze_sampling

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether ANALYZE collects per-column statistics for Iceberg tables by sampling table data. When turned off, ANALYZE only refreshes pg_class.reltuples and pg_class.relpages from Iceberg table metadata, without sampling column values.

datalake.enable_iceberg_fragment_cache

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether to cache Iceberg scan fragments (data file split metadata) across queries. Caching reduces metadata lookup overhead for repeated scans of the same Iceberg table. Set to off to bypass the cache for diagnostic purposes.

datalake.enable_list_in_master

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether directory listing operations against HDFS are executed only on the coordinator node. This parameter applies only to HDFS list-directory operations.

datalake.enable_set_hdfs_user

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the user used to write to HDFS is determined based on the configured user mapping.

datalake.external_table_ignore_hidden_file

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether datalake foreign tables skip hidden files and directories when reading data.

datalake.external_table_limit_segment_num

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Limits the number of segments used to execute datalake foreign table access. A value of 0 means no limit is applied.

datalake.external_table_new_text

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether datalake foreign tables use the newer text-parsing logic when reading text-format data. The newer logic splits a large file into blocks and reads them in parallel; datalake.external_table_text_block_size sets the block size.

datalake.external_table_text_block_size

  • Variable Type: Integer

  • Default Value: 32MB

  • Value Range: [64kB,1GB]

  • Setting Category: user

  • Description: Sets the block size that the newer text-parsing logic uses to split a large file once datalake.external_table_new_text is on. The value must exceed the longest single record in the file. Otherwise the read stops with the error External Error, lineRecordReader in file <path> consumed <bytes> bytes more than max consume bytes <block size>.

datalake.file_meta_max_size

  • Variable Type: Integer

  • Default Value: 512kB

  • Value Range: [64kB,2097151kB]

  • Setting Category: user

  • Description: Caps the cached metadata of a single file once datalake.enable_file_meta_cache is on. A file whose metadata exceeds the cap stays out of the cache and is read again on every open, with no effect on query results. ORC metadata grows with the number of stripes and columns, so a table with many columns can exceed the default. For Parquet, the cached range is always the last 64 kB of the file, so a value below 64 kB would make Parquet files uncacheable. The Gopher server applies its own cap on a single metadata blob (1 MB by default), and raising this parameter above the server cap does not bring larger files into the cache.

datalake.hudi_log_merger_threshold

  • Variable Type: Integer

  • Default Value: 512

  • Value Range: [128,10240]

  • Setting Category: user

  • Description: Sets the log size threshold, in MB, used to trigger merging of Hudi log records.

datalake.hudi_log_scale_factor

  • Variable Type: Real

  • Default Value: 1.3

  • Value Range: [1,10]

  • Setting Category: user

  • Description: Sets the scaling factor used when calculating the size of temporary files created while processing Hudi log records.

datalake.iceberg_analyze_snap_unique_ndv

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Keeps ANALYZE recording an almost-unique column of an Iceberg table as unique after datalake.iceberg_analyze_statistics_target raises the statistics target. Turn it off to record the estimate that the larger sample produced instead. The parameter has no effect on a table small enough for the sample to cover every row.

datalake.iceberg_analyze_statistics_target

  • Variable Type: Integer

  • Default Value: 1000

  • Value Range: [0, 10000]

  • Setting Category: user

  • Description: The minimum statistics target that ANALYZE uses when every table named in the statement is an Iceberg table. Because sampling an Iceberg table reads all of its rows anyway, a larger target stabilizes the estimated number of distinct values for high-cardinality columns at little extra cost.

    The effective target is the larger of this parameter and default_statistics_target, so raising default_statistics_target for the session still takes precedence. Set this parameter to 0 to always honor default_statistics_target. A statement that also names a non-Iceberg table, and a database-wide ANALYZE, both keep standard default_statistics_target semantics.

datalake.iceberg_autovacuum

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: sighup

  • Description: Enables background autovacuum for Iceberg tables. When enabled, a background worker periodically scans Iceberg tables and triggers compaction based on file accumulation thresholds. Set this parameter through ALTER SYSTEM and reload the configuration with pg_reload_conf() to take effect.

datalake.iceberg_autovacuum_naptime

  • Variable Type: Integer

  • Default Value: 600

  • Unit: s

  • Setting Category: sighup

  • Description: The interval (in seconds) at which the Iceberg autovacuum worker wakes up to inspect tables.

datalake.iceberg_enable_balanced_scan

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls how SynxDB distributes the scan tasks of an Iceberg table across segments. When enabled, SynxDB assigns tasks by greedy size-based bin-packing, so that each segment scans a similar number of bytes. When disabled, it assigns tasks round-robin by combined-task index. Balanced assignment matters most when data file sizes vary widely, because it prevents one segment from slowing down the entire scan.

datalake.iceberg_enable_batch_read

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the Parquet reader decodes and converts whole columns in batches. Batch reading amortizes the cost of per-value dispatch and of decimal-to-numeric conversion. Turn this parameter off to fall back to the per-value read path.

datalake.iceberg_enable_predicate_pushdown

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether an Iceberg table scan uses predicate pushdown.

datalake.iceberg_log_autovacuum_min_duration

  • Variable Type: Integer

  • Default Value: 600000

  • Unit: ms

  • Setting Category: sighup

  • Description: Logs autovacuum runs that exceed this duration in milliseconds. Set to -1 to disable logging, or 0 to log every autovacuum run.

datalake.iceberg_max_compactions_per_vacuum

  • Variable Type: Integer

  • Default Value: 100

  • Setting Category: superuser

  • Description: The maximum number of compaction operations performed within a single VACUUM on an Iceberg table.

datalake.iceberg_max_file_removals_per_vacuum

  • Variable Type: Integer

  • Default Value: 100000

  • Setting Category: superuser

  • Description: The maximum number of orphan or expired files that the background deletion queue removes per VACUUM invocation.

datalake.iceberg_max_snapshot_age

  • Variable Type: Integer

  • Default Value: 432000

  • Unit: s

  • Setting Category: superuser

  • Description: The maximum retention age for Iceberg snapshots, in seconds. Snapshots older than this value are eligible for cleanup by the background deletion queue. The default value is 5 days.

datalake.iceberg_postion_deletes_threshold

  • Variable Type: Integer

  • Default Value: 100000

  • Value Range: [100000, 10000000]

  • Setting Category: user

  • Description: The maximum number of position-delete records accumulated per Iceberg data file before compaction is triggered. Lowering this value triggers compaction sooner; raising it defers compaction until more deletes accumulate.

datalake.iceberg_vacuum_compact_min_input_files

  • Variable Type: Integer

  • Default Value: 5

  • Setting Category: user

  • Description: The minimum number of small data files required before VACUUM merges them into a larger file. Below this threshold, no compaction is performed.

datalake.iceberg_vacuum_rewrite_target_file_size_mb

  • Variable Type: Integer

  • Default Value: 512

  • Unit: MB

  • Setting Category: user

  • Description: The target size, in megabytes, of files produced by Iceberg VACUUM compaction.

datalake.skip_create_polaris_catalog

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether SynxDB skips creating a Polaris catalog when working with the datalake feature.

datalake_fdw.deletion_queue_batch_size

  • Variable Type: Integer

  • Default Value: 100

  • Value Range: [1,10000]

  • Setting Category: sighup

  • Description: Sets the maximum number of deletion queue entries that the consumer processes in a single autovacuum cycle.

datalake_fdw.deletion_queue_enabled

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: sighup

  • Description: Controls whether the autovacuum-driven Iceberg deletion queue consumer is enabled. When you drop an Iceberg table, SynxDB records the paths of the data and metadata files to clean up in the deletion queue pg_ext_aux.pg_iceberg_deletion_queue, and the consumer then removes those files in the background. When this parameter is off, SynxDB still records the entries, and the files stay in place until you enable the consumer again.

datalake_fdw.deletion_queue_max_retry

  • Variable Type: Integer

  • Default Value: 5

  • Value Range: [1,100]

  • Setting Category: sighup

  • Description: Sets the number of times that the consumer retries a failed deletion queue entry. Each failed deletion increments the retry count of the entry. Once the count reaches this value, the consumer moves the entry to pg_ext_aux.pg_iceberg_deletion_failed and stops retrying it.

datalake_fdw.deletion_queue_min_interval

  • Variable Type: Integer

  • Default Value: 60

  • Unit: s

  • Value Range: [1,86400]

  • Setting Category: sighup

  • Description: Sets the minimum interval, in seconds, between two runs of the deletion queue consumer within the same autovacuum worker process.

datalake_proxy.dlagent_memory_limit

  • Variable Type: Integer

  • Default Value: 2048

  • Unit: MB

  • Value Range: [512,2097151]

  • Setting Category: sighup

  • Description: Sets the maximum amount of memory that the dlagent process of the datalake proxy can use. Increase this value if the dlagent worker handles large or concurrent data lake access requests and runs out of memory.

datalake_proxy.register_datalake_proxy

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: postmaster

  • Description: Controls whether SynxDB starts the datalake proxy background worker at server startup. Disabling this parameter prevents the datalake proxy from being registered, so features that rely on it for data lake access become unavailable.

DateStyle

  • Variable Type: String

  • Default Value: ISO, MDY

  • Setting Category: user

  • Description: Sets the display format used for date and time values returned by SynxDB, and also determines how ambiguous date input is interpreted.

db_user_namespace

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: sighup

  • Description: Enables per-database user names, allowing the same role name to be defined differently in different databases. This is a legacy compatibility feature and is not recommended for general use.

deadlock_timeout

  • Variable Type: Integer

  • Default Value: 1000

  • Unit: ms

  • Value Range: [1,2147483647]

  • Setting Category: superuser

  • Description: Sets how long a session waits on a lock before checking whether a deadlock condition exists. A lower value detects deadlocks faster but increases the overhead of deadlock checking, while a higher value reduces that overhead at the cost of slower detection.

debug_assertions

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: internal

  • Description: Shows whether the running server was built with assertion checks enabled. This is a read-only, build-time indicator and cannot be changed at runtime.

debug_discard_caches

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,0]

  • Setting Category: superuser

  • Description: Aggressively discards system caches for debugging purposes, helping to surface bugs that depend on stale cache state. This parameter is intended for developers testing cache invalidation logic and is not useful in production deployments.

debug_pretty_print

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether parse and plan tree displays produced for debugging are indented for readability. Turning this off produces a more compact but harder-to-read output.

debug_print_aggref_in_explain

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether EXPLAIN output includes the internal aggregate and transition function reference numbers (aggno/aggtransno) for aggregate expressions. This is primarily useful for debugging aggregate execution.

debug_print_ivm

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the execution steps of incremental materialized view maintenance are logged to the server log. This is useful for diagnosing how incremental refresh is being carried out.

debug_print_parse

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether each query’s parse tree is logged to the server log. This is intended for debugging the parser and can generate a large volume of log output.

debug_print_plan

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether each query’s execution plan is logged to the server log. This is intended for debugging the planner and can generate a large volume of log output.

debug_print_prelim_plan

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the preliminary execution plan, generated before final plan post-processing, is printed to the server log. This is useful for debugging how the planner arrives at the final plan.

debug_print_rewritten

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether each query’s rewritten parse tree (after rule rewriting, such as view expansion) is logged to the server log. This is intended for debugging the query rewriter.

debug_print_slice_table

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the slice table, which describes how a query plan is divided across execution slices in a distributed plan, is printed to the server log. This is useful for debugging plan slicing and parallel execution.

default_index_access_method

  • Variable Type: String

  • Default Value: btree

  • Setting Category: user

  • Description: Sets the default index access method used when creating an index without explicitly specifying one via USING. SynxDB uses this setting whenever a CREATE INDEX statement omits the access method clause.

default_statistics_target

  • Variable Type: Integer

  • Default Value: 100

  • Value Range: [1,10000]

  • Setting Category: user

  • Description: Sets the default statistics target used by ANALYZE for table columns. This applies to columns that have not had a column-specific target set via ALTER TABLE ... SET STATISTICS.

default_table_access_method

  • Variable Type: String

  • Default Value: heap

  • Setting Category: user

  • Description: Sets the default table access method used when creating new tables in SynxDB that do not explicitly specify one.

default_tablespace

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: user

  • Description: Sets the default tablespace in which to create tables and indexes when no tablespace is explicitly specified. An empty string means the database’s default tablespace is used.

default_text_search_config

  • Variable Type: String

  • Default Value: pg_catalog.simple

  • Setting Category: user

  • Description: Sets the default text search configuration used by text search functions when no configuration is explicitly specified.

default_toast_compression

  • Variable Type: Enum

  • Default Value: pglz

  • Value Range: pglz, lz4

  • Setting Category: user

  • Description: Sets the default compression method used for compressible values stored out-of-line (TOASTed) when a column does not specify its own compression method.

default_transaction_deferrable

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Sets the default deferrable status for new transactions that are both SERIALIZABLE and READ ONLY, controlling whether such transactions might be delayed before acquiring a snapshot.

default_transaction_isolation

  • Variable Type: Enum

  • Default Value: read committed

  • Value Range: serializable, repeatable read, read committed, read uncommitted

  • Setting Category: user

  • Description: Sets the isolation level used by each new transaction that does not explicitly set its own isolation level.

default_transaction_read_only

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Sets the default read-only status of new transactions that do not explicitly specify a read-only mode.

dynamic_library_path

  • Variable Type: String

  • Default Value: $libdir

  • Setting Category: superuser

  • Description: Sets the search path used to locate dynamically loadable modules. If a module name to be opened does not include a directory component (that is, it contains no slash), the system searches this path for the specified file.

dynamic_shared_memory_type

  • Variable Type: Enum

  • Default Value: posix

  • Value Range: posix, sysv, mmap

  • Setting Category: postmaster

  • Description: Selects the implementation used for dynamic shared memory allocated by the server.

effective_cache_size

  • Variable Type: Integer

  • Default Value: 524288

  • Unit: 32kB

  • Value Range: [1,2147483647]

  • Setting Category: user

  • Description: Sets the query planner’s assumption about the effective size of the disk cache available to a single query, that is, the combined size of the kernel cache and shared buffers used for data files. This value is measured in disk pages, normally 8 kB each.

effective_io_concurrency

  • Variable Type: Integer

  • Default Value: 1

  • Value Range: [0,1000]

  • Setting Category: user

  • Description: Sets the number of concurrent disk I/O requests that the disk subsystem can handle efficiently, which the planner uses to size prefetching for operations such as bitmap heap scans.

enable_answer_query_using_materialized_views

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the query optimizer in SynxDB can rewrite a query to be answered using a matching materialized view instead of scanning the underlying base tables.

enable_async_append

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the query planner’s use of asynchronous Append plan nodes is enabled, allowing certain Append child plans (such as those involving foreign scans) to be executed concurrently.

enable_bitmapscan

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the query planner’s use of bitmap-scan plan types is enabled when generating query execution plans.

enable_expr_groupby_reduction

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the optimizer removes GROUP BY expressions that can be derived from other columns already present in the GROUP BY list, simplifying the grouping plan.

enable_gathermerge

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the query planner considers plans that use a Gather Merge node to combine sorted results from parallel workers.

enable_groupagg

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the query planner considers plans that use grouping aggregation to compute aggregate results.

enable_hashagg

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the query planner considers plans that use hashed aggregation to compute aggregate results.

enable_hashjoin

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the query planner considers plans that use a hash join algorithm.

enable_incremental_sort

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the query planner considers plans that use incremental sort steps, which sort input data that is already partially sorted on a leading subset of the required sort keys.

enable_indexonlyscan

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the query planner considers plans that use index-only scans, which retrieve results directly from an index without accessing the underlying table.

enable_indexscan

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the query planner considers plans that use index scans.

enable_lock_optimization

  • Variable Type: Bool

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether to enable lock optimization for SELECT ... FOR UPDATE and similar queries. When this parameter is set to on, if the lock in the query can be optimized, the system will use tuple-level locks (Tuple-level Lock) instead of relation-level locks (Relation-level Lock), effectively improving concurrency performance.

enable_material

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the query planner considers plans that insert materialization nodes to cache intermediate results.

enable_memoize

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the query planner considers plans that use memoization to cache the results of parameterized subplans, avoiding repeated computation for previously seen parameter values.

enable_mergejoin

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the query planner considers plans that use a merge join algorithm.

enable_nestloop

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the query planner considers plans that use a nested-loop join algorithm.

enable_parallel

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether SynxDB allows the use of parallel query facilities when planning and executing queries.

enable_parallel_append

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the query planner considers plans that use parallel append, allowing the subplans of an Append node (such as those from partitioned tables or UNION ALL) to run concurrently across parallel workers.

enable_parallel_dedup_semi_join

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether SynxDB allows the use of parallel deduplication for semi-join processing during query execution.

enable_parallel_dedup_semi_reverse_join

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the query planner can use parallel dedup semi reverse join plans. When enabled, SynxDB allows this join strategy to be considered during query optimization.

enable_parallel_hash

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Enables the query planner’s use of hash join plans that employ parallel workers. Disabling this parameter prevents the planner from choosing parallel hash join strategies.

enable_parallel_semi_join

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the query planner can use parallel semi join plans. When enabled, SynxDB allows this join strategy to be considered during query optimization.

enable_partition_pruning

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Enables plan-time and execution-time partition pruning, allowing the query planner and executor to compare partition bounds against query conditions to determine which partitions must be scanned. This avoids scanning partitions that cannot contain matching rows, reducing query execution cost.

enable_partitionwise_aggregate

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Enables partitionwise aggregation and grouping, allowing the planner to perform aggregate and GROUP BY operations separately on each partition before combining the results.

enable_partitionwise_join

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Enables partitionwise join, allowing the planner to join matching partitions of two partitioned tables independently, instead of joining the full tables as a whole.

enable_password_profile

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: postmaster

  • Description: Controls whether SynxDB applies password profile security policies during password-based authentication, such as password expiration and account lockout rules.

enable_seqscan

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Enables the query planner’s use of sequential-scan plans. Disabling this parameter causes the planner to avoid sequential scans whenever another access method is possible, which is primarily useful for testing and comparing query plans.

enable_sort

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Enables the query planner’s use of explicit sort steps. Disabling this parameter causes the planner to avoid explicit sorts whenever possible, which is primarily useful for testing and comparing query plans.

enable_tidscan

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Enables the query planner’s use of TID (tuple ID) scan plans. Disabling this parameter causes the planner to avoid TID scans whenever another access method is possible.

escape_string_warning

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether SynxDB emits a warning when a backslash escape is used in an ordinary string literal, because the interpretation of such escapes might change depending on the standard_conforming_strings setting.

event_source

  • Variable Type: String

  • Default Value: PostgreSQL

  • Setting Category: postmaster

  • Description: Sets the application name used to identify SynxDB messages in the Windows event log. This parameter has no effect on platforms other than Windows.

exit_on_error

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether a session terminates immediately after any error occurs, rather than continuing to process later statements in the same transaction or session.

explain_memory_verbosity

  • Variable Type: Enum

  • Default Value: suppress

  • Value Range: suppress, summary, detail

  • Setting Category: user

  • Description: An experimental parameter that controls the level of memory account usage information shown in EXPLAIN ANALYZE output. Higher verbosity levels report more detailed memory consumption statistics for the query.

extra_float_digits

  • Variable Type: Integer

  • Default Value: 1

  • Value Range: [-15,3]

  • Setting Category: user

  • Description: Sets the number of extra digits displayed for floating-point values of type real and double precision, as well as geometric data types. A value greater than zero selects precise output mode, while a zero or negative value reduces the number of digits relative to the standard precision.

file_encryption_method

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: internal

  • Description: Shows the file encryption method used by the SynxDB cluster.

find_writer_proc_retry_time

  • Variable Type: Integer

  • Default Value: 5

  • Value Range: [1,5000]

  • Setting Category: user

  • Description: Sets the retry interval used when locating the writer process entry.

fixeddecimal.enable_optimizer

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Enables optimizer rewriting of eligible SUM/AVG aggregates on numeric(P,2) columns into faster fixeddecimal variants.

force_parallel_mode

  • Variable Type: Enum

  • Default Value: off

  • Value Range: off, on, regress

  • Setting Category: user

  • Description: Controls whether queries are forced to use the parallel query execution facilities, running with a parallel worker under parallel-mode restrictions whenever possible.

from_collapse_limit

  • Variable Type: Integer

  • Default Value: 20

  • Value Range: [1,2147483647]

  • Setting Category: user

  • Description: Sets the FROM-list size threshold beyond which subqueries are no longer collapsed into the parent query; the planner merges a subquery into the upper query only if the resulting FROM list would not exceed this many items.

geqo_seed

  • Variable Type: Real

  • Default Value: 0

  • Value Range: [0,1]

  • Setting Category: user

  • Description: Retained only for syntax compatibility with PostgreSQL; this parameter has no effect on query planning.

gin_fuzzy_search_limit

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the maximum number of rows a GIN index search is allowed to return for an exact search; a value of 0 means no limit is applied.

gin_pending_list_limit

  • Variable Type: Integer

  • Default Value: 4096

  • Unit: kB

  • Value Range: [64,2147483647]

  • Setting Category: user

  • Description: Sets the maximum size of the pending list used to buffer GIN index insertions before it is flushed into the main index structure.

gp_adjust_selectivity_for_outerjoins

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the optimizer adjusts selectivity estimates for null tests applied over the results of outer joins.

gp_appendonly_compaction_segfile_limit

  • Variable Type: Integer

  • Default Value: 10

  • Value Range: [0,127]

  • Setting Category: user

  • Description: Sets the minimum number of append-only segfiles that must be reserved for insert operations.

gp_appendonly_compaction_threshold

  • Variable Type: Integer

  • Default Value: 10

  • Value Range: [0,100]

  • Setting Category: user

  • Description: Sets the percentage threshold for the ratio of dirty (deleted) data in an append-optimized segment file above which the file is compacted during a lazy VACUUM.

gp_appendonly_insert_files

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,127]

  • Setting Category: user

  • Description: Sets the number of files into which data is inserted within one transaction for append-only tables.

    The default value 0 means that the system automatically determines the number of files. If you need to prepare AO/AOCO files in advance for parallel queries, set this parameter to an appropriate value before data insertion.

gp_appendonly_insert_files_tuples_range

  • Variable Type: Integer

  • Default Value: 100000

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the number of tuples inserted into an append-optimized table’s segment file before the insert operation switches to a different segment file within the same transaction.

gp_autostats_allow_nonowner

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Allows automatic statistics collection to run on a table even when the modifying user is not the table’s owner; when disabled, statistics are refreshed only when the table owner modifies the table.

gp_autostats_lock_wait

  • Variable Type: Bool

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether autostats automatically generated ANALYZE waits for lock acquisition.

gp_autostats_mode

  • Variable Type: Enum

  • Default Value: none

  • Value Range: none, on_change, onchange, on_no_stats

  • Setting Category: user

  • Description: Sets the mode that determines when automatic statistics collection (autostats) is triggered after data-modifying operations; the on_change mode additionally requires gp_autostats_on_change_threshold to be configured.

gp_autostats_mode_in_functions

  • Variable Type: Enum

  • Default Value: none

  • Value Range: none, on_change, onchange, on_no_stats

  • Setting Category: user

  • Description: Sets the autostats mode applied to statements executed inside procedural language functions; the on_change mode additionally requires gp_autostats_on_change_threshold to be configured.

gp_autostats_on_change_threshold

  • Variable Type: Integer

  • Default Value: 2147483647

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the number of tuples added to a table by CTAS or INSERT operations required to trigger automatic statistics collection when gp_autostats_mode is set to on_change.

gp_cached_segworkers_threshold

  • Variable Type: Integer

  • Default Value: 5

  • Value Range: [1,2147483647]

  • Setting Category: user

  • Description: Sets the maximum number of segment worker processes that SynxDB caches and reuses between statements within the same session, rather than reconnecting for each new query.

gp_command_count

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,2147483647]

  • Setting Category: internal

  • Description: Displays the number of commands sent by the client in the current session.

gp_connection_send_timeout

  • Variable Type: Integer

  • Default Value: 3600

  • Value Range: [0,2147483647]

  • Setting Category: sighup

  • Description: Sets the timeout, in seconds, for sending data to a client connection that is not responding. A value of 0 causes SynxDB to use the system default timeout instead.

gp_contentid

  • Variable Type: Integer

  • Default Value: -10000

  • Value Range: [-2147483648,2147483647]

  • Setting Category: postmaster

  • Description: Shows the content ID assigned to this server instance, identifying which segment (or the coordinator) the process belongs to within the cluster.

gp_create_table_random_default_distribution

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether a table’s default distribution policy is set to RANDOM when CREATE TABLE does not explicitly specify a distribution clause.

gp_cte_sharing

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the planner shares plan fragments among multiple references to the same common table expression (CTE) instead of generating a separate plan for each reference.

gp_dbid

  • Variable Type: Integer

  • Default Value: -10000

  • Value Range: [-2147483648,2147483647]

  • Setting Category: postmaster

  • Description: Shows the dbid assigned to this server instance, used internally by SynxDB to identify the segment or coordinator within the cluster’s catalog.

gp_debug_linger

  • Variable Type: Integer

  • Default Value: 0

  • Unit: s

  • Value Range: [0,3600]

  • Setting Category: user

  • Description: Sets the number of seconds a query dispatcher (QD) or query executor (QE) process pauses after encountering a fatal internal error, giving developers a window to attach a debugger before the process terminates.

gp_default_storage_options

  • Variable Type: String

  • Default Value: ‘’

  • Setting Category: user

  • Description: Sets the default storage options (such as blocksize, compresstype, and checksum) applied when creating append-optimized tables that do not explicitly specify these options.

gp_dispatch_keepalives_count

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,127]

  • Setting Category: postmaster

  • Description: Sets the maximum number of TCP keepalive retransmissions the query dispatcher (QD) sends to query executors (QEs) before considering the connection dead. A value of 0 causes SynxDB to use the operating system default.

gp_dispatch_keepalives_idle

  • Variable Type: Integer

  • Default Value: 0

  • Unit: s

  • Value Range: [0,32767]

  • Setting Category: postmaster

  • Description: Sets the idle time, in seconds, before the query dispatcher (QD) begins sending TCP keepalive messages to query executors (QEs). A value of 0 causes SynxDB to use the operating system default.

gp_dispatch_keepalives_interval

  • Variable Type: Integer

  • Default Value: 0

  • Unit: s

  • Value Range: [0,32767]

  • Setting Category: postmaster

  • Description: Sets the interval, in seconds, between TCP keepalive retransmissions sent from the query dispatcher (QD) to query executors (QEs). A value of 0 causes SynxDB to use the operating system default.

gp_dtx_recovery_interval

  • Variable Type: Integer

  • Default Value: 60

  • Unit: s

  • Value Range: [5,3600]

  • Setting Category: sighup

  • Description: Sets the interval, in seconds, at which the distributed transaction (DTX) recovery process periodically performs a complete check for transactions that need recovery.

gp_dtx_recovery_prepared_period

  • Variable Type: Integer

  • Default Value: 120

  • Unit: s

  • Value Range: [0,3600]

  • Setting Category: sighup

  • Description: Sets the time window, in seconds, that the distributed transaction (DTX) recovery process uses to collect prepared transactions to identify potentially orphaned ones.

gp_dynamic_partition_pruning

  • Parameter Type: Boolean

  • Default Value: on

  • Setting Category: coordinator, session, reload

  • Description: Enables execution plans that can dynamically eliminate partition scans.

gp_enable_agg_distinct

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the optimizer can use two-phase aggregation to compute a single DISTINCT-qualified aggregate.

gp_enable_agg_distinct_pruning

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the optimizer can use three-phase aggregation and join to compute DISTINCT-qualified aggregates, pruning unnecessary rows earlier in the plan.

gp_enable_agg_pushdown

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the planner pushes aggregate computation down closer to the scan level. When enabled, the optimizer can generate plans that compute aggregates earlier in the plan tree instead of after all data has been gathered.

gp_enable_ao_indexscan

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the planner can choose index scans for append-optimized tables. When disabled, the planner does not consider index scan plans for these tables.

gp_enable_direct_dispatch

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether SynxDB dispatches single-row-insert queries only to the specific segment (or mirror pair) that targets the row, instead of involving the whole cluster. This avoids unnecessary dispatch to segments that are not needed for the operation.

gp_enable_fast_sri

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the planner uses an optimized plan for single-slice single-row inserts, allowing such inserts to be executed more efficiently.

gp_enable_global_deadlock_detector

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: postmaster

  • Description: Controls whether SynxDB enables the global deadlock detector, which checks for deadlocks across the whole cluster rather than relying solely on local, per-segment deadlock detection.

gp_enable_minmax_optimization

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the planner uses index scans with a limit to implement MIN/MAX aggregate queries, which can avoid scanning the entire table when a suitable index is available.

gp_enable_multiphase_agg

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the planner considers two- or three-stage parallel aggregation plans. Enabling this allows partial aggregation to be performed before data motion, which can reduce the amount of data redistributed across segments.

gp_enable_multiphase_limit

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the planner considers two-phase LIMIT plans, allowing a partial limit to be applied on the query executors before the final limit is applied after data motion.

gp_enable_predicate_propagation

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the planner propagates predicates between expressions that are known to be equivalent, such as columns joined on equality. When enabled, a predicate applied to one expression is also applied to its equivalent counterpart; when disabled, the planner does not copy predicates in this way.

gp_enable_preunique

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the planner can perform duplicate removal in two phases. When enabled, the planner might choose to remove duplicate rows both before and after data redistribution, which can reduce the volume of data moved across segments.

gp_enable_query_metrics

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: postmaster

  • Description: Controls whether SynxDB collects query metrics for all queries, enabling the gathering of runtime execution statistics used for monitoring and diagnostics.

gp_enable_refresh_fast_path

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether REFRESH MATERIALIZED VIEW avoids performing a full refresh when possible, allowing the operation to take a faster path instead of always recomputing the view from scratch.

gp_enable_relsize_collection

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the planner collects relation size information when statistics are not present for a table. If disabled and statistics are missing, a default size value is used instead.

gp_enable_runtime_filter

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the planner enables runtime filtering, allowing filters derived during query execution (such as from a join’s build side) to be pushed down to reduce the amount of data scanned or processed.

gp_enable_runtime_filter_pushdown

  • Value Range: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether to enable the runtime filter pushdown feature. When enabled, the operator attempts to build the hash table from hash join as a bloom filter and push it down to scan nodes. This technique can filter out tuples that do not meet join conditions early during the data scanning phase, reducing data movement and compute overhead. This feature supports sequential scan and dynamic sequential scan, and can effectively improve join query performance on partitioned tables, especially with the GPORCA optimizer.

gp_enable_sort_limit

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the planner allows a LIMIT operation to be performed while sorting, so that only the first n rows required by the plan are retained during the sort, improving sort efficiency.

gp_enable_statement_trigger

  • Variable Type: Bool

  • Default Value: off

  • Setting Category: user

  • Description: Allows creation of statement-level triggers.

gp_external_enable_exec

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: postmaster

  • Description: Controls whether SynxDB allows selecting from an external table that is defined with an EXECUTE clause, letting the database run an OS command or script to produce the external data.

gp_external_enable_filter_pushdown

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether SynxDB passes query constraints (such as WHERE clause conditions) down to external table providers, allowing the provider to filter rows before returning data to the database.

gp_external_max_segs

  • Variable Type: Integer

  • Default Value: 64

  • Value Range: [1,2147483647]

  • Setting Category: user

  • Description: Sets the maximum number of segments that can connect to a single gpfdist URL when reading from an external table, which helps balance the load placed on the external data source.

gp_fts_mark_mirror_down_grace_period

  • Variable Type: Integer

  • Default Value: 30

  • Unit: s

  • Value Range: [0,3600]

  • Setting Category: sighup

  • Description: Sets the grace period, in seconds, that a mirror segment is given to reconnect after a disconnection before the fault-tolerance service (FTS) probe process marks it as down in the system configuration.

gp_fts_probe_interval

  • Variable Type: Integer

  • Default Value: 60

  • Unit: s

  • Value Range: [10,3600]

  • Setting Category: sighup

  • Description: Sets the interval, in seconds, at which the fault-tolerance service (FTS) probe process starts a new, complete probe of all segments to check their health status.

gp_fts_probe_retries

  • Variable Type: Integer

  • Default Value: 5

  • Value Range: [0,100]

  • Setting Category: sighup

  • Description: Sets the number of times the fault-tolerance service (FTS) probe process retries probing a segment before giving up on that probe attempt.

gp_fts_probe_timeout

  • Variable Type: Integer

  • Default Value: 20

  • Unit: s

  • Value Range: [0,3600]

  • Setting Category: sighup

  • Description: Sets the maximum time, in seconds, allowed for the fault-tolerance service (FTS) probe process to complete probing a single segment.

gp_fts_replication_attempt_count

  • Variable Type: Integer

  • Default Value: 10

  • Value Range: [0,100]

  • Setting Category: sighup

  • Description: Sets the maximum number of continuous attempts the fault-tolerance service (FTS) makes to establish the primary-mirror replication connection for a segment.

gp_global_deadlock_detector_period

  • Variable Type: Integer

  • Default Value: 120

  • Unit: s

  • Value Range: [5,2147483647]

  • Setting Category: sighup

  • Description: Sets the interval, in seconds, at which the global deadlock detector background process runs to check for deadlocks across the cluster.

gp_hashjoin_tuples_per_bucket

  • Variable Type: Integer

  • Default Value: 5

  • Value Range: [1,25]

  • Setting Category: user

  • Description: Sets the target density (average tuples per bucket) of the hash table built for hash join execution. A smaller value produces a larger hash table, which can improve hash join performance at the cost of additional memory.

gp_initial_bad_row_limit

  • Variable Type: Integer

  • Default Value: 1000

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the number of bad rows encountered at the start of data loading beyond which SynxDB stops processing, helping to fail fast when the input data is malformed.

gp_instrument_shmem_size

  • Variable Type: Integer

  • Default Value: 5120

  • Unit: kB

  • Value Range: [0,131072]

  • Setting Category: postmaster

  • Description: Sets the size of the shared memory segment allocated for query execution instrumentation, which stores runtime statistics used for monitoring and diagnostics.

gp_interconnect_address_type

  • Variable Type: Enum

  • Default Value: unicast

  • Value Range: wildcard, unicast

  • Setting Category: backend

  • Description: Sets the network address type used by the interconnect for inter-segment communication, either binding to a specific unicast address or listening on all available (wildcard) addresses.

gp_interconnect_cache_future_packets

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the UDP interconnect caches packets that arrive ahead of the expected sequence, so they can be reused later instead of being discarded and requiring retransmission.

gp_interconnect_cursor_ic_table_size

  • Variable Type: Integer

  • Default Value: 128

  • Value Range: [128,102400]

  • Setting Category: user

  • Description: Sets the size of the cursor history table used by the UDP interconnect. You can increase this value if a user-defined function containing many concurrent cursor queries appears to hang.

gp_interconnect_debug_retry_interval

  • Variable Type: Integer

  • Default Value: 10

  • Value Range: [1,4096]

  • Setting Category: user

  • Description: Controls how often, expressed as a number of retries, the UDP interconnect logs a debug message while retransmitting a packet. A smaller value produces more frequent debug logging during retries.

gp_interconnect_default_rtt

  • Variable Type: Integer

  • Default Value: 20

  • Unit: ms

  • Value Range: [1,1000]

  • Setting Category: user

  • Description: Sets the default round-trip time estimate that the UDP interconnect uses before it has measured actual network latency, which affects its retransmission and timeout calculations.

gp_interconnect_fc_method

  • Variable Type: Enum

  • Default Value: loss

  • Value Range: loss, capacity, loss_advance, loss_timer

  • Setting Category: user

  • Description: Selects the flow control method used by the UDP interconnect. loss bases flow control on packet loss detection, while capacity bases it on estimated network capacity; loss_advance and loss_timer are additional loss-based variants.

gp_interconnect_mem_size

  • Variable Type: Integer

  • Default Value: 10

  • Value Range: [1,1024]

  • Setting Category: user

  • Description: Sets the maximum size, in MB, of the send/receive queue memory that the UDP interconnect allocates for all connections on a segment.

gp_interconnect_min_retries_before_timeout

  • Variable Type: Integer

  • Default Value: 100

  • Value Range: [1,4096]

  • Setting Category: user

  • Description: Sets the minimum number of retransmission retries the interconnect must attempt before it reports a transmit timeout.

gp_interconnect_min_rto

  • Variable Type: Integer

  • Default Value: 20

  • Unit: ms

  • Value Range: [1,1000]

  • Setting Category: user

  • Description: Sets the minimum retransmission timeout (RTO), in milliseconds, that the UDP interconnect uses when deciding to resend an unacknowledged packet.

gp_interconnect_queue_depth

  • Variable Type: Integer

  • Default Value: 4

  • Value Range: [1,4096]

  • Setting Category: user

  • Description: Sets the maximum size of the receive queue for each connection in the UDP interconnect, that is, how many packets can be buffered on the receiving side per connection.

gp_interconnect_setup_timeout

  • Variable Type: Integer

  • Default Value: 7200

  • Unit: s

  • Value Range: [0,7200]

  • Setting Category: user

  • Description: Sets the timeout, in seconds, for setting up the interconnect communication fabric when a query starts; if setup does not complete within this time, SynxDB reports a timeout error.

gp_interconnect_snd_queue_depth

  • Variable Type: Integer

  • Default Value: 2

  • Value Range: [1,4096]

  • Setting Category: user

  • Description: Sets the maximum size of the send queue for each connection in the UDP interconnect, that is, how many unacknowledged packets can be buffered on the sending side per connection.

gp_interconnect_tcp_listener_backlog

  • Variable Type: Integer

  • Default Value: 256

  • Value Range: [0,65535]

  • Setting Category: user

  • Description: Sets the size of the listening queue for each TCP interconnect socket. Tune this value together with the kernel parameters net.core.somaxconn and net.ipv4.tcp_max_syn_backlog to improve network performance.

gp_interconnect_timer_checking_period

  • Variable Type: Integer

  • Default Value: 20

  • Unit: ms

  • Value Range: [1,100]

  • Setting Category: user

  • Description: Sets the interval, in milliseconds, at which the UDP interconnect checks its internal retransmission timer.

gp_interconnect_timer_period

  • Variable Type: Integer

  • Default Value: 5

  • Unit: ms

  • Value Range: [1,100]

  • Setting Category: user

  • Description: Sets the base timer period, in milliseconds, that the UDP interconnect uses to drive its periodic timing operations such as retransmission checks.

gp_interconnect_transmit_timeout

  • Variable Type: Integer

  • Default Value: 3600

  • Unit: s

  • Value Range: [1,7200]

  • Setting Category: user

  • Description: Sets the timeout, in seconds, that the interconnect allows for transmitting a packet; if a packet cannot be successfully transmitted within this period, the interconnect reports a timeout.

gp_interconnect_type

  • Variable Type: String

  • Default Value: udpifc

  • Setting Category: backend

  • Description: Selects the protocol used for inter-node communication in SynxDB. Valid values are tcp, udpifc (UDP-based interconnect with flow control), and proxy.

gp_log_format

  • Variable Type: Enum

  • Default Value: csv

  • Value Range: text, csv

  • Setting Category: postmaster

  • Description: Sets the format used for server log files, either plain text or CSV.

gp_log_suboverflow_statement

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Controls whether SynxDB logs statements that cause a subtransaction overflow, which can help diagnose excessive use of subtransactions.

gp_max_local_distributed_cache

  • Variable Type: Integer

  • Default Value: 1024

  • Value Range: [0,2147483647]

  • Setting Category: postmaster

  • Description: Sets the number of local-distributed transactions that a backend caches to optimize visibility processing when checking transaction status.

gp_max_packet_size

  • Variable Type: Integer

  • Default Value: 8192

  • Value Range: [512,65507]

  • Setting Category: backend

  • Description: Sets the maximum packet size used by the interconnect, the internal network layer that moves data between SynxDB segment processes.

gp_max_partition_level

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,2147483647]

  • Setting Category: superuser

  • Description: Sets the maximum allowed partition level when creating partitioned tables using classic syntax.

gp_max_plan_size

  • Variable Type: Integer

  • Default Value: 0

  • Unit: kB

  • Value Range: [0,2147483647]

  • Setting Category: superuser

  • Description: Sets the maximum size of a query plan that can be dispatched to segments; a value of 0 means no size limit is enforced.

gp_max_slices

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the maximum number of slices allowed for a single query; a value of 0 means no limit is enforced.

gp_motion_cost_per_row

  • Variable Type: Real

  • Default Value: 0

  • Value Range: [0,1.79769e+308]

  • Setting Category: user

  • Description: Sets the planner’s cost estimate for moving a single row between worker processes across the interconnect. When set to a value greater than 0, the planner uses this value directly for Motion operator cost estimation instead of the default calculation based on cpu_tuple_cost.

gp_print_create_gang_time

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether SynxDB prints information about the time spent creating a gang of worker processes for a query.

gp_random_insert_segments

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Limits the number of segments used when inserting data into a randomly distributed table; a value of 0 means all segments are used.

gp_reject_percent_threshold

  • Variable Type: Integer

  • Default Value: 300

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the number of rows that must be processed before the reject-limit percentage (used for SEGMENT REJECT LIMIT error handling in external table loads) begins to be calculated.

gp_reraise_signal

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: superuser

  • Description: Controls whether SynxDB attempts to dump core when a serious problem, such as a segmentation fault, occurs.

gp_resgroup_memory_policy

  • Variable Type: Enum

  • Default Value: eager_free

  • Value Range: none, auto, eager_free

  • Setting Category: superuser

  • Description: Sets the policy that resource groups use to allocate memory among concurrently running queries. Valid values are auto and eager_free.

gp_resource_group_bypass

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: When set to true, queries in the current session are not limited by resource group constraints.

gp_resource_group_bypass_catalog_query

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether queries that only access system catalog tables bypass resource group limits.

gp_resource_group_bypass_direct_dispatch

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether queries with a direct dispatch plan, which target a single segment, bypass resource group limits.

gp_resource_group_cgroup_parent

  • Variable Type: String

  • Default Value: gpdb.service

  • Setting Category: superuser, postmaster

  • Description: Sets the root directory name for the SynxDB database cgroup hierarchy. This parameter is effective only when cgroup v2 is used (that is when gp_resource_manager is set to group-v2). It allows users to customize the cgroup root directory created under /sys/fs/cgroup/ to accommodate different operating system environments. For example, in a systemd environment, a directory name ending with .service (such as the default gpdb.service) might be necessary, while in other environments, a name like gpdb might be preferred. The database must be restarted for this change to take effect.

gp_resource_group_cpu_limit

  • Variable Type: Real

  • Default Value: 0.9

  • Value Range: [0.1,1]

  • Setting Category: postmaster

  • Description: Sets the maximum percentage of the host’s total CPU resources that can be assigned collectively to all resource groups in the cluster.

gp_resource_group_cpu_priority

  • Variable Type: Integer

  • Default Value: 10

  • Value Range: [1,50]

  • Setting Category: postmaster

  • Description: Sets the CPU scheduling priority for postgres backend processes when resource group-based workload management is enabled.

gp_resource_group_move_timeout

  • Variable Type: Integer

  • Default Value: 30000

  • Unit: ms

  • Value Range: [10,2147483647]

  • Setting Category: user

  • Description: Sets the maximum time to wait while moving a queued process into another resource group before giving up on the move.

gp_resource_group_queuing_timeout

  • Variable Type: Integer

  • Default Value: 0

  • Unit: ms

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the maximum time a transaction can wait while queuing on a resource group before it gives up; a value of 0 disables the timeout.

gp_resource_manager

  • Value Range: none, group, group-v2, queue

  • Default Value: queue

  • Setting Category: local, system, restart

  • Description: Specifies the resource management scheme currently enabled in the SynxDB database cluster.

    • none: No resource manager is used.

    • group: Uses resource groups and enables resource group behavior based on Linux cgroup v1 functionality.

    • group-v2: Uses resource groups and enables resource group behavior based on Linux cgroup v2 functionality.

    • queue: Uses resource queues for resource management (default).

gp_resqueue_memory_policy

  • Variable Type: Enum

  • Default Value: none

  • Value Range: none, auto, eager_free

  • Setting Category: superuser

  • Description: Controls the memory allocation policy that the resource queue-based workload manager uses for queries. auto distributes query memory based on the operators in the plan, while eager_free additionally reclaims memory from operators as soon as they finish executing; none disables this memory management.

gp_resqueue_priority

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: postmaster

  • Description: Enables priority-based CPU scheduling for queries running under resource queues.

gp_resqueue_priority_cpucores_per_segment

  • Variable Type: Real

  • Default Value: 4

  • Value Range: [0.1,512]

  • Setting Category: postmaster

  • Description: Specifies the number of processing units (CPU cores) associated with each segment, which the resource queue priority scheduler uses to compute CPU shares.

gp_resqueue_priority_sweeper_interval

  • Variable Type: Integer

  • Default Value: 1000

  • Value Range: [500,15000]

  • Setting Category: postmaster

  • Description: Sets the frequency, in milliseconds, at which the sweeper process re-evaluates and adjusts CPU shares for resource queue priority scheduling.

gp_role

  • Value Range: dispatch, execute, utility

  • Default Value: Undefined (depends on process type)

  • Setting Category: read only (automatically set in background)

  • Description: This parameter is used to identify the role of the current server process.

    • The role of the Coordinator process is dispatch, indicating it is responsible for query dispatch. The role of the Segment process is execute, indicating it is responsible for executing query plans. utility is used for special maintenance or management sessions. This parameter is automatically set by the system in the background and is mainly used to identify different types of internal worker processes.

gp_segment_connect_timeout

  • Variable Type: Integer

  • Default Value: 180

  • Unit: s

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the maximum time, in seconds, allowed for a new worker process to start or for a mirror segment to respond. A value of 0 means SynxDB waits indefinitely.

gp_segments_for_planner

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: When set to a value greater than 0, the planner uses this number of segment instances for its cost and size estimates instead of the actual segment count. A value of 0 makes the planner base its estimates on the actual number of segment instances in the cluster.

gp_server_version

  • Variable Type: String

  • Default Value: ‘2.6.0 build 143183’

  • Setting Category: internal

  • Description: Shows the full SynxDB server version string, including the build identifier.

gp_server_version_num

  • Variable Type: Integer

  • Default Value: 20100

  • Value Range: [20100,20100]

  • Setting Category: internal

  • Description: Shows the SynxDB server version encoded as an integer, for use in numeric version comparisons.

gp_session_id

  • Variable Type: Integer

  • Default Value: -1

  • Value Range: [-2147483648,2147483647]

  • Setting Category: backend

  • Description: Used to uniquely identify a session in the SynxDB cluster.

gp_set_proc_affinity

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: postmaster

  • Description: Controls whether, at postmaster startup, the system attempts to bind the postmaster process to a specific processor for CPU affinity.

gp_statistics_pullup_from_child_partition

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Enables the planner to use statistics collected on child partitions when planning queries against the parent partitioned table.

gp_statistics_use_fkeys

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Enables the planner to use statistics derived from foreign key relationships when estimating query plans.

gp_subtrans_warn_limit

  • Variable Type: Integer

  • Default Value: 16777216

  • Value Range: [0,2147483647]

  • Setting Category: postmaster

  • Description: Sets the warning threshold for the number of subtransactions within a single transaction; exceeding this limit causes SynxDB to emit a warning.

gp_udp_bufsize_k

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,32768]

  • Setting Category: backend

  • Description: Sets the receive buffer size for the UDP-based interconnect used for internal segment-to-segment communication in SynxDB. This parameter is intended for testing purposes rather than routine tuning.

gp_use_streaming_hashagg

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the Postgres query optimizer uses a streaming hash aggregate in the first phase of a multi-phase aggregation. A streaming partial hash aggregate reduces memory pressure and avoids disk spills when processing many distinct groups. This hidden parameter does not appear in gpconfig -l.

gp_vmem_idle_resource_timeout

  • Variable Type: Integer

  • Default Value: 18000

  • Unit: ms

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the length of time (in milliseconds) that a session can remain idle before its gangs on the segment databases are released to free up resources. Setting this value to 0 disables the timeout, meaning idle gangs are never automatically released.

gp_vmem_protect_limit

  • Variable Type: Integer

  • Default Value: 8192

  • Value Range: [0,1073741823]

  • Setting Category: postmaster

  • Description: Sets the virtual memory limit, in MB, used by SynxDB’s memory protection mechanism to guard against runaway memory consumption on a segment host.

gp_vmem_protect_segworker_cache_limit

  • Variable Type: Integer

  • Default Value: 500

  • Value Range: [1,1073741823]

  • Setting Category: postmaster

  • Description: Sets the maximum virtual memory limit, in MB, that a segworker process can use to remain eligible for caching and reuse rather than being terminated.

gp_workfile_compression

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether temporary work files spilled to disk during query execution are compressed.

gp_workfile_limit_files_per_query

  • Variable Type: Integer

  • Default Value: 100000

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the maximum number of work files that a single query is allowed to create per segment. When the limit is exceeded, the query is terminated; setting the value to 0 removes the limit.

gp_workfile_limit_per_query

  • Variable Type: Integer

  • Default Value: 0

  • Unit: kB

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the maximum disk space, in kilobytes, that work files for a single query are allowed to use on a segment. When the limit is exceeded, the query is terminated; the default of 0 means there is no limit.

gp_workfile_limit_per_segment

  • Variable Type: Integer

  • Default Value: 0

  • Unit: kB

  • Value Range: [0,2147483647]

  • Setting Category: postmaster

  • Description: Sets the maximum total disk space, in kilobytes, that work files can occupy on a single segment across all queries. When the limit is exceeded, the query causing the overage is terminated; the default of 0 means there is no limit.

gpfdist_retry_timeout

  • Variable Type: Integer

  • Default Value: 300

  • Unit: s

  • Value Range: [1,7200]

  • Setting Category: user

  • Description: Sets the timeout, in seconds, for writing data to a gpfdist server before the operation is retried or fails.

hash_mem_multiplier

  • Variable Type: Real

  • Default Value: 1.5

  • Value Range: [1.0, 10.0]

  • Setting Category: user

  • Description: A multiplier used to adjust memory allocation during Hash Aggregate operations. This parameter is primarily intended to optimize the performance of hash aggregation, especially when processing large-scale data or queries with a high cardinality of grouping keys. By increasing this value, more memory can be allocated to the hash table, which reduces the probability of spilling data to disk due to memory pressure, thereby improving memory utilization and query performance. Adjusting this parameter mainly affects the memory limit calculated based on work_mem or statement_mem. In most cases, it is recommended to keep the default value.

hive_sync.custom_log4j_conf

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: sighup

  • Description: Specifies a custom root path for the log4j logging configuration used by the hive sync feature. When left empty, the default logging configuration is used.

hive_sync.enable_hive_metastore_sync

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: sighup

  • Description: Controls whether the hive auto sync worker, which synchronizes metadata with the Hive metastore, is started.

hive_sync.memory_limit

  • Variable Type: Integer

  • Default Value: 2048

  • Unit: MB

  • Value Range: [512,2097151]

  • Setting Category: sighup

  • Description: Sets the maximum amount of memory, in MB, that the hive auto sync worker is allowed to use.

hive_sync.register_hive_sync

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: postmaster

  • Description: Controls whether the hive auto sync background worker is registered with SynxDB at startup.

hot_dr

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: postmaster

  • Description: Designates the current cluster as a disaster recovery (DR) cluster, allowing it to accept connections and serve queries in that role.

hot_standby

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: postmaster

  • Description: Allows read-only connections and queries to a standby server while it is still in recovery mode.

hot_standby_feedback

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: sighup

  • Description: Enables a hot standby to send feedback to the primary about the queries it is currently running, so the primary can avoid removing rows or WAL data that the standby still needs, reducing query cancellations caused by replication conflicts.

huge_page_size

  • Variable Type: Integer

  • Default Value: 0

  • Unit: kB

  • Value Range: [0,2147483647]

  • Setting Category: postmaster

  • Description: Specifies the size of the huge pages that should be requested when huge_pages is enabled. A value of 0 means the platform’s default huge page size is used.

huge_pages

  • Variable Type: Enum

  • Default Value: try

  • Value Range: off, on, try

  • Setting Category: postmaster

  • Description: Controls whether SynxDB attempts to use huge pages on Linux or Windows for its main shared memory area. Setting it to try makes the server attempt to use huge pages but fall back to the normal allocation if that fails, while on and off force the behavior and cause startup to fail if on cannot be satisfied.

iceberg_default_catalog

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: user

  • Description: The default foreign catalog used by CREATE ICEBERG TABLE when the statement omits the CATALOG clause. An empty string means no default catalog is set, and the statement must specify CATALOG explicitly. The value is validated against existing foreign catalogs; setting it to a name that does not resolve produces an error.

iceberg_default_volume

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: user

  • Description: The default foreign volume used by CREATE ICEBERG TABLE when the statement omits the VOLUME clause. An empty string means no default volume is set. The value is validated against existing foreign volumes; setting it to a name that does not resolve produces an error. All catalog types, including Polaris, require a foreign volume, so this default applies regardless of catalog type.

idle_in_transaction_session_timeout

  • Variable Type: Integer

  • Default Value: 0

  • Unit: ms

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the maximum allowed idle time between queries while a session is inside an open transaction. If a session remains idle in this state longer than the configured time, SynxDB terminates it. A value of 0 disables the timeout.

idle_session_timeout

  • Variable Type: Integer

  • Default Value: 0

  • Unit: ms

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the maximum allowed idle time between queries when a session is not inside a transaction. If a session stays idle outside a transaction longer than the configured time, SynxDB terminates it. A value of 0 disables the timeout.

ignore_checksum_failure

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Controls whether SynxDB continues processing after detecting a page checksum failure, instead of aborting the current transaction with an error. When enabled, the system still reports a warning but continues, which can lead to crashes or further data corruption; the setting only takes effect when checksums are enabled on the cluster.

ignore_invalid_pages

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: postmaster

  • Description: Controls whether recovery continues after encountering WAL records that reference invalid pages, instead of raising a PANIC-level error and aborting recovery. Enabling this only reports a warning and lets recovery proceed, but it might cause crashes, data loss, or hide underlying corruption, and it only has an effect during recovery or in standby mode.

in_hot_standby

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: internal

  • Description: Shows whether the current server is operating as a hot standby that accepts read-only queries. This is a read-only status parameter and cannot be set directly.

integer_datetimes

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: internal

  • Description: Shows whether date and time values are stored internally using 64-bit integers rather than floating-point numbers. This is a read-only status parameter determined at build time.

IntervalStyle

  • Variable Type: Enum

  • Default Value: postgres

  • Value Range: postgres, postgres_verbose, sql_standard, iso_8601

  • Setting Category: user

  • Description: Sets the display format used for interval values in SynxDB.

jit

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Allow JIT compilation.

jit_above_cost

  • Variable Type: Real

  • Default Value: 100000

  • Value Range: [-1, 1.79769e+308]

  • Setting Category: user

  • Description: Perform JIT compilation if query is more expensive. -1 disables JIT compilation.

jit_debugging_support

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser-backend

  • Description: Register JIT-compiled functions with debugger.

jit_dump_bitcode

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Write out LLVM bitcode to facilitate JIT debugging.

jit_expressions

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Allow JIT compilation of expressions.

jit_inline_above_cost

  • Variable Type: Real

  • Default Value: 500000

  • Value Range: [-1, 1.79769e+308]

  • Setting Category: user

  • Description: Perform JIT inlining if query is more expensive. -1 disables inlining.

jit_optimize_above_cost

  • Variable Type: Real

  • Default Value: 500000

  • Value Range: [-1, 1.79769e+308]

  • Setting Category: user

  • Description: Optimize JIT-compiled functions if query is more expensive. -1 disables optimization.

jit_profiling_support

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser-backend

  • Description: Register JIT-compiled functions with perf profiler.

jit_provider

  • Variable Type: String

  • Default Value: llvmjit

  • Setting Category: postmaster

  • Description: JIT provider to use.

jit_tuple_deforming

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Allow JIT compilation of tuple deforming.

join_collapse_limit

  • Variable Type: Integer

  • Default Value: 13

  • Value Range: [1,2147483647]

  • Setting Category: user

  • Description: Sets the FROM-list size beyond which explicit JOIN constructs are no longer flattened into a single list of FROM items during planning. The planner flattens explicit joins whenever the resulting FROM-item list would not exceed this many items, which can influence how many join orderings the optimizer considers.

krb_caseins_users

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: sighup

  • Description: Determines whether Kerberos and GSSAPI user principal names are matched case-insensitively against database role names during authentication.

krb_server_keyfile

  • Variable Type: String

  • Default Value: FILE:/workspace/dist/database/etc/postgresql/krb5.keytab

  • Setting Category: sighup

  • Description: Sets the location of the Kerberos server key file.

lc_collate

  • Variable Type: String

  • Default Value: C

  • Setting Category: internal

  • Description: Shows the locale used for collation order (sorting of text values) in the current database. This value is fixed when the database is created and cannot be changed afterward.

lc_ctype

  • Variable Type: String

  • Default Value: C

  • Setting Category: internal

  • Description: Shows the locale used for character classification and case conversion (such as determining which characters are letters and how to convert case) in the current database. This value is fixed when the database is created and cannot be changed afterward.

lc_messages

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: superuser

  • Description: Sets the language in which server messages are displayed. An empty value causes the server to use the locale inherited from its environment.

lc_monetary

  • Variable Type: String

  • Default Value: C

  • Setting Category: user

  • Description: Sets the locale used for formatting monetary amounts, such as the currency symbol, decimal separator, and grouping of digits, for functions and operators that display monetary values.

lc_numeric

  • Variable Type: String

  • Default Value: C

  • Setting Category: user

  • Description: Sets the locale that SynxDB uses to format numeric values, such as the decimal point character and digit grouping, for display purposes.

lc_time

  • Variable Type: String

  • Default Value: C

  • Setting Category: user

  • Description: Sets the locale that SynxDB uses to format date and time values for display purposes.

listen_addresses

  • Variable Type: String

  • Default Value: localhost

  • Setting Category: postmaster

  • Description: Specifies the host names or IP addresses on which the server listens for client connections. You can specify multiple addresses as a comma-separated list. * makes the server listen on all available network interfaces, whereas localhost accepts connections only from the local machine.

lo_compat_privileges

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Enables a backward-compatible mode that skips privilege checks when reading or modifying large objects, matching the behavior of PostgreSQL releases before 9.0.

local_preload_libraries

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: user

  • Description: Specifies a comma-separated list of shared libraries that non-superuser sessions are allowed to preload into their own backend process at connection start.

lock_timeout

  • Variable Type: Integer

  • Default Value: 0

  • Unit: ms

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the maximum time a statement will wait while trying to acquire a lock on a table, index, or other database object before the statement is aborted. A value of 0 disables the timeout.

log_autostats

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Controls whether SynxDB logs details about ANALYZE operations that are automatically triggered as part of statistics collection.

log_autovacuum_min_duration

  • Variable Type: Integer

  • Default Value: -1

  • Unit: ms

  • Value Range: [-1,2147483647]

  • Setting Category: sighup

  • Description: Sets the minimum execution time above which autovacuum actions are written to the server log. A value of 0 logs all autovacuum actions, and the default value of -1 disables this logging.

log_checkpoints

  • Value Range: Boolean

  • Default Value: on

  • Setting Category: local, system, reload

  • Description: Writes checkpoint and restartpoint information to the server log. The log messages include statistics such as the number of buffers written and the time taken to write them.

log_connections

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser-backend

  • Description: Controls whether each successful connection to the server is recorded in the server log.

log_disconnections

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser-backend

  • Description: Controls whether the end of each session is recorded in the server log, including the duration of the session.

log_dispatch_stats

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Controls whether SynxDB writes performance statistics for the query dispatcher to the server log.

log_duration

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Controls whether the duration of every completed SQL statement is recorded in the server log.

log_error_verbosity

  • Variable Type: Enum

  • Default Value: default

  • Value Range: terse, default, verbose

  • Setting Category: superuser

  • Description: Controls the amount of detail included in messages logged by the server, ranging from terse (least detail) to verbose (most detail, including source code location).

log_executor_stats

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Controls whether performance statistics collected from the query executor are written to the server log.

log_file_mode

  • Variable Type: Integer

  • Default Value: 384

  • Value Range: [0,511]

  • Setting Category: sighup

  • Description: Sets the file permission mode applied to log files created by the logging collector. The value is a numeric mode in the form accepted by the chmod and umask system calls; to express it in the customary octal notation, the number must start with a leading 0.

log_hostname

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: sighup

  • Description: Controls whether connection log entries record the connecting host’s name instead of only its IP address. Enabling this option might introduce a noticeable performance penalty depending on the host name resolution setup.

log_lock_waits

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Controls whether SynxDB writes a log message whenever a session waits longer than deadlock_timeout to acquire a lock.

log_min_duration_sample

  • Variable Type: Integer

  • Default Value: -1

  • Unit: ms

  • Value Range: [-1,2147483647]

  • Setting Category: superuser

  • Description: Sets the minimum execution time above which a sample of statements is logged, with the sampling fraction controlled by log_statement_sample_rate. A value of 0 samples all queries, while -1 disables this feature.

log_min_duration_statement

  • Variable Type: Integer

  • Default Value: -1

  • Unit: ms

  • Value Range: [-1,2147483647]

  • Setting Category: superuser

  • Description: Sets the minimum execution time above which all statements are logged. A value of 0 logs every query, while -1 disables this feature.

log_min_error_statement

  • Variable Type: Enum

  • Default Value: error

  • Value Range: debug5, debug4, debug3, debug2, debug1, info, notice, warning, error, log, fatal, panic

  • Setting Category: superuser

  • Description: Causes the SQL statement that generated an error at or above the specified severity level to be logged along with the error message. Each level includes all the levels that follow it, so a stricter (later) level results in fewer statements being logged.

log_min_messages

  • Variable Type: Enum

  • Default Value: warning

  • Value Range: debug5, debug4, debug3, debug2, debug1, info, notice, warning, error, log, fatal, panic

  • Setting Category: superuser

  • Description: Sets the minimum severity level of messages that are written to the server log. Each level includes all the levels that follow it, so a stricter (later) level results in fewer messages being logged.

log_parameter_max_length

  • Variable Type: Integer

  • Default Value: -1

  • Unit: B

  • Value Range: [-1,1073741823]

  • Setting Category: superuser

  • Description: When logging statements that use bind parameters, limits the logged value of each parameter to the first N bytes. A value of -1, the default, prints parameter values in full.

log_parameter_max_length_on_error

  • Variable Type: Integer

  • Default Value: 0

  • Unit: B

  • Value Range: [-1,1073741823]

  • Setting Category: user

  • Description: When reporting an error, limits the logged value of each bind parameter to the first N bytes. A value of -1 prints parameter values in full, while the default of 0 disables inclusion of parameter values in error reports.

log_parser_stats

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Controls whether SynxDB writes performance statistics of the query parser to the server log.

log_planner_stats

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Controls whether SynxDB writes performance statistics of the query planner to the server log.

log_recovery_conflict_waits

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: sighup

  • Description: Controls whether SynxDB logs a message when a standby server has to wait longer than deadlock_timeout due to a recovery conflict.

log_replication_commands

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Controls whether SynxDB logs each replication command received from a standby or streaming replication client.

log_rotation_age

  • Variable Type: Integer

  • Default Value: 1440

  • Unit: min

  • Value Range: [0,35791394]

  • Setting Category: sighup

  • Description: Sets the maximum lifetime of an individual log file before automatic rotation to a new file occurs. Setting this to 0 disables time-driven log rotation.

log_rotation_size

  • Variable Type: Integer

  • Default Value: 1048576

  • Unit: kB

  • Value Range: [0,2097151]

  • Setting Category: sighup

  • Description: Sets the maximum size an individual log file can reach before automatic rotation to a new file occurs. Setting this to 0 disables size-driven log rotation.

log_statement

  • Variable Type: Enum

  • Default Value: none

  • Value Range: none, ddl, mod, all

  • Setting Category: superuser

  • Description: Controls which categories of SQL statements are logged: ddl logs data definition statements, mod additionally logs data-modifying statements, and all logs every statement.

log_statement_sample_rate

  • Variable Type: Real

  • Default Value: 1

  • Value Range: [0,1]

  • Setting Category: superuser

  • Description: Sets the fraction of statements exceeding log_min_duration_sample that are actually logged, expressed as a value between 0.0 (never log) and 1.0 (always log).

log_statement_stats

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Controls whether SynxDB writes cumulative performance statistics for each executed statement to the server log.

log_temp_files

  • Variable Type: Integer

  • Default Value: -1

  • Unit: kB

  • Value Range: [-1,2147483647]

  • Setting Category: superuser

  • Description: Logs the use of temporary files that are larger than the specified size (in kilobytes); setting this to 0 logs all temporary files, while the default value of -1 disables this logging.

log_timezone

  • Variable Type: String

  • Default Value: GMT

  • Setting Category: sighup

  • Description: Sets the time zone used for timestamps written in the server log, independent of the time zone used for displaying data to clients.

log_transaction_sample_rate

  • Variable Type: Real

  • Default Value: 0

  • Value Range: [0,1]

  • Setting Category: superuser

  • Description: Sets the fraction of transactions for which all statements are logged, expressed as a value between 0.0 (never log) and 1.0 (log all statements for all transactions).

log_truncate_on_rotation

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: sighup

  • Description: Controls whether an existing log file of the same name is truncated rather than appended to when log rotation creates a new log file.

logging_collector

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: postmaster

  • Description: Controls whether a subprocess is started to capture stderr output and/or CSV log output into log files.

logical_decoding_work_mem

  • Variable Type: Integer

  • Default Value: 65536

  • Unit: kB

  • Value Range: [64,2147483647]

  • Setting Category: user

  • Description: Sets the maximum amount of memory that each internal logical decoding reorder buffer can use before it spills its accumulated changes to disk.

maintenance_io_concurrency

  • Variable Type: Integer

  • Default Value: 10

  • Value Range: [0,1000]

  • Setting Category: user

  • Description: Sets the number of concurrent I/O operations that SynxDB expects can be executed at the same time during maintenance work, acting as a maintenance-specific counterpart to effective_io_concurrency.

maintenance_work_mem

  • Variable Type: Integer

  • Default Value: 65536

  • Unit: kB

  • Value Range: [1024,2147483647]

  • Setting Category: user

  • Description: Sets the maximum amount of memory used for maintenance operations, such as VACUUM and CREATE INDEX.

max_connections

  • Value Range: 10 - 262143

  • Default Value: 250 on Coordinator, 750 on Segment

  • Setting Category: local, system, restart

  • Description: The maximum number of concurrent connections allowed by the database server.

    In the SynxDB system, client connections enter only through the Coordinator instance. Segment instances should allow 3 to 10 times the number of connections as the Coordinator. When increasing this parameter’s value, the value of max_prepared_transactions must be increased accordingly.

    The larger this parameter value, the more shared memory SynxDB requires.

max_files_per_process

  • Variable Type: Integer

  • Default Value: 1000

  • Value Range: [64,2147483647]

  • Setting Category: postmaster

  • Description: Sets the maximum number of files that each server process can keep open at the same time.

max_function_args

  • Variable Type: Integer

  • Default Value: 100

  • Value Range: [100,100]

  • Setting Category: internal

  • Description: Shows the maximum number of arguments that a function can accept; this is a compiled-in limit and cannot be changed.

max_identifier_length

  • Variable Type: Integer

  • Default Value: 63

  • Value Range: [63,63]

  • Setting Category: internal

  • Description: Shows the maximum length, in bytes, allowed for identifiers such as table, column, and index names; this is a compiled-in limit and cannot be changed.

max_index_keys

  • Variable Type: Integer

  • Default Value: 32

  • Value Range: [32,32]

  • Setting Category: internal

  • Description: Shows the maximum number of columns that can be used in an index; this is a compiled-in limit and cannot be changed.

max_locks_per_transaction

  • Variable Type: Integer

  • Default Value: 128

  • Value Range: [10,2147483647]

  • Setting Category: postmaster

  • Description: Sets the average number of object locks allocated for each transaction; the shared lock table is sized on the assumption that at most max_locks_per_transaction * max_connections distinct objects will need to be locked at any one time.

max_logical_replication_workers

  • Variable Type: Integer

  • Default Value: 4

  • Value Range: [0,262143]

  • Setting Category: postmaster

  • Description: Sets the maximum number of logical replication worker processes, including both leader apply workers and table synchronization workers.

max_parallel_maintenance_workers

  • Variable Type: Integer

  • Default Value: 2

  • Value Range: [0,1024]

  • Setting Category: user

  • Description: Sets the maximum number of parallel worker processes that a single maintenance operation, such as CREATE INDEX or VACUUM, can use.

max_parallel_workers

  • Variable Type: Integer

  • Default Value: 8

  • Value Range: [0,1024]

  • Setting Category: user

  • Description: Sets the maximum number of parallel worker processes that SynxDB can have active across the entire system at one time.

max_parallel_workers_per_gather

  • Variable Type: Integer

  • Default Value: 2

  • Value Range: [0,1024]

  • Setting Category: user

  • Description: Sets the maximum number of parallel processes per executor node. For more information, see Execute Queries in Parallel.

max_pred_locks_per_page

  • Variable Type: Integer

  • Default Value: 2

  • Value Range: [0,2147483647]

  • Setting Category: sighup

  • Description: Sets the maximum number of predicate locks that can be held on tuples within a single page. If more than this number of tuples on the same page are locked by a connection, those locks are replaced by a single page-level predicate lock.

max_pred_locks_per_relation

  • Variable Type: Integer

  • Default Value: -2

  • Value Range: [-2147483648,2147483647]

  • Setting Category: sighup

  • Description: Sets the maximum number of predicate-locked pages and tuples that can exist per relation. If more than this total of pages and tuples in the same relation are locked by a connection, those locks are replaced by a single relation-level predicate lock.

max_pred_locks_per_transaction

  • Variable Type: Integer

  • Default Value: 64

  • Value Range: [10,2147483647]

  • Setting Category: postmaster

  • Description: Sets the maximum number of predicate locks that a single transaction can hold. The shared predicate lock table is sized on the assumption that at most max_pred_locks_per_transaction * max_connections distinct objects will need to be locked at any one time.

max_prepared_transactions

  • Variable Type: Integer

  • Default Value: 50

  • Value Range: [1,262143]

  • Setting Category: postmaster

  • Description: Sets the maximum number of transactions that can be in the prepared state at the same time as part of two-phase commit.

max_replication_slots

  • Variable Type: Integer

  • Default Value: 10

  • Value Range: [0,262143]

  • Setting Category: postmaster

  • Description: Sets the maximum number of replication slots that can be defined at the same time.

max_resource_portals_per_transaction

  • Variable Type: Integer

  • Default Value: 64

  • Value Range: [0,2147483647]

  • Setting Category: postmaster

  • Description: Sets the maximum number of portals (cursors) that a single transaction can hold open at the same time under resource queue-based workload management.

max_resource_queues

  • Variable Type: Integer

  • Default Value: 9

  • Value Range: [0,2147483647]

  • Setting Category: postmaster

  • Description: Sets the maximum number of resource queues that can be created for resource queue-based workload management.

max_running_tasks

  • Variable Type: Integer

  • Default Value: 5

  • Value Range: [1,262143]

  • Setting Category: postmaster

  • Description: Sets the maximum number of background tasks that can be running at the same time.

max_slot_wal_keep_size

  • Variable Type: Integer

  • Default Value: -1

  • Unit: MB

  • Value Range: [-1,2147483647]

  • Setting Category: sighup

  • Description: Sets the maximum amount of WAL that can be reserved by replication slots. Replication slots are marked as failed, and their WAL segments become eligible for deletion or recycling, if this much space would otherwise be occupied by WAL retained on disk. The default value of -1 means no such limit is enforced.

max_stack_depth

  • Variable Type: Integer

  • Default Value: 100

  • Unit: kB

  • Value Range: [100,2147483647]

  • Setting Category: superuser

  • Description: Sets the maximum depth of the server’s execution stack, in kilobytes. Exceeding this depth causes the server to assume it has encountered infinite recursion and terminate the process to prevent a crash.

max_standby_archive_delay

  • Variable Type: Integer

  • Default Value: 30000

  • Unit: ms

  • Value Range: [-1,2147483647]

  • Setting Category: sighup

  • Description: Sets the maximum delay, in milliseconds, before canceling queries on a hot standby server while it is applying WAL data read from archived WAL files.

max_standby_streaming_delay

  • Variable Type: Integer

  • Default Value: 30000

  • Unit: ms

  • Value Range: [-1,2147483647]

  • Setting Category: sighup

  • Description: Sets the maximum delay, in milliseconds, before canceling queries on a hot standby server while it is applying WAL data streamed from the primary server.

max_statement_mem

  • Variable Type: Integer

  • Default Value: 2048000

  • Unit: kB

  • Value Range: [32768,2147483647]

  • Setting Category: superuser

  • Description: Sets the upper limit, in kilobytes, that the statement_mem setting can be set to for a given statement.

max_sync_workers_per_subscription

  • Variable Type: Integer

  • Default Value: 2

  • Value Range: [0,262143]

  • Setting Category: sighup

  • Description: Sets the maximum number of table synchronization worker processes that a single logical replication subscription can use at one time.

max_wal_senders

  • Variable Type: Integer

  • Default Value: 10

  • Value Range: [0,262143]

  • Setting Category: postmaster

  • Description: Sets the maximum number of concurrent WAL sender processes, which are used for streaming replication and WAL archiving connections in SynxDB.

max_wal_size

  • Variable Type: Integer

  • Default Value: 1024

  • Unit: MB

  • Value Range: [2,2147483647]

  • Setting Category: sighup

  • Description: Sets the maximum size the WAL is allowed to grow to between automatic checkpoints; exceeding this size triggers a checkpoint.

max_worker_processes

  • Variable Type: Integer

  • Default Value: 14

  • Value Range: [1,262143]

  • Setting Category: postmaster

  • Description: Sets the maximum number of background worker processes that SynxDB can start concurrently, including those used by parallel queries and extensions.

min_dynamic_shared_memory

  • Variable Type: Integer

  • Default Value: 0

  • Unit: MB

  • Value Range: [0,2147483647]

  • Setting Category: postmaster

  • Description: Sets the amount of dynamic shared memory reserved at server startup, making that memory available for later allocation without additional operating system calls.

min_parallel_index_scan_size

  • Variable Type: Integer

  • Default Value: 16

  • Unit: 32kB

  • Value Range: [0,715827882]

  • Setting Category: user

  • Description: Sets the minimum amount of index data that must be scanned for the planner to consider a parallel index scan; if the estimated number of pages to read is smaller than this threshold, a parallel scan is not considered.

min_parallel_table_scan_size

  • Variable Type: Integer

  • Default Value: 256

  • Unit: 32kB

  • Value Range: [0,715827882]

  • Setting Category: user

  • Description: Sets the minimum amount of table data for a parallel scan. If the planner estimates that it will read a number of table pages too small to reach this limit, a parallel scan will not be considered.

min_wal_size

  • Variable Type: Integer

  • Default Value: 320

  • Unit: MB

  • Value Range: [2,2147483647]

  • Setting Category: sighup

  • Description: Sets the minimum size to which the WAL is shrunk during automatic checkpoints, as long as WAL usage stays below this threshold.

old_snapshot_threshold

  • Variable Type: Integer

  • Default Value: -1

  • Unit: min

  • Value Range: [-1,86400]

  • Setting Category: postmaster

  • Description: Sets how long a snapshot can be used before it is considered too old to read pages that have since been modified. A value of -1 disables this feature.

optimizer

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the GPORCA query optimizer is enabled for generating execution plans in SynxDB.

optimizer_agg_pds_strategy

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,3]

  • Setting Category: user

  • Description: Sets the strategy GPORCA uses to determine the required data distribution for aggregate operations.

optimizer_analyze_root_partition

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether ANALYZE also collects statistics on the root partitions of partitioned tables when GPORCA is enabled.

optimizer_array_constraints

  • Variable Type: Bool

  • Default Value: on

  • Setting Category: user

  • Description: Allows the optimizer’s constraint derivation framework to recognize array-type constraints.

optimizer_array_expansion_threshold

  • Value Range: Integer greater than 0

  • Default Value: 20

  • Setting Category: coordinator, session, reload

  • Description: When GPORCA is enabled (default) and executing queries containing constant array predicates, the optimizer_array_expansion_threshold parameter limits the optimization process based on the number of constants in the array.

    If the number of array elements in the query predicate exceeds the value specified by this parameter, GPORCA will not convert the predicate to disjunctive normal form during query optimization, thereby reducing optimization time and memory consumption. For example, when GPORCA processes a query with an IN clause containing more than 20 elements, it will not convert the clause to disjunctive normal form for optimization performance. This behavioral difference can be observed in the execution plan from how the IN condition is filtered.

    Modifying this parameter’s value affects the trade-off between optimization time and memory usage, as well as optimization benefits from constraint derivation, such as conflict detection and partition pruning. This parameter can be set at the database system level, individual database level, or session and query level.

optimizer_control

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: superuser

  • Description: Controls whether superusers are allowed to turn the optimizer setting on or off.

optimizer_cost_model

  • Variable Type: Enum

  • Default Value: calibrated

  • Setting Category: user

  • Description: Sets the cost model used by the optimizer.

optimizer_cost_threshold

  • Variable Type: Real

  • Default Value: 0

  • Value Range: [0,2.15E+09]

  • Setting Category: user

  • Description: Sets the sampling threshold related to the optimal execution plan cost, where 0 means no upper limit.

optimizer_cte_inlining_bound

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the size boundary for the optimizer to decide whether to inline CTEs (Common Table Expressions).

optimizer_damping_factor_filter

  • Variable Type: Real

  • Default Value: 0.75

  • Value Range: [0,1]

  • Setting Category: user

  • Description: Sets the damping factor used for selection predicates in the optimizer, where 1.0 means no damping.

optimizer_damping_factor_groupby

  • Variable Type: Real

  • Default Value: 0.75

  • Value Range: [0,1]

  • Setting Category: user

  • Description: Sets the damping factor for group by operations in the optimizer, where 1.0 means no damping.

optimizer_damping_factor_join

  • Variable Type: Real

  • Default Value: 0

  • Value Range: [0,1]

  • Setting Category: user

  • Description: Sets the damping factor for join predicates in the optimizer, where 1.0 means no damping and 0.0 means using square root damping.

optimizer_disable_dynamic_table_scan

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether GPORCA disables dynamic sequential, bitmap, and index scans on partitioned tables.

optimizer_discard_redistribute_hashjoin

  • Variable Type: Bool

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the optimizer discards hash join plans containing redistribute operations.

optimizer_dpe_stats

  • Variable Type: Bool

  • Default Value: on

  • Setting Category: user

  • Description: Enables statistics derivation for partitioned tables in dynamic partition elimination scenarios.

optimizer_enable_associativity

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether GPORCA considers join associativity transformations when generating query plans.

optimizer_enable_derive_stats_all_groups

  • Variable Type: Bool

  • Default Value: off

  • Setting Category: user

  • Description: Enables statistics derivation for all groups after completing search space exploration.

optimizer_enable_dynamicbitmapscan

  • Value Range: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: When enabled, the optimizer uses dynamic bitmap scan plans.

    If this parameter is set to off, GPORCA will not generate dynamic bitmap scan plans and will fall back to using dynamic sequential scan as an alternative.

optimizer_enable_dynamicindexonlyscan

  • Parameter Type: Boolean

  • Default Value: on

  • Setting Category: coordinator, session, reload

  • Description: When GPORCA is enabled (default), the optimizer_enable_dynamicindexonlyscan parameter controls whether to generate dynamic index-only scan plans.

    The default value is on. When planning queries on partitioned tables, if the query does not contain single-row volatile (SIRV) functions, GPORCA might generate dynamic index-only scans as an alternative. If set to off, GPORCA will not generate dynamic index-only scan plans. This parameter can be set at the database system level, individual database level, or session and query level.

optimizer_enable_dynamicindexscan

  • Value Range: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: This parameter controls whether to enable dynamic index scan in query plans.

    When enabled, the optimizer uses dynamic index scan plans. If this parameter is set to off, GPORCA will not generate dynamic index scan plans and will fall back to using dynamic sequential scan as an alternative.

optimizer_enable_foreign_table

  • Parameter Type: Boolean

  • Default Value: true

  • Setting Category: coordinator, session, reload

  • Description: When GPORCA is enabled (default) and this parameter is set to true (default), GPORCA generates execution plans for queries involving foreign tables.

    If set to false, queries containing foreign tables will fall back to being planned by the PostgreSQL-based optimizer.

optimizer_enable_indexonlyscan

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether GPORCA generates index-only scan plans, including parallel index-only scans. An index-only scan reads values directly from an index without accessing table data blocks. This parameter applies only when optimizer is on; the Postgres query optimizer uses enable_indexonlyscan. This hidden parameter does not appear in gpconfig -l.

optimizer_enable_indexscan

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether GPORCA generates index scan plans, including parallel index scans. When set to off, GPORCA uses other scan methods, such as sequential scans. This parameter applies only when optimizer is on; the Postgres query optimizer uses enable_indexscan. This hidden parameter does not appear in gpconfig -l.

optimizer_enable_orderedagg

  • Parameter Type: Boolean

  • Default Value: on

  • Setting Category: coordinator, session, reload

  • Description: When GPORCA is enabled (default), this parameter controls whether to generate query plans for ordered aggregates.

    When set to on (default), GPORCA generates execution plans for queries containing ordered aggregates. When set to off, such queries will fall back to being planned by the PostgreSQL-based optimizer.

    This parameter can be set at the database system level, individual database level, or session and query level.

optimizer_enable_parallel_append

  • Variable Type: Bool

  • Default Value: off

  • Setting Category: user

  • Description: Enables parallel append for seq/bitmap/index scan in partitioned tables in ORCA.

    When set to on, GPORCA generates and evaluates a parallel append path for partitioned table scans in addition to the default dynamic scan path. The optimizer compares the estimated cost of both paths and selects the lower-cost plan. This can significantly improve scan performance on large partitioned tables by parallelizing segment-level scans.

    When set to off (default), GPORCA uses its default scan strategy for partitioned tables without generating parallel append paths.

    This parameter can be set at the database system level, individual database level, or session and query level.

optimizer_enable_parallel_groupagg

  • Variable Type: Bool

  • Default Value: on

  • Setting Category: user

  • Description: Enables the optimizer’s use of parallel group aggregate (streaming) plans in ORCA.

optimizer_enable_parallel_hashagg

  • Variable Type: Bool

  • Default Value: on

  • Setting Category: user

  • Description: Enables the optimizer’s use of parallel hash aggregate plans in ORCA.

optimizer_enable_parallel_hashjoin

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether GPORCA can generate execution plans that use parallel hash joins.

optimizer_enable_parallel_part_selector

  • Variable Type: Bool

  • Default Value: on

  • Setting Category: user

  • Description: Enables parallel partition selector for parallel append.

    When set to on (default), GPORCA generates a parallel partition selector executor node for parallel append plans. This node parallelizes dynamic partition elimination (DPE) across workers using a shared-memory bitmapset, so that workers coordinate partition pruning without redundant scans. This optimization takes effect only when optimizer_enable_parallel_append is also set to on.

    When set to off, GPORCA does not generate the parallel partition selector; partition pruning falls back to the standard approach.

    This parameter can be set at the database system level, individual database level, or session and query level.

optimizer_enable_parallel_window

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether GPORCA can generate execution plans that use parallel window aggregate operations.

optimizer_enable_push_join_below_union_all

  • Parameter Type: Boolean

  • Default Value: off

  • Setting Category: coordinator, session, reload

  • Description: When GPORCA is enabled (default), the optimizer_enable_push_join_below_union_all parameter controls GPORCA’s behavior when encountering queries containing JOIN UNION ALL.

    The default value is off. GPORCA will not perform any transformation when the query contains JOIN UNION ALL.

    If set to on and the plan cost meets requirements, GPORCA will transform JOIN UNION ALL into multiple subqueries each performing JOIN followed by UNION ALL. This transformation might improve join performance when the subqueries of UNION ALL can benefit from join operations (but don’t qualify in the original plan).

    For example, in scenarios where indexed nested loop joins are highly efficient, such as when the inner table is large with an index and the outer table is small, or when multiple large tables with indexes are UNION ALL’ed with a small table, this transformation can push join conditions down as index conditions, potentially performing better than using hash joins.

    Enabling this transformation might increase query planning time, so it is recommended to use EXPLAIN to analyze query execution plans with this parameter both enabled and disabled. This parameter can be set at the database system level, individual database level, or session and query level.

optimizer_enable_query_parameter

  • Variable Type: Bool

  • Default Value: on

  • Setting Category: user

  • Description: Allows the GPORCA optimizer to handle query parameters.

optimizer_enable_replicated_table

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether GPORCA can generate plans that involve replicated tables in SynxDB.

optimizer_enable_right_join_flip

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the GPORCA optimizer can flip semi and anti hash joins into right semi and anti hash joins, so that GPORCA builds the hash table on the smaller side.

optimizer_enable_right_outer_join

  • Parameter Type: Boolean

  • Default Value: on

  • Setting Category: coordinator, session, reload

  • Description: When GPORCA is enabled (default), this parameter controls whether GPORCA generates right outer joins.

    If set to the default value on, GPORCA can either directly generate right outer joins or convert left outer joins to right outer joins (when the optimizer deems it appropriate). If set to off, GPORCA will convert incoming right outer joins to equivalent left outer joins and completely avoid generating any right outer joins.

    If you encounter performance issues with queries using right outer joins, you can disable right outer joins by setting this parameter to off.

    This parameter can be set at the database system level, individual database level, or session and query level. However, it is more recommended to control it at the query level, as right outer joins might be more appropriate query plan choices in certain scenarios.

optimizer_enable_scalar_subq_filter_pushdown

  • Parameter Type: Boolean

  • Default Value: off

  • Setting Category: coordinator, session, reload

  • Description: When GPORCA is enabled (default), this parameter controls whether GPORCA rewrites a correlated scalar subquery that aggregates on the join key into an equivalent window aggregate over the join result. The rewrite removes one aggregation and one join from the plan.

    The rewrite applies only when the subquery’s correlation predicate matches a join predicate of the enclosing query on the same key pair. Queries that do not meet this condition keep their original plan shape. This parameter has no effect when optimizer is off. See GPORCA Performance Tuning.

optimizer_force_multistage_agg

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Forces GPORCA to always choose a multistage aggregate plan whenever such a plan alternative is available, rather than letting the optimizer choose based on cost.

optimizer_force_partition_topk

  • Variable Type: Bool

  • Default Value: off

  • Setting Category: user

  • Setting Range: on | off

  • Description: Enables WindowAgg Top-K pushdown optimization for queries of the form RANK() OVER (PARTITION BY ... ORDER BY ...) <= K. When enabled, a Partition Top-K node is inserted below WindowAgg, which prunes non-qualifying rows early during execution. This reduces memory and CPU usage for common top-N-per-group analytics queries. Only RANK() with <= K or < (K+1) filter conditions is supported; ROW_NUMBER() and DENSE_RANK() fall back to standard WindowAgg execution. Requires GPORCA optimizer to be enabled.

optimizer_force_split_window_function

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Forces GPORCA to split a qualifying window function into local and global WindowAgg phases. The local phase filters rows before data redistribution, which can reduce data skew and bottlenecks for window queries with selective filter conditions. This hidden parameter does not appear in gpconfig -l.

optimizer_force_three_stage_scalar_dqa

  • Variable Type: Bool

  • Default Value: on

  • Setting Category: user

  • Description: Forces the optimizer to always choose three-stage aggregation plans for scalar distinct qualified aggregates.

optimizer_force_window_hash_agg

  • Variable Type: Bool

  • Default Value: off

  • Setting Category: user

  • Description: Forces GPORCA to use hash-based aggregation for window functions instead of sort-based aggregation. This can reduce data skew and single-point bottlenecks caused by sorting during window aggregation.

optimizer_join_arity_for_associativity_commutativity

  • Variable Type: Integer

  • Default Value: 18

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the maximum number of children an n-ary join can have before GPORCA disables the join associativity and commutativity transformation for that join.

optimizer_join_order

  • Variable Type: Enum

  • Default Value: exhaustive2

  • Value Range: query, greedy, exhaustive, exhaustive2

  • Setting Category: user

  • Description: Sets the join-ordering heuristic model that GPORCA uses when exploring alternative join orders for a query. query preserves the order as written, greedy and exhaustive/exhaustive2 apply increasingly thorough search strategies to find a lower-cost join order.

optimizer_join_order_threshold

  • Variable Type: Integer

  • Default Value: 10

  • Value Range: [0,12]

  • Setting Category: user

  • Description: Sets the maximum number of join children for which GPORCA uses the dynamic-programming-based join ordering algorithm; beyond this threshold a different join-ordering heuristic is used.

optimizer_mdcache_size

  • Variable Type: Integer

  • Default Value: 16384

  • Unit: kB

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the size of the metadata cache (MDCache) that GPORCA uses to store metadata retrieved during query optimization.

optimizer_metadata_caching

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether GPORCA caches and reuses metadata across query optimization, reducing the need to repeatedly fetch the same metadata.

optimizer_minidump

  • Variable Type: Enum

  • Default Value: onerror

  • Value Range: onerror, always

  • Setting Category: user

  • Description: Controls when GPORCA generates a minidump file capturing the optimization context for a query. onerror generates a minidump only when an error occurs during optimization, while always generates one for every query.

optimizer_nestloop_factor

  • Variable Type: Real

  • Default Value: 1024

  • Value Range: [1,1.79769e+308]

  • Setting Category: user

  • Description: Sets the cost factor for nested loop joins in the optimizer.

optimizer_parallel_cte_max_nested_producers

  • Variable Type: Integer

  • Default Value: 5

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the maximum number of nested CTE producers allowed before GPORCA falls back to the PostgreSQL planner when parallel mode is enabled; a producer counts as nested if its body references at least one other CTE consumer. A value of 0 means unlimited.

optimizer_parallel_union

  • Variable Type: Bool

  • Default Value: on

  • Setting Category: user

  • Description: Enables parallel execution for UNION/UNION ALL queries in ORCA.

    When set to on (default), GPORCA can generate parallel execution plans for queries that use UNION or UNION ALL to combine multiple result sets. This improves throughput by distributing the work across multiple workers within each segment.

    When set to off, UNION/UNION ALL queries are executed without intra-segment parallelism.

    This parameter can be set at the database system level, individual database level, or session and query level.

optimizer_penalize_broadcast_threshold

  • Parameter Type: Integer

  • Value Range: [0,2147483647]

  • Default Value: 100000

  • Setting Category: user

  • Description: Specifies the maximum number of relation rows that can be broadcast without penalty.

    If the number of broadcast rows exceeds this threshold, the optimizer will increase its execution cost to reduce the likelihood of selecting that plan.

    Setting this parameter to 0 disables the penalty mechanism, meaning no penalty is applied to any broadcast.

optimizer_push_group_by_below_setop_threshold

  • Variable Type: Integer

  • Default Value: 10

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the maximum number of child nodes to attempt pushing GROUP BY operations below SetOp nodes.

optimizer_replicated_table_insert

  • Variable Type: Bool

  • Default Value: on

  • Setting Category: user

  • Description: Omits broadcast operations when inserting data into replicated tables.

optimizer_skew_factor

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,100]

  • Setting Category: user

  • Description: Sets the source and weight of the skew factor. 0 means disabling skew derivation based on sample statistics, 1–100 means enabling and calculating skew ratio based on samples; the actual skew used for cost estimation is the product of this parameter and the skew ratio.

optimizer_sort_factor

  • Variable Type: Real

  • Default Value: 1

  • Value Range: [0,1.79769e+308]

  • Setting Category: user

  • Description: Sets the cost factor for sort operations in the optimizer; 1.0 means the same as default cost, greater than 1 means higher sort cost, less than 1 means lower cost.

optimizer_trace_fallback

  • Variable Type: Bool

  • Default Value: off

  • Setting Category: user

  • Description: Prints information at the INFO log level when GPORCA falls back to using the traditional optimizer.

optimizer_use_streaming_hashagg

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether GPORCA uses a streaming hash aggregate for local partial aggregations. When set to off, GPORCA uses a non-streaming partial hash aggregate that can spill to disk and fully deduplicates rows before passing results upstream. This parameter applies only when optimizer is on. This hidden parameter does not appear in gpconfig -l.

optimizer_use_gpdb_allocators

  • Variable Type: Bool

  • Default Value: on

  • Setting Category: postmaster

  • Description: Allows the GPORCA optimizer to use the database’s memory context management mechanism (Memory Contexts).

optimizer_valuescan_threshold

  • Variable Type: Integer

  • Default Value: 100

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the maximum number of values GPORCA allows in a single query’s value scan (such as a VALUES list) before falling back to an alternative plan.

optimizer_xform_bind_threshold

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Limits the maximum number of bindings that can be generated for each transformation rule (xform) on each group expression in ORCA. Setting to 0 means this limit is not enabled.

parallel_leader_participation

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the leader process also executes subplans in Gather and Gather Merge nodes, rather than only gathering tuples produced by worker processes.

parallel_query_use_streaming_hashagg

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether parallel query execution can use a streaming hash aggregate plan for DISTINCT operations.

parallel_setup_cost

  • Variable Type: Real

  • Default Value: 1000

  • Value Range: [0,1.79769e+308]

  • Setting Category: user

  • Description: Sets the planner’s estimate of the cost of starting up worker processes for parallel query.

parallel_tuple_cost

  • Variable Type: Real

  • Default Value: 0.1

  • Value Range: [0,1.79769e+308]

  • Setting Category: user

  • Description: Sets the planner’s estimate of the cost of transferring each tuple (row) from a parallel worker process to the leader backend process, used when costing parallel query plans.

password_encryption

  • Variable Type: Enum

  • Default Value: scram-sha-256

  • Value Range: md5, scram-sha-256

  • Setting Category: user

  • Description: Selects the algorithm used to encrypt passwords when they are stored or changed via CREATE ROLE or ALTER ROLE, if the password is not already provided in a pre-encrypted form.

passwordcheck.strict_policy

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: sighup

  • Description: Enables a strict password policy for the PasswordCheck plugin. When set to on, the following rules are enforced when setting a password: the password must be at least 9 characters long, contain at least 2 uppercase letters, at least 2 lowercase letters, at least 2 numbers, and at least 2 special characters. These rules are hardcoded and cannot be modified. This parameter requires the passwordcheck module to be loaded via shared_preload_libraries before it can take effect. See Check Password Security.

pax.bloom_filter_work_memory_bytes

  • Variable Type: Integer

  • Default Value: 10240

  • Value Range: [1024,2147483647]

  • Setting Category: user

  • Description: Sets the amount of working memory, in bytes, that the PAX storage format allocates for building a bloom filter when writing data.

pax.chunk_index_rows

  • Variable Type: Integer

  • Default Value: 8192

  • Value Range: [1024,131072]

  • Setting Category: user

  • Description: The number of rows in each chunk that PAX writes when pax.enable_chunk_index is on. The smaller the chunk, the less data a sparse fetch through an index decompresses, but the compression ratio drops and storage grows. For more information, see Speed up sparse fetches that go through an index.

pax.default_storage_format

  • Variable Type: String

  • Default Value: porc

  • Setting Category: user

  • Description: Specifies the default on-disk storage format used when creating a PAX table in SynxDB.

pax.enable_chunk_index

  • Variable Type: Bool

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether a write splits each compressed column into chunks of a fixed row count, compresses every chunk on its own, and records where each chunk starts at the head of the column stream. When this parameter is on, fetching a few scattered rows through an index decompresses only the chunk that holds the matching row instead of the whole group. The parameter applies to the data you write after you set it. A read decodes each data file by its actual format, regardless of the current value. pax.chunk_index_rows sets the number of rows per chunk. For more information, see Speed up sparse fetches that go through an index.

pax.enable_debug

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether additional debug information is emitted for the PAX storage engine.

pax.enable_fast_filter

  • Variable Type: Bool

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the PAX vectorized scan uses a native fast filter path for simple predicates (=, <>, <, <=, >, >=, IN, and LIKE '%substr%'). When this parameter is on, the scan reads only the filter columns first, evaluates the qualifying predicates natively, and reads the remaining output columns only for the rows that survive. If all rows in a group are filtered out, the scan skips reading the remaining columns for that group entirely. The executor removes the predicates that the fast filter handles from the Arrow FilterNode, so the system never evaluates them twice. For more information, see Use fast filter for two-phase column read.

pax.enable_iouring

  • Variable Type: Bool

  • Default Value: on

  • Setting Category: user

  • Description: When the GUC is enabled, SynxDB uses IO Uring to read data files in PAX storage.

pax.enable_prefetch

  • Variable Type: Bool

  • Default Value: off

  • Setting Category: user

  • Description: When the GUC is enabled, SynxDB enables threads to pre-fetch data files in PAX storage.

pax.enable_rle_batch_encoding

  • Variable Type: Bool

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether to enable batch encoding for PAX RLE encoding. When enabled, it supports encoding a batch of data, which compresses the data while improving decoding efficiency.

pax.enable_row_filter

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether row-level filtering is applied when scanning PAX tables.

pax.enable_sparse_filter

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether sparse filtering, based on min/max and bloom filter statistics, is used to skip irrelevant data during PAX table scans.

pax.enable_toast

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether TOAST storage is enabled for PAX tables.

pax.log_filter_tree

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the filter tree used during PAX table scans is written to the log, primarily for diagnostic purposes.

pax.max_size_per_file

  • Variable Type: Integer

  • Default Value: 67108864

  • Value Range: [8388608,335544320]

  • Setting Category: user

  • Description: Sets the default maximum size, in bytes, that a single PAX data file is allowed to reach before a new file is started.

pax.max_tuples_per_file

  • Variable Type: Integer

  • Default Value: 1310720

  • Value Range: [131072,8388608]

  • Setting Category: user

  • Description: Sets the default maximum number of tuples allowed in a single PAX data file before a new file is started.

pax.max_tuples_per_group

  • Variable Type: Integer

  • Default Value: 131072

  • Value Range: [5,524288]

  • Setting Category: user

  • Description: Sets the default maximum number of tuples allowed in a single group within a PAX data file.

pax.min_size_of_compress_toast

  • Variable Type: Integer

  • Default Value: 524288

  • Value Range: [524288,1073741824]

  • Setting Category: user

  • Description: Sets the minimum value size, in bytes, above which PAX creates a compressed TOAST entry rather than storing the value inline.

pax.min_size_of_external_toast

  • Variable Type: Integer

  • Default Value: 10485760

  • Value Range: [10485760,2147483647]

  • Setting Category: user

  • Description: Sets the minimum value size, in bytes, above which PAX creates an external TOAST entry rather than storing the value inline or as a compressed TOAST entry.

pax.scan_reuse_buffer_size

  • Variable Type: Integer

  • Default Value: 8388608

  • Value Range: [1048576,33554432]

  • Setting Category: user

  • Description: Sets the size, in bytes, of the buffer that PAX reuses across scans to reduce repeated memory allocation.

perfmon.enable

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: postmaster

  • Description: Controls whether perfmon monitoring is enabled for the SynxDB instance.

perfmon.port

  • Variable Type: Integer

  • Default Value: 8888

  • Value Range: [1024,65535]

  • Setting Category: postmaster

  • Description: Sets the port number that the perfmon monitoring service listens on.

pg_gophermeta.gopher_connect_hdfs_disable_getstate

  • Variable Type: Bool

  • Default Value: off

  • Setting Category: sighup

  • Description: Controls whether to disable the getFsStats RPC call after establishing an HDFS connection. In some scenarios, this RPC call might cause unnecessary overhead. Setting it to on can disable this call to optimize connection performance.

pg_gophermeta.gopher_enable_update_oss_context

  • Variable Type: Bool

  • Default Value: off

  • Setting Category: sighup

  • Description: Controls whether Gopher (the data access layer) updates the context information for OSS (Object Storage Service).

pg_gophermeta.gopher_hash_connect_hdfs_router

  • Variable Type: Bool

  • Default Value: off

  • Setting Category: sighup

  • Description: Controls whether to disable the getFsStats RPC call after establishing an HDFS connection. In some scenarios, this RPC call might cause unnecessary overhead. Setting it to on can disable this call to optimize connection performance.

pg_gophermeta.gopher_local_capacity_mb

  • Variable Type: Integer

  • Default Value: 1024000

  • Unit: MB

  • Value Range: [1024, 2147483647]

  • Setting Category: sighup

  • Description: Sets the local cache capacity in MB for the GopherMeta process. For optimal performance, it is recommended to set this value to 30% of the disk capacity. After setting this parameter, a restart of the Gopher process is required for the change to take effect.

pg_gophermeta.gopher_master_port

  • Variable Type: Integer

  • Default Value: 6789

  • Value Range: [0,65535]

  • Setting Category: user

  • Description: Sets the port used by the master TCP socket for the gopher metadata process.

pg_gophermeta.gopher_oss_liboss2_log_level

  • Variable Type: String

  • Default Value: WARNING

  • Value Range: DEBUG3, DEBUG2, DEBUG1, INFO, WARNING, ERROR, FATAL

  • Setting Category: sighup

  • Description: Sets the log severity level for the Gopher OSS LIBOSS2 component used by SynxDB to access object storage. Only messages at or above the configured severity are logged.

pg_gophermeta.gopher_oss_log_level

  • Variable Type: String

  • Default Value: WARNING

  • Value Range: DEBUG3, DEBUG2, DEBUG1, INFO, WARNING, ERROR, FATAL

  • Setting Category: sighup

  • Description: Sets the log severity level for the Gopher OSS component used by SynxDB to access object storage. Only messages at or above the configured severity are logged.

pg_gophermeta.gopher_plasma_size_mb

  • Variable Type: Integer

  • Default Value: 0

  • Unit: MB

  • Value Range: [0,2147483647]

  • Setting Category: postmaster

  • Description: Sets the footprint, in MB, of the Plasma L1 read cache that the GopherMeta process keeps in shared memory. 0 disables the cache, and a positive value enables it with that footprint. This cache lives in /dev/shm, whose ceiling defaults to half of physical memory. A footprint above that ceiling makes the GopherMeta process fail at startup.

pg_gophermeta.gphdfs_configure_router

  • Variable Type: Bool

  • Default Value: off

  • Setting Category: sighup

  • Description: Indicates whether HDFS is configured with multiple router nodes. When an HDFS cluster uses multiple routers to provide external services, this parameter must be set to on so that the database can correctly identify and use the list of routers.

pg_gophermeta.register_gophermeta

  • Variable Type: Bool

  • Default Value: on

  • Setting Category: postmaster

  • Description: Starts the gophermeta worker to enable Gopher caching.

    If set to on, gophermeta starts normally, making the cache server available.

    If set to off, the postmaster does not start the gophermeta cache service. As a result, the database cannot access object storage via gophermeta or use the cache, and must rely on PXF for access.

plan_cache_mode

  • Variable Type: Enum

  • Default Value: auto

  • Value Range: auto, force_generic_plan, force_custom_plan

  • Setting Category: user

  • Description: Controls how the planner chooses between a custom plan and a generic plan for prepared statements. By default the planner decides automatically which type is likely to perform better, but this parameter can force it to always use a custom or always use a generic plan.

pljava_classpath

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: superuser

  • Description: Specifies the classpath used by the JVM when running PL/Java functions in SynxDB.

pljava_classpath_insecure

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: postmaster

  • Description: Controls whether a non-superuser is allowed to set pljava_classpath on a per-session basis.

pljava_release_lingering_savepoints

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Determines how savepoints left open by a PL/Java function are handled when the function exits. When enabled, any lingering savepoints are released; when disabled, they are rolled back instead.

pljava_statement_cache_size

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,512]

  • Setting Category: superuser

  • Description: Sets the size of the most-recently-used (MRU) cache for prepared statements used by PL/Java.

pljava_vmoptions

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: superuser

  • Description: Specifies the options passed to the JVM when it is created for running PL/Java functions in SynxDB.

port

  • Variable Type: Integer

  • Default Value: 5432

  • Value Range: [1,65535]

  • Setting Category: postmaster

  • Description: Specifies the TCP port on which the server listens for client connections.

primary_conninfo

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: sighup

  • Description: Sets the connection string that a standby server uses to connect to the primary (sending) server for streaming replication.

primary_slot_name

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: sighup

  • Description: Sets the name of the replication slot that the standby uses on the sending (primary) server for streaming replication.

promote_trigger_file

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: sighup

  • Description: Specifies the name of a file whose presence on a standby server ends recovery and promotes the standby to a primary.

quote_all_identifiers

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether identifiers are always quoted when SynxDB generates SQL fragments, such as when reconstructing queries or DDL statements.

random_page_cost

  • Variable Type: Real

  • Default Value: 4

  • Value Range: [0,1.79769e+308]

  • Setting Category: user

  • Description: Sets the planner’s estimate of the cost of fetching a disk page that is not part of a sequential scan, used when comparing plans that rely on random versus sequential I/O.

readable_external_table_timeout

  • Variable Type: Integer

  • Default Value: 0

  • Unit: s

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Cancels a query against a readable external table if no data is read within the configured number of seconds. A value of 0 disables the timeout.

recovery_end_command

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: sighup

  • Description: Sets the shell command that is executed once when recovery ends on a standby server.

recovery_init_sync_method

  • Variable Type: Enum

  • Default Value: fsync

  • Value Range: fsync, syncfs

  • Setting Category: sighup

  • Description: Sets the method SynxDB uses to synchronize the data directory to disk before starting crash recovery, so that recovery begins from a durable on-disk state.

recovery_min_apply_delay

  • Variable Type: Integer

  • Default Value: 0

  • Unit: ms

  • Value Range: [0,2147483647]

  • Setting Category: sighup

  • Description: Sets the minimum delay, in milliseconds, before SynxDB applies changes replayed during recovery, allowing a standby to lag intentionally behind the primary.

recovery_target

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: postmaster

  • Description: Set this to immediate to have SynxDB end recovery as soon as a consistent state is reached, rather than continuing to replay further WAL records.

recovery_target_action

  • Variable Type: Enum

  • Default Value: pause

  • Value Range: pause, promote, shutdown

  • Setting Category: postmaster

  • Description: Sets the action SynxDB performs once the specified recovery target is reached, such as pausing, promoting to primary, or shutting down.

recovery_target_inclusive

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: postmaster

  • Description: Controls whether SynxDB includes or excludes the transaction identified by the recovery target when stopping recovery.

recovery_target_lsn

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: postmaster

  • Description: Sets the write-ahead log (WAL) location up to which SynxDB replays records during recovery.

recovery_target_name

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: postmaster

  • Description: Sets the named restore point up to which SynxDB replays WAL records during recovery.

recovery_target_time

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: postmaster

  • Description: Sets the timestamp up to which SynxDB replays WAL records during recovery.

recovery_target_timeline

  • Variable Type: String

  • Default Value: latest

  • Setting Category: postmaster

  • Description: Specifies the timeline into which SynxDB recovers, for example the latest available timeline or a specific one.

recovery_target_xid

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: postmaster

  • Description: Sets the transaction ID up to which SynxDB replays WAL records during recovery.

remove_temp_files_after_crash

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: sighup

  • Description: Controls whether SynxDB removes temporary files left behind after a backend process crashes.

repl_catchup_within_range

  • Variable Type: Integer

  • Default Value: 1

  • Value Range: [0,1]

  • Setting Category: superuser

  • Description: Sets the maximum number of WAL segments a walsender can lag behind while still in the catchup phase before backends waiting on it are allowed to start blocking.

resource_cleanup_gangs_on_wait

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether SynxDB cleans up idle query executor gangs before a session waits on a resource lock.

resource_scheduler

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: postmaster

  • Description: Enables the resource scheduling mechanism in SynxDB, which manages and limits concurrent query resource usage.

resource_select_only

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: postmaster

  • Description: Controls whether resource locking applies only to SELECT statements, rather than to all resource-scheduled queries.

restart_after_crash

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: sighup

  • Description: Controls whether SynxDB automatically reinitializes the server and all backend processes after a backend crash, instead of requiring a manual restart.

restore_command

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: sighup

  • Description: Specifies the shell command that SynxDB invokes to retrieve an archived WAL file during recovery.

restrict_nonsystem_relation_kind

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: user

  • Description: Specifies a comma-separated list of relation kinds (such as view or foreign-table) that SynxDB restricts from being used for non-system relations.

row_security

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Enables row-level security so that applicable row security policies are applied to all users, including table owners, when accessing tables.

runaway_detector_activation_percent

  • Variable Type: Integer

  • Default Value: 90

  • Value Range: [0,100]

  • Setting Category: postmaster

  • Description: Sets the percentage of the vmem quota that must be exceeded for the runaway detector to activate and start terminating queries. Setting this to 0 or 100 disables the runaway detector.

search_path

  • Variable Type: String

  • Default Value: “$user”, public

  • Setting Category: user

  • Description: Sets the order in which schemas are searched when an object is referenced without an explicit schema qualification.

segment_size

  • Variable Type: Integer

  • Default Value: 32768

  • Unit: 32kB

  • Value Range: [32768,32768]

  • Setting Category: internal

  • Description: Shows the number of pages per disk file used to store a relation segment. This is a compile-time constant and cannot be changed at runtime.

seq_page_cost

  • Variable Type: Real

  • Default Value: 1

  • Value Range: [0,1.79769e+308]

  • Setting Category: user

  • Description: Sets the query planner’s estimate of the cost of reading a disk page sequentially, used as the baseline unit for other planner cost parameters.

server_encoding

  • Variable Type: String

  • Default Value: SQL_ASCII

  • Setting Category: internal

  • Description: Shows the character set encoding used by the current database. This value is determined when the database is created and cannot be changed afterward.

server_version

  • Variable Type: String

  • Default Value: 14.4

  • Setting Category: internal

  • Description: Shows the version of the underlying PostgreSQL-compatible server that SynxDB is built on.

server_version_num

  • Variable Type: Integer

  • Default Value: 140000

  • Value Range: [140000,140000]

  • Setting Category: internal

  • Description: Shows the server version as an integer, encoded in the form of major and minor version numbers, so that applications can compare versions numerically.

session_preload_libraries

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: superuser

  • Description: Lists shared libraries that SynxDB preloads at the start of each new session, without requiring the libraries to be preloaded for the whole server via shared_preload_libraries.

session_replication_role

  • Variable Type: Enum

  • Default Value: origin

  • Value Range: origin, replica, local

  • Setting Category: superuser

  • Description: Controls whether triggers and rewrite rules fire for the current session, allowing SynxDB sessions to behave as the origin, a replica, or a purely local session in replication scenarios.

shared_buffers

  • Variable Type: Integer

  • Default Value: 4096

  • Unit: 32kB

  • Value Range: [16,1073741823]

  • Setting Category: postmaster

  • Description: Sets the amount of shared memory that SynxDB uses for buffering data.

shared_memory_type

  • Variable Type: Enum

  • Default Value: mmap

  • Value Range: sysv, mmap

  • Setting Category: postmaster

  • Description: Selects the shared memory implementation that SynxDB uses for the main shared memory region.

shared_preload_libraries

  • Variable Type: String

  • Default Value: ‘’

  • Setting Category: postmaster

  • Description: Specifies one or more shared libraries to preload into the server at startup, so that extensions requiring shared_preload_libraries are initialized before SynxDB accepts connections. Changing this parameter requires a full restart of the database to take effect.

ssl

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: sighup

  • Description: Enables SSL connections to the server. When enabled, SynxDB accepts encrypted client connections in addition to (or instead of) plain-text ones, subject to the other ssl_* parameters and pg_hba.conf rules.

ssl_ca_file

  • Variable Type: String

  • Default Value: ‘’

  • Setting Category: sighup

  • Description: Specifies the name of the file containing the SSL certificate authority (CA) certificate(s), used to validate client certificates during SSL/TLS handshakes.

ssl_cert_file

  • Variable Type: String

  • Default Value: server.crt

  • Setting Category: sighup

  • Description: Specifies the name of the file containing the SSL server certificate that SynxDB presents to clients during SSL/TLS connection setup.

ssl_ciphers

  • Variable Type: String

  • Default Value: HIGH:MEDIUM:+3DES:!aNULL

  • Setting Category: sighup

  • Description: Specifies a list of SSL cipher suites that are allowed to be used for encrypted connections, following the underlying SSL library’s cipher list syntax.

ssl_crl_dir

  • Variable Type: String

  • Default Value: ‘’

  • Setting Category: sighup

  • Description: Specifies the directory containing SSL certificate revocation list (CRL) files used to check whether client certificates have been revoked.

ssl_crl_file

  • Variable Type: String

  • Default Value: ‘’

  • Setting Category: sighup

  • Description: Specifies the name of the file containing the SSL certificate revocation list (CRL) used to check whether client certificates have been revoked.

ssl_dh_params_file

  • Variable Type: String

  • Default Value: ‘’

  • Setting Category: sighup

  • Description: Specifies the name of the file containing Diffie-Hellman (DH) parameters used for SSL/TLS connections negotiated with DH-based cipher suites.

ssl_ecdh_curve

  • Variable Type: String

  • Default Value: prime256v1

  • Setting Category: sighup

  • Description: Specifies the name of the elliptic curve used for ECDH (Elliptic Curve Diffie-Hellman) key exchange during SSL/TLS connection negotiation.

ssl_key_file

  • Variable Type: String

  • Default Value: server.key

  • Setting Category: sighup

  • Description: Specifies the name of the file containing the private key corresponding to the SSL server certificate.

ssl_library

  • Variable Type: String

  • Default Value: OpenSSL

  • Setting Category: internal

  • Description: Shows the name of the SSL library that SynxDB was built with and uses to implement SSL/TLS support.

ssl_max_protocol_version

  • Variable Type: Enum

  • Default Value: ‘’

  • Value Range: ‘’, TLSv1, TLSv1.1, TLSv1.2, TLSv1.3

  • Setting Category: sighup

  • Description: Sets the maximum SSL/TLS protocol version that SynxDB will negotiate with clients. An empty value means there is no maximum, allowing the underlying SSL library to negotiate the highest version it supports.

ssl_min_protocol_version

  • Variable Type: Enum

  • Default Value: TLSv1.2

  • Value Range: TLSv1, TLSv1.1, TLSv1.2, TLSv1.3

  • Setting Category: sighup

  • Description: Sets the minimum SSL/TLS protocol version that SynxDB will accept when negotiating connections with clients; connection attempts using an older protocol version are rejected.

ssl_passphrase_command

  • Variable Type: String

  • Default Value: ‘’

  • Setting Category: sighup

  • Description: Specifies an external command that SynxDB runs to obtain the passphrase for decrypting an encrypted SSL private key file, instead of prompting interactively.

ssl_passphrase_command_supports_reload

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: sighup

  • Description: Controls whether ssl_passphrase_command is also invoked during a configuration reload (as opposed to only at server start) to obtain the SSL private key passphrase.

ssl_prefer_server_ciphers

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: sighup

  • Description: Gives priority to the server’s cipher suite order over the client’s preferences when negotiating a TLS connection.

standard_conforming_strings

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether ordinary string literals ('...') treat backslashes as literal characters rather than as escape sequences.

statement_mem

  • Variable Type: Integer

  • Default Value: 128000

  • Unit: kB

  • Value Range: [1000,2147483647]

  • Setting Category: user

  • Description: Sets the amount of memory reserved for processing a single SQL statement.

statement_timeout

  • Variable Type: Integer

  • Default Value: 0

  • Unit: ms

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the maximum duration a statement is allowed to run before it is automatically canceled; a value of 0 disables the timeout.

stats_queue_level

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Controls whether SynxDB collects resource-queue-level statistics on database activity.

superuser_reserved_connections

  • Value Range: Integer less than max_connections

  • Default Value: 10

  • Setting Category: local, system, restart

  • Description: Specifies the number of connection slots reserved for SynxDB database superusers.

synchronize_seqscans

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Enables synchronized sequential scans, allowing multiple concurrent scans of the same table to share I/O by starting from the current scan position of another session that is already reading the table.

synchronous_commit

  • Variable Type: Enum

  • Default Value: on

  • Value Range: local, remote_write, remote_apply, on, off

  • Setting Category: user

  • Description: Sets the current transaction’s synchronization level, controlling whether and how a transaction commit waits for its WAL records to be flushed to disk or replicated to standby servers.

synchronous_standby_names

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: sighup

  • Description: Specifies the number of synchronous standby servers required and the names of the potential synchronous standbys, used together with synchronous_commit.

syslog_sequence_numbers

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: sighup

  • Description: Adds a sequence number to each message sent to syslog, preventing the syslog daemon from suppressing messages it mistakenly treats as duplicates.

syslog_split_messages

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: sighup

  • Description: Splits messages sent to syslog by line and ensures each chunk fits within 1024 bytes, because some syslog implementations truncate or drop longer messages.

task_enable_superuser_jobs

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: postmaster

  • Description: Controls whether scheduled tasks (cron jobs) can be created and run with superuser privileges.

task_host_addr

  • Variable Type: String

  • Default Value: 127.0.0.1

  • Setting Category: postmaster

  • Description: Specifies the host address used to connect to SynxDB when running scheduled tasks.

task_log_run

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: postmaster

  • Description: Controls whether every scheduled task run is logged into the pg_task_run_history table.

task_log_statement

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: postmaster

  • Description: Controls whether the SQL statement of a scheduled task is logged before it is executed.

task_timezone

  • Variable Type: String

  • Default Value: GMT

  • Setting Category: postmaster

  • Description: Specifies the time zone used when interpreting the schedules of scheduled tasks (cron jobs).

task_use_background_worker

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: postmaster

  • Description: Controls whether SynxDB uses background workers instead of client sessions to execute tasks.

tcp_keepalives_count

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the maximum number of TCP keepalive retransmits that can be lost before a connection is considered dead. A value of 0 uses the system default.

tcp_keepalives_idle

  • Variable Type: Integer

  • Default Value: 0

  • Unit: s

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the interval between issuing TCP keepalive messages on an otherwise idle connection. A value of 0 uses the system default.

tcp_keepalives_interval

  • Variable Type: Integer

  • Default Value: 0

  • Unit: s

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the interval between TCP keepalive retransmits when an earlier keepalive message has not been acknowledged. A value of 0 uses the system default.

tcp_user_timeout

  • Variable Type: Integer

  • Default Value: 0

  • Unit: ms

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the TCP user timeout, which limits how long transmitted data can remain unacknowledged before the connection is forcibly closed. A value of 0 uses the system default.

tde_force_switch

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: postmaster

  • Description: Controls whether TDE (Transparent Data Encryption) is enabled for SynxDB.

tde_kms_ca_cert

  • Variable Type: String

  • Default Value: empty

  • Setting Category: sighup

  • Description: Path to the PEM CA certificate that verifies the KMS server certificate for tablespace-level TDE. Required when tde_kms_provider is kmip. Optional when it is cosmian, which falls back to plain HTTP without it. For more information, see Encrypt a single tablespace.

tde_kms_client_cert

  • Variable Type: String

  • Default Value: empty

  • Setting Category: sighup

  • Description: Path to the PEM client certificate that authenticates SynxDB to the KMS with mutual TLS. Required when tde_kms_provider is kmip, and recommended when it is cosmian.

tde_kms_client_key

  • Variable Type: String

  • Default Value: empty

  • Setting Category: sighup

  • Description: Path to the PEM private key that matches tde_kms_client_cert. Restrict the file to mode 0400, owned by the SynxDB administrator.

tde_kms_command

  • Variable Type: String

  • Default Value: empty

  • Setting Category: sighup

  • Description: Shell command that returns a 256-bit key encryption key as 64 hexadecimal characters on standard output. Required when tde_kms_provider is local_cmd. SynxDB runs the command with /bin/sh -c on each node, so the command must exist on the coordinator and on every segment host. The %k token expands to the kms_key_id of the tablespace, or to tde_kms_default_key_id when CREATE TABLESPACE omits it.

tde_kms_connect_timeout

  • Variable Type: Integer

  • Default Value: 10

  • Value Range: [1,300]

  • Setting Category: sighup

  • Description: Timeout in seconds for establishing the TCP connection to the KMS for tablespace-level TDE.

tde_kms_default_key_id

  • Variable Type: String

  • Default Value: empty

  • Setting Category: sighup

  • Description: KMS key identifier used to wrap the tablespace data encryption key when CREATE TABLESPACE omits the kms_key_id option.

tde_kms_host

  • Variable Type: String

  • Default Value: empty

  • Setting Category: sighup

  • Description: Hostname or IP address of the KMS server for tablespace-level TDE. Required when tde_kms_provider is cosmian or kmip. The value applies to whichever provider is active, so a cluster reaches one KMS at a time.

tde_kms_operation_timeout

  • Variable Type: Integer

  • Default Value: 30

  • Value Range: [1,600]

  • Setting Category: sighup

  • Description: Timeout in seconds for a single KMS operation, such as wrapping or unwrapping one tablespace data encryption key.

tde_kms_password

  • Variable Type: String

  • Default Value: empty

  • Setting Category: sighup

  • Description: Credential that authenticates SynxDB to the KMS when the provider does not use a client certificate. Together with tde_kms_username it forms HTTP basic authentication; on its own it is sent as a bearer token. Set it with gpconfig --skipvalidation, as for tde_kms_builtin_passphrase.

tde_kms_port

  • Variable Type: Integer

  • Default Value: 5696

  • Value Range: [1,65535]

  • Setting Category: sighup

  • Description: Port of the KMS server for tablespace-level TDE. The default is the port that the KMIP standard reserves. Cosmian KMS serves its REST endpoint on port 9998 by default.

tde_kms_provider

  • Variable Type: String

  • Default Value: none

  • Setting Category: postmaster

  • Description: KMS provider that wraps the data encryption key of an encrypted tablespace. Valid values are none, builtin, cosmian, kmip, and local_cmd. With none, CREATE TABLESPACE cannot create an encrypted tablespace. Each provider needs its own set of parameters, and the cluster fails to start if a required one is missing. For more information, see Choose a KMS provider.

tde_kms_username

  • Variable Type: String

  • Default Value: empty

  • Setting Category: sighup

  • Description: User name presented to the KMS when the provider authenticates with credentials rather than with a client certificate.

tde_max_tablespace_keys

  • Variable Type: Integer

  • Default Value: 128

  • Value Range: [1,4096]

  • Setting Category: postmaster

  • Description: Maximum number of tablespace data encryption keys that a node caches in shared memory. Raise it if the cluster holds more encrypted tablespaces than this limit.

temp_buffers

  • Variable Type: Integer

  • Default Value: 1024

  • Unit: 32kB

  • Value Range: [100,1073741823]

  • Setting Category: user

  • Description: Sets the maximum number of temporary buffers used by each database session for accessing temporary tables.

temp_file_limit

  • Variable Type: Integer

  • Default Value: -1

  • Unit: kB

  • Value Range: [-1,2147483647]

  • Setting Category: superuser

  • Description: Limits the total size of all temporary files used by each process. A value of -1 means no limit is enforced.

temp_tablespaces

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: user

  • Description: Sets the tablespace(s) to use for temporary tables and for sort files created during query processing.

time_series.bgw_enabled

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: postmaster

  • Description: Controls whether the background job scheduler of the time_series extension is enabled. When set to on, the launcher process starts with the cluster and spawns a scheduler process in every database where the extension is installed.

time_series.bgw_launcher_poll_time

  • Variable Type: Integer

  • Default Value: 60000 (milliseconds)

  • Setting Category: sighup

  • Description: Sets how often the launcher process of the time_series extension polls pg_database. It bounds how long after an extension is created or dropped the launcher takes to spawn or reap the corresponding scheduler process.

time_series.bgw_log_level

  • Variable Type: Enum

  • Default Value: warning

  • Setting Category: superuser

  • Description: Sets the log level of the background job subsystem of the time_series extension, covering the scheduler and job workers. A configuration reload is required for a change to take effect.

time_series.bgw_scheduler_restart_time

  • Variable Type: Integer

  • Default Value: -1 (seconds)

  • Setting Category: sighup

  • Description: Sets how long the postmaster waits before respawning a scheduler process that exited abnormally. The default of -1 means the postmaster does not restart it, and recovery is left to the polling loop of the launcher.

time_series.cagg_default_max_retries

  • Variable Type: Integer

  • Default Value: -1

  • Setting Category: user

  • Description: Sets the default retry count for continuous aggregate refresh jobs. -1 means the retry count is not limited.

time_series.cagg_default_max_runtime

  • Variable Type: String

  • Default Value: 0

  • Setting Category: user

  • Description: Sets the default maximum runtime for continuous aggregate refresh jobs. 0 means the runtime is not limited.

time_series.chunk_append_max_chunks

  • Variable Type: Integer

  • Default Value: 64

  • Setting Category: user

  • Description: Sets the maximum number of subplans a ChunkAppend plan node may build. When the time range of a query covers more chunks than this value, the plan falls back to a plain ChunkScan.

time_series.debug_bgw_scheduler_exit_status

  • Variable Type: Integer

  • Default Value: 0

  • Setting Category: sighup

  • Description: A debugging parameter that specifies the exit status returned by the scheduler process.

time_series.enable_cagg_create

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether continuous aggregates can be created. When set to off, a CREATE MATERIALIZED VIEW statement carrying WITH (time_series.continuous) is rejected.

time_series.enable_chunk_append

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether a ChunkAppend plan node is generated for bucketed queries that order by time and carry a LIMIT. The node pulls subplans one chunk at a time and stops once the LIMIT above is satisfied, so later chunks are never scanned.

time_series.materializations_per_refresh_window

  • Variable Type: Integer

  • Default Value: 10

  • Setting Category: user

  • Description: Sets the number of materialization batches within a single refresh window of a continuous aggregate.

time_series.max_background_workers

  • Variable Type: Integer

  • Default Value: 16

  • Setting Category: postmaster

  • Description: Sets the upper bound on background processes the time_series extension may hold, covering the launcher and the per-database schedulers. The value should be at least 1 (the launcher) plus the number of databases where the extension is installed.

time_series.max_jobs_per_scheduler

  • Variable Type: Integer

  • Default Value: 16

  • Setting Category: postmaster

  • Description: Sets the maximum number of job workers a single scheduler process may spawn concurrently. Setting it to 0 disables the worker pool entirely. This parameter differs from time_series.max_background_workers, which caps the launcher and scheduler processes themselves.

time_series.shutdown_bgw_scheduler

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: sighup

  • Description: When set to on and the configuration is reloaded, the scheduler process exits. The scheduler restarts after about a minute, so this parameter cannot keep background jobs stopped.

TimeZone

  • Variable Type: String

  • Default Value: GMT

  • Setting Category: user

  • Description: Sets the time zone used by SynxDB for displaying and interpreting timestamp values.

timezone_abbreviations

  • Variable Type: String

  • Default Value: Default

  • Setting Category: user

  • Description: Selects the file that defines the set of time zone abbreviations that will be accepted when interpreting timestamps.

trace_recovery_messages

  • Variable Type: Enum

  • Default Value: log

  • Value Range: debug5, debug4, debug3, debug2, debug1, log, notice, warning, error

  • Setting Category: sighup

  • Description: Enables logging of recovery-related debugging information at the specified level. Each level includes all the levels that follow it in the list, and setting a later level results in fewer messages being emitted.

track_activities

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: superuser

  • Description: Enables collection of information on the command currently being executed by each session, along with the time at which that command began execution.

track_activity_query_size

  • Variable Type: Integer

  • Default Value: 1024

  • Unit: B

  • Value Range: [100,1048576]

  • Setting Category: postmaster

  • Description: Sets the number of bytes reserved to store the current query text for each session in pg_stat_activity.

track_commit_timestamp

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: postmaster

  • Description: Controls whether the commit time of each transaction is recorded.

track_counts

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: superuser

  • Description: Enables collection of statistics on database activity, such as table and index access counts.

track_functions

  • Variable Type: Enum

  • Default Value: none

  • Value Range: none, pl, all

  • Setting Category: superuser

  • Description: Controls whether SynxDB collects function-level call-count and timing statistics. Set to pl to track only procedural-language functions, or all to also track SQL and C-language functions, in addition to their internal calls.

track_io_timing

  • Parameter Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Used to collect timing statistics for database I/O activities. When enabled, the system records I/O operation durations during statement execution, which is useful for performance analysis and bottleneck identification. This parameter is off by default and can only be set by superusers.

track_wal_io_timing

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: superuser

  • Description: Controls whether SynxDB collects timing statistics for WAL (write-ahead log) I/O activity, which can be observed through the relevant statistics views.

transaction_deferrable

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether a read-only serializable transaction is deferred until it can run with no possible serialization failures. This setting has no effect on transactions that are not both SERIALIZABLE and READ ONLY.

transaction_isolation

  • Variable Type: Enum

  • Default Value: read committed

  • Value Range: serializable, repeatable read, read committed, read uncommitted

  • Setting Category: user

  • Description: Sets the isolation level of the current transaction. This setting takes effect only when set before a transaction starts, or at the very beginning of the transaction.

transaction_read_only

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Sets the read-only status of the current transaction. Once set to on within a transaction, it cannot be changed back to off for the remainder of that transaction.

transform_null_equals

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether expressions of the form expr = NULL (or NULL = expr) are treated as expr IS NULL, returning true when expr evaluates to null and false otherwise. Per the SQL standard, the correct behavior of expr = NULL is to always return null (unknown), so this setting should be used only for compatibility with applications that rely on the older, non-standard behavior.

unix_socket_directories

  • Variable Type: String

  • Default Value: /tmp

  • Setting Category: postmaster

  • Description: Specifies the directories where the server creates Unix-domain sockets for accepting client connections. Multiple directories can be specified as a comma-separated list.

unix_socket_group

  • Variable Type: String

  • Default Value: ‘’

  • Setting Category: postmaster

  • Description: Sets the owning group of the Unix-domain socket. The owning user of the socket is always the user that starts the server; this setting only affects the group ownership, and an empty value means using the default group of the server-starting user.

unix_socket_permissions

  • Variable Type: Integer

  • Default Value: 511

  • Value Range: [0,511]

  • Setting Category: postmaster

  • Description: Sets the access permissions of the Unix-domain socket, following the usual Unix file system permission model. The value is expected to be a numeric mode specification in the form accepted by the chmod and umask system calls; to use the customary octal format, the number must start with a 0.

update_process_title

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: superuser

  • Description: Controls whether the server updates the process title every time it receives a new SQL command from a client, so the currently active command is visible in process listing tools such as ps.

vacuum_cost_delay

  • Variable Type: Real

  • Default Value: 0

  • Unit: ms

  • Value Range: [0,100]

  • Setting Category: user

  • Description: Sets the amount of time that VACUUM sleeps after it has accumulated cost equal to vacuum_cost_limit. When set to a value greater than zero, this throttles the I/O impact of vacuum operations on other database activity.

vacuum_cost_limit

  • Variable Type: Integer

  • Default Value: 200

  • Value Range: [1,10000]

  • Setting Category: user

  • Description: Sets the accumulated cost that triggers VACUUM to sleep for the duration specified by vacuum_cost_delay, allowing the vacuum cost-based delay feature to throttle its I/O impact.

vacuum_cost_page_dirty

  • Variable Type: Integer

  • Default Value: 20

  • Value Range: [0,10000]

  • Setting Category: user

  • Description: Sets the estimated cost charged when VACUUM modifies a block that was previously clean, used together with vacuum_cost_limit and vacuum_cost_delay to throttle vacuum I/O impact.

vacuum_cost_page_hit

  • Variable Type: Integer

  • Default Value: 1

  • Value Range: [0,10000]

  • Setting Category: user

  • Description: Sets the estimated cost charged when VACUUM finds a page already present in the shared buffer cache, used together with vacuum_cost_limit and vacuum_cost_delay to throttle vacuum I/O impact.

vacuum_cost_page_miss

  • Variable Type: Integer

  • Default Value: 2

  • Value Range: [0,10000]

  • Setting Category: user

  • Description: Sets the estimated cost charged when VACUUM must read a page that is not found in the shared buffer cache, used together with vacuum_cost_limit and vacuum_cost_delay to throttle vacuum I/O impact.

vacuum_defer_cleanup_age

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,1000000]

  • Setting Category: sighup

  • Description: Specifies the number of transactions by which VACUUM and HOT (heap-only tuple) cleanup operations are deferred.

vacuum_failsafe_age

  • Variable Type: Integer

  • Default Value: 1600000000

  • Value Range: [0,2100000000]

  • Setting Category: user

  • Description: Specifies the transaction ID age at which VACUUM triggers its failsafe mechanism to avoid a transaction ID wraparound outage.

vacuum_freeze_min_age

  • Variable Type: Integer

  • Default Value: 50000000

  • Value Range: [0,1000000000]

  • Setting Category: user

  • Description: Specifies the minimum transaction ID age at which VACUUM freezes a table row.

vacuum_freeze_table_age

  • Variable Type: Integer

  • Default Value: 150000000

  • Value Range: [0,2000000000]

  • Setting Category: user

  • Description: Specifies the transaction ID age at which VACUUM scans the entire table to freeze tuples.

vacuum_multixact_failsafe_age

  • Variable Type: Integer

  • Default Value: 1600000000

  • Value Range: [0,2100000000]

  • Setting Category: user

  • Description: Specifies the multixact ID age at which VACUUM triggers its failsafe mechanism to avoid a multixact ID wraparound outage.

vacuum_multixact_freeze_min_age

  • Variable Type: Integer

  • Default Value: 5000000

  • Value Range: [0,1000000000]

  • Setting Category: user

  • Description: Specifies the minimum multixact ID age at which VACUUM freezes a MultiXactId found in a table row.

vacuum_multixact_freeze_table_age

  • Variable Type: Integer

  • Default Value: 150000000

  • Value Range: [0,2000000000]

  • Setting Category: user

  • Description: Specifies the multixact ID age at which VACUUM scans the entire table to freeze tuples.

vector.backpressure_memory_mb

  • Variable Type: Integer

  • Default Value: 256

  • Unit: MB

  • Value Range: [1,8192]

  • Setting Category: user

  • Description: Sets the memory budget, in MB, for each SinkNode queue that vectorized execution uses for backpressure in vectorized execution. SynxDB calculates the watermarks for the batch count automatically from this value and the width of the schema. This parameter takes effect only when vectorization is enabled.

vector.control_global_memory_resource

  • Variable Type: Integer

  • Default Value: 1

  • Value Range: [1,10]

  • Setting Category: user

  • Description: Sets the global upper limit on execution resources allocated for vectorized query processing in SynxDB.

vector.control_memory_resource

  • Variable Type: Integer

  • Default Value: 6

  • Value Range: [1,8]

  • Setting Category: user

  • Description: Sets the minimum level of execution resources allocated for vectorized query processing.

vector.enable_partition_topk

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: With vectorization enabled, controls whether a query whose windows all have a PARTITION BY is forced to use sort-based window aggregation. With on, such a query uses sort-based window aggregation, and when it carries a Top-K qualification, Partition Top-K first prunes each partition down to its candidate rows. With off, the optimizer can switch to hash-based window aggregation (WindowHashAgg), subject to vector.enable_window_hash_agg. Under hash-based window aggregation, rank() can return wrong ranks, so keep the default value. For details, see Execution methods for window functions.

vector.enable_sonic_hashjoin

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether a vectorized hash join can run on the Sonic join engine. When enabled, the hash join runs on the Sonic engine if the join type, the equi-key column types, and the output column types are all supported. When disabled, the join always takes the regular Arrow hash join path, which lets you compare the performance of the two engines. This parameter takes effect only when vectorization is enabled.

vector.enable_vec_pipeline

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether vectorized scan nodes use pipeline execution mode. This parameter takes effect only when vectorization is enabled.

vector.enable_vector_memory_resource

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether execution resource management is enabled for vectorized query processing.

vector.enable_vector_optimizer

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the optimizer considers execution plans that are better suited for vectorized execution.

vector.enable_vectorization

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the planner can generate vectorized execution plans. Enabling this parameter also sets gp_interconnect_queue_depth and gp_interconnect_snd_queue_depth to 4096, restoring them to their default values when vectorization is disabled.

vector.enable_window_hash_agg

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: user

  • Description: With vectorization enabled, controls whether the optimizer can use hash-based window aggregation (WindowHashAgg) for window functions. With off, all window functions use sort-based window aggregation. When vector.enable_partition_topk is on, a query whose windows all have a PARTITION BY never uses hash-based window aggregation, so this parameter only affects windows without a PARTITION BY. Under hash-based window aggregation, rank() can return wrong ranks, so set this parameter to off for queries that use rank(). For details, see Execution methods for window functions.

vector.force_vectorization

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Forces the planner to use vectorized execution plans. If the current optimizer cannot produce a vectorized plan, the planner switches to the other optimizer to regenerate one; if neither optimizer can produce a vectorized plan, the plan produced by the originally configured optimizer is used instead.

vector.gather_motion_take

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether vectorized Gather Motion operations use the take optimization.

vector.hashjoin_spill_memory_mb

  • Variable Type: Integer

  • Default Value: 512

  • Unit: MB

  • Value Range: [0, 2147483647]

  • Setting Category: user

  • Description: Sets the memory budget in MB for the vectorized hash join build side. When the estimated hash table size exceeds this value, data is spilled to disk and processed in partitions, preventing out-of-memory failures on large hash joins. Setting to 0 disables spill-to-disk. This parameter only takes effect when vectorization is enabled. For more information, see Vectorization Query Computing.

vector.limit_hashagg_max_total

  • Variable Type: Integer

  • Default Value: 1000

  • Value Range: [0, 10000]

  • Setting Category: user

  • Description: Sets the upper bound on OFFSET + LIMIT for which the vectorized executor applies the Limit+HashAgg early-stop optimization. When GROUP BY feeds directly into LIMIT without ORDER BY in between, the executor tracks only the first N groups instead of building the full hash table, which significantly speeds up “top-N by group” queries. The optimization applies only when both LIMIT and any OFFSET are constant integer literals and OFFSET + LIMIT is between 1 and the value of this parameter. Setting to 0 disables the optimization. This parameter only takes effect when vectorization is enabled. For more information, see Vectorization Query Computing.

vector.max_batch_size

  • Variable Type: Integer

  • Default Value: 16384

  • Value Range: [0,163840]

  • Setting Category: user

  • Description: Sets the maximum number of rows that the vectorized executor processes in a single batch.

vector.min_concatenate_rows

  • Variable Type: Integer

  • Default Value: 16384

  • Value Range: [0,65536]

  • Setting Category: user

  • Description: Sets the minimum number of rows required before the vectorized executor concatenates motion output batches.

vector.min_redistribute_handle_rows

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,163840]

  • Setting Category: user

  • Description: Sets the minimum number of rows that triggers redistribute-based handling in vectorized motion operations.

vector.partition_top_k

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,10000000]

  • Setting Category: user

  • Description: Sets the number of top rows the vectorized WindowAgg sort operator selects per partition, allowing it to use a partial (top-k) sort instead of sorting the entire partition.

vector.partition_topk_require_topk_qual

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the vectorized executor builds a Partition Top-K plan for a window query only when the query carries a Top-K qualification, that is, when <= or < constrains the output of rank(), dense_rank(), or row_number(). With the default off, a window query whose windows all have a PARTITION BY uses a sort-based window plan. With on, a window query without a Top-K qualification uses hash-based window aggregation (WindowHashAgg) instead. Such a query is usually slower, and rank() in it can return wrong ranks. For details, see Execution methods for window functions. Use this parameter to separate the hash window from the sorted one during investigation, and keep the default for normal use.

vector.pool_threads

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,64]

  • Setting Category: user

  • Description: Sets the number of threads used in the vectorized execution thread pool. 0 disables the thread pool. The value 1 is treated as 0, because a one-thread pool has no second thread to drain its own queue. Set this parameter to at least 2 for threaded execution.

vector.print_fallback_log

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether SynxDB prints a log message when a query falls back from the vectorized execution path to the regular execution path.

vector.sonic_motion_direct_send

  • Variable Type: Bool

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the vectorized executor applies direct-send routing between a hash aggregate and a redistribute Motion. When enabled, the hash aggregate attaches a segment tag to each output batch so the Motion forwards the batch as-is instead of rehashing every row, lowering latency on distributed analytic queries that span segments. The optimization applies only when a hash redistribute Motion sits directly above a vectorized hash aggregate, the cluster has more than one segment, every redistribution key column is one of smallint, integer, bigint, text, timestamp, time, or date, and the redistribution key is a subset of the GROUP BY columns. This parameter only takes effect when vectorization is enabled. For more information, see Vectorization Query Computing.

vector.sonicagg_spill_memory_mb

  • Variable Type: Integer

  • Default Value: 512

  • Unit: MB

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the memory budget, in MB, for spilling the Sonic hash aggregate to disk. When the partition state in memory exceeds this value, SynxDB spills partitions to disk. Setting this parameter to 0 disables the disk spill. This parameter takes effect only when vectorization is enabled.

vector.sort_external_batch_size

  • Variable Type: Integer

  • Default Value: 65536

  • Value Range: [1,100000000]

  • Setting Category: user

  • Description: Sets the number of rows processed per run when vectorized external sort is enabled.

vector.sort_external_max_rows

  • Variable Type: Integer

  • Default Value: 65536

  • Value Range: [1,100000000]

  • Setting Category: user

  • Description: Sets the maximum number of rows that vectorized sort keeps in memory before spilling to external files on disk.

vector.sort_external_num_threads

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,1024]

  • Setting Category: user

  • Description: Sets the number of worker threads used for vectorized external sort. A value of 0 causes the underlying Arrow library to use its own default thread count.

vector.sort_external_temp_file_base

  • Variable Type: String

  • Default Value: ‘’

  • Setting Category: superuser

  • Description: Specifies an optional base path where vectorized external sort writes its spill files. When left empty, the default temporary file location is used.

vector.sort_use_external_sort

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Enables Arrow file-based external sort in vectorized sort execution paths, allowing sort operations that exceed available memory to spill to disk.

vector.take_thread_num

  • Variable Type: Integer

  • Default Value: 0

  • Value Range: [0,10000000]

  • Setting Category: user

  • Description: Sets the number of threads used when performing a vectorized “take” (top-N row selection) operation during sort.

vector.topk_bound_threshold

  • Variable Type: Integer

  • Default Value: 2000

  • Value Range: [0, 10000000]

  • Setting Category: user

  • Description: Sets the maximum K value for which the vectorized executor replaces a Sort operator under a Limit with a TopK operator that maintains a bounded heap of the best K rows. When LIMIT + OFFSET is less than or equal to this threshold, the executor builds a TopK node instead of fully sorting the input. When LIMIT + OFFSET exceeds this threshold, or when the plan shape is Limit → Result → Sort, the executor falls back to OrderByNode followed by SelectK. A non-zero OFFSET produces the Limit → Result → Sort plan shape, so a query that uses OFFSET falls back even when LIMIT + OFFSET stays within the threshold; in practice, TopK applies to LIMIT-only queries. Setting this parameter to 0 disables the optimization. This parameter only takes effect when vectorization is enabled. For more information, see Run Vectorized Queries.

vector.topk_runtime_filter

  • Variable Type: Bool

  • Default Value: on

  • Setting Category: user

  • Description: Controls whether the vectorized executor pushes the current TopK heap threshold down to PAX scans so that PAX scans skip entire row groups whose column min/max statistics fall outside the threshold. This parameter applies to ORDER BY ... LIMIT N queries on PAX tables that run under the vectorized executor. Turn it off only to diagnose result discrepancies or to compare execution without group-level skipping. For more information, see Vectorization Query Computing.

vector.two_phase_take

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: user

  • Description: Controls whether the vectorized “take” (top-N row selection) operation runs in two phases.

vector.winagg_spill_memory_mb

  • Variable Type: Integer

  • Default Value: 512

  • Unit: MB

  • Value Range: [0, 2147483647]

  • Setting Category: user

  • Description: Sets the memory budget in MB for the vectorized window aggregate (WindowHashAgg) spill operation. When the estimated memory usage for window aggregation exceeds this value, data is spilled to disk and processed in partitions, preventing out-of-memory failures on large window queries. Setting to 0 disables spill-to-disk. This parameter only takes effect when vectorization and the GPORCA optimizer are enabled, because the WindowHashAgg operator is generated only by GPORCA. For more information, see Vectorization Query Computing.

wait_for_replication_threshold

  • Variable Type: Integer

  • Default Value: 1024

  • Unit: kB

  • Value Range: [0,2147483647]

  • Setting Category: sighup

  • Description: Sets the maximum amount of WAL a transaction can write before it must wait for replication to catch up, preventing the primary from getting too far ahead of standbys and limiting replication lag. Setting this value to 0 disables the behavior.

wal_block_size

  • Variable Type: Integer

  • Default Value: 32768

  • Value Range: [32768,32768]

  • Setting Category: internal

  • Description: Shows the block size used by the write-ahead log. This is a read-only, compile-time value and cannot be changed.

wal_buffers

  • Variable Type: Integer

  • Default Value: -1

  • Unit: 32kB

  • Value Range: [-1,65535]

  • Setting Category: postmaster

  • Description: Sets the number of disk-page buffers in shared memory used for WAL data. A value of -1, the default, causes the system to select a size automatically based on shared_buffers.

wal_compression

  • Variable Type: Bool

  • Default Value: on

  • Setting Category: superuser

  • Description: Enables compression of full page writes in WAL files.

wal_consistency_checking

  • Variable Type: String

  • Default Value: ‘’ (empty string)

  • Setting Category: superuser

  • Description: Specifies the WAL resource managers for which consistency checks are performed. When enabled for a resource manager, full-page images are logged for all its data blocks and cross-checked against the results of WAL replay.

wal_init_zero

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: superuser

  • Description: Controls whether new WAL files are filled with zeroes before they are used for the first time.

wal_keep_size

  • Parameter Type: integer

  • Value Range: 0 - 2147483647 (in MB)

  • Default Value: 320

  • Setting Category: sighup

  • Description: Specifies the maximum size of WAL files to retain for standby servers.

wal_level

  • Variable Type: Enum

  • Default Value: replica

  • Value Range: minimal, replica, logical

  • Setting Category: postmaster

  • Description: Determines how much information is written to the write-ahead log (WAL), controlling the level of detail available for crash recovery, physical replication, and logical decoding.

wal_log_hints

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: postmaster

  • Description: Causes a full-page image to be written to WAL the first time a page is modified after a checkpoint, even for modifications that would not otherwise require WAL logging.

wal_receiver_create_temp_slot

  • Variable Type: Boolean

  • Default Value: off

  • Setting Category: sighup

  • Description: Determines whether the WAL receiver creates a temporary replication slot on the sending server when no permanent replication slot has been configured.

wal_receiver_status_interval

  • Variable Type: Integer

  • Default Value: 10

  • Unit: s

  • Value Range: [0,2147483]

  • Setting Category: sighup

  • Description: Sets the maximum interval at which the WAL receiver sends status reports to the sending server.

wal_receiver_timeout

  • Variable Type: Integer

  • Default Value: 60000

  • Unit: ms

  • Value Range: [0,2147483647]

  • Setting Category: sighup

  • Description: Sets the maximum time that the WAL receiver waits for data from the sending server before treating the connection as broken.

wal_recycle

  • Variable Type: Boolean

  • Default Value: on

  • Setting Category: superuser

  • Description: Controls whether old WAL files are recycled by renaming them for reuse instead of being removed and newly created.

wal_retrieve_retry_interval

  • Variable Type: Integer

  • Default Value: 5000

  • Unit: ms

  • Value Range: [1,2147483647]

  • Setting Category: sighup

  • Description: Sets the time to wait before retrying to retrieve WAL data after a failed attempt, whether the WAL is retrieved from a WAL sender, an archive, or a restore command.

wal_segment_size

  • Variable Type: Integer

  • Default Value: 67108864

  • Unit: B

  • Value Range: [1048576,1073741824]

  • Setting Category: internal

  • Description: Shows the size of each write-ahead log segment file. This value is fixed when the database cluster is initialized and cannot be changed afterward.

wal_sender_timeout

  • Variable Type: Integer

  • Default Value: 300000

  • Unit: ms

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the maximum time to wait for a reply from a WAL replication client before terminating the replication connection.

wal_skip_threshold

  • Variable Type: Integer

  • Default Value: 2048

  • Unit: kB

  • Value Range: [0,2147483647]

  • Setting Category: user

  • Description: Sets the minimum size of a new file created during certain bulk operations, below which the data is written to WAL instead of being persisted through a separate fsync.

wal_writer_delay

  • Variable Type: Integer

  • Default Value: 200

  • Unit: ms

  • Value Range: [1,10000]

  • Setting Category: sighup

  • Description: Sets the interval between the periodic WAL flushes performed by the WAL writer background process.

wal_writer_flush_after

  • Variable Type: Integer

  • Default Value: 32

  • Unit: 32kB

  • Value Range: [0,2147483647]

  • Setting Category: sighup

  • Description: Sets the amount of WAL data, measured in units of 32kB, that the WAL writer process can write before it is forced to perform a flush to disk.

work_mem

  • Value Range: Integer in kilobytes

  • Default Value: 32MB

  • Setting Category: coordinator, session, reload

  • Description: Specifies the maximum amount of memory that can be used by each query operation (such as sort or hash table) before writing to temporary disk files. If no unit is specified for this parameter, it defaults to kilobytes. The default value is 32MB.

    In complex queries, multiple sort or hash operations might be executed in parallel, each of which can use the amount of memory specified by work_mem before writing to temporary files. In addition, multiple sessions might perform these operations at the same time, so the total memory consumption might be much higher than the value of work_mem itself. Consider this behavior when choosing the value for this parameter.

    work_mem affects these operations: sort operations for ORDER BY, DISTINCT, and merge joins; hash tables for hash joins, hash aggregates, and processing IN subqueries; bitmap index scans; and tuple store-based operations such as function scans, CTEs, PL/pgSQL, and management UDFs.

    In addition to allocating memory for specific execution operators, work_mem also affects the PostgreSQL optimizer’s preference for certain query plans. Note that work_mem is independent of the resource queue and resource group memory management mechanisms. It takes effect at the query level and is not affected by resource queue or resource group memory limits.

writable_external_table_bufsize

  • Variable Type: Integer

  • Default Value: 1024

  • Unit: kB

  • Value Range: [32,131072]

  • Setting Category: user

  • Description: Sets the buffer size (in kB) for writing to gpfdist before writing to writable external tables.

xmlbinary

  • Variable Type: Enum

  • Default Value: base64

  • Value Range: base64, hex

  • Setting Category: user

  • Description: Determines how binary values are encoded when they are converted to the xml data type in SynxDB.

xmloption

  • Variable Type: Enum

  • Default Value: content

  • Value Range: content, document

  • Setting Category: user

  • Description: Determines how SynxDB interprets XML data supplied to implicit parsing and serialization operations, treating it either as a well-formed XML document or as a content fragment that need not have a single root element.