BE Configuration - Query and Loading
Some BE configuration items are dynamic parameters which you can set interactively when BE nodes are online. The rest of them are static parameters. You can only set the static parameters of a BE node by changing them in the corresponding configuration file be.conf and restarting the BE node to allow the change to take effect.
View BE configuration itemsβ
You can view the BE configuration items using the following command:
SELECT * FROM information_schema.be_configs [WHERE NAME LIKE "%<name_pattern>%"]
Configure BE parametersβ
Configure BE dynamic parametersβ
You can configure a dynamic parameter of a BE node by updating the value in information_schema.be_configs.
Setting an invalid value may cause unknown behaviors. Check twice before you run the command to update the configuration.
-- Replace <config_key> with the key of the configuration and <config_value> with the value.
UPDATE information_schema.be_configs SET VALUE = <config_value> WHERE name = "<config_key>";
Configure BE static parametersβ
You can only set the static parameters of a BE by changing them in the corresponding configuration file be.conf, and restarting the BE to allow the changes to take effect.
This topic introduces the following types of FE configurations:
Queryβ
clear_udf_cache_when_startβ
- Default: false
- Type: Boolean
- Unit: -
- Is mutable: No
- Description: When enabled, the BE's UserFunctionCache will clear all locally cached user function libraries on startup. During UserFunctionCache::init, the code calls _reset_cache_dir(), which removes UDF files from the configured UDF library directory (organized into kLibShardNum subdirectories) and deletes files with Java/Python UDF suffixes (.jar/.py). When disabled (default), the BE loads existing cached UDF files instead of deleting them. Enabling this forces UDF binaries to be re-downloaded on first use after restart (increasing network traffic and first-use latency).
- Introduced in: v4.0.0
dictionary_speculate_min_chunk_sizeβ
- Default: 10000
- Type: Int
- Unit: Rows
- Is mutable: No
- Description: Minimum number of rows (chunk size) used by StringColumnWriter and DictColumnWriter to trigger dictionary-encoding speculation. If an incoming column (or the accumulated buffer plus incoming rows) has size larger than or equal
dictionary_speculate_min_chunk_sizethe writer will run speculation immediately and set an encoding (DICT, PLAIN or BIT_SHUFFLE) rather than buffering more rows. Speculation usesdictionary_encoding_ratiofor string columns anddictionary_encoding_ratio_for_non_string_columnfor numeric/non-string columns to decide whether dictionary encoding is beneficial. Also, a large column byte_size (larger than or equal to UINT32_MAX) forces immediate speculation to avoidBinaryColumn<uint32_t>overflow. - Introduced in: v3.2.0
disable_storage_page_cacheβ
- Default: false
- Type: Boolean
- Unit: -
- Is mutable: Yes
- Description: A boolean value to control whether to disable PageCache.
- When PageCache is enabled, StarRocks caches the recently scanned data.
- PageCache can significantly improve the query performance when similar queries are repeated frequently.
trueindicates disabling PageCache.- The default value of this item has been changed from
truetofalsesince StarRocks v2.4.
- Introduced in: -
enable_bitmap_index_memory_page_cacheβ
- Default: true
- Type: Boolean
- Unit: -
- Is mutable: Yes
- Description: Whether to enable memory cache for Bitmap index. Memory cache is recommended if you want to use Bitmap indexes to accelerate point queries.
- Introduced in: v3.1
enable_compaction_flat_jsonβ
- Default: True
- Type: Boolean
- Unit:
- Is mutable: Yes
- Description: Whether to enable compaction for Flat JSON data.
- Introduced in: v3.3.3
enable_json_flatβ
- Default: false
- Type: Boolean
- Unit:
- Is mutable: Yes
- Description: Whether to enable the Flat JSON feature. After this feature is enabled, newly loaded JSON data will be automatically flattened, improving JSON query performance.
- Introduced in: v3.3.0
enable_lazy_dynamic_flat_jsonβ
- Default: True
- Type: Boolean
- Unit:
- Is mutable: Yes
- Description: Whether to enable Lazy Dyamic Flat JSON when a query misses Flat JSON schema in read process. When this item is set to
true, StarRocks will postpone the Flat JSON operation to calculation process instead of read process. - Introduced in: v3.3.3
enable_ordinal_index_memory_page_cacheβ
- Default: true
- Type: Boolean
- Unit: -
- Is mutable: Yes
- Description: Whether to enable memory cache for ordinal index. Ordinal index is a mapping from row IDs to data page positions, and it can be used to accelerate scans.
- Introduced in: -
enable_string_prefix_zonemapβ
- Default: true
- Type: Boolean
- Unit: -
- Is mutable: Yes
- Description: Whether to enable ZoneMap for string (CHAR/VARCHAR) columns using prefix-based min/max. For non-key string columns, the min/max values are truncated to a fixed prefix length configured by
string_prefix_zonemap_prefix_len. - Introduced in: -
enable_zonemap_index_memory_page_cacheβ
- Default: true
- Type: Boolean
- Unit: -
- Is mutable: Yes
- Description: Whether to enable memory cache for zonemap index. Memory cache is recommended if you want to use zonemap indexes to accelerate scan.
- Introduced in: -
exchg_node_buffer_size_bytesβ
- Default: 10485760
- Type: Int
- Unit: Bytes
- Is mutable: Yes
- Description: The maximum buffer size on the receiver end of an exchange node for each query. This configuration item is a soft limit. A backpressure is triggered when data is sent to the receiver end with an excessive speed.
- Introduced in: -
exec_state_report_max_threadsβ
- Default: 2
- Type: Int
- Unit: Threads
- Is mutable: Yes
- Description: Maximum number of threads for the exec-state-report thread pool. This pool is used by
ExecStateReporterto asynchronously send non-priority execution status reports (such as fragment completion and error status) from BE to FE via RPC. The actual pool size at startup ismax(1, exec_state_report_max_threads). Changing this config at runtime triggersupdate_max_threadson the pool in every executor set (shared and exclusive). The pool has a fixed task queue size of 1000; report submissions are silently dropped when all threads are busy and the queue is full. Paired withpriority_exec_state_report_max_threadsfor the high-priority pool. Increase this value when delayed or dropped exec-state reports are observed under high query concurrency. - Introduced in: v4.1.0, v4.0.8, v3.5.15