The backend node (BE) reads configuration from be.conf at startup. Starting from V0.14, a second file, be_custom.conf, stores configuration items applied dynamically and persisted across restarts. When the same key appears in both files, be_custom.conf takes precedence.
Both files default to the conf/ directory under the BE deployment path. To protect be_custom.conf from being overwritten during upgrades, set custom_config_dir to a separate directory.
View the current configuration
Open the following URL in a browser to see all active configuration items:
http://<be_host>:<be_webserver_port>/varz
Apply configuration items
Configuration items can be applied statically at startup or dynamically while the BE is running.
Apply a static configuration item
Add the item to be.conf, then restart the BE. Items not present in be.conf use their default values.
Example — set max_base_compaction_concurrency to 5:
-
Add
max_base_compaction_concurrency=5tobe.conf. -
Restart the BE.
Apply a dynamic configuration item
Apply a configuration item to a running BE without restarting:
curl -X POST "http://<be_ip>:<be_http_port>/api/update_config?<key>=<value>"
A successful response looks like:
{
"status": "OK",
"msg": ""
}
In V0.13 and earlier, dynamically applied items are lost when the BE restarts. In V0.14 and later, add &persist=true to write the item to be_custom.conf so it survives restarts:
curl -X POST "http://<be_ip>:<be_http_port>/api/update_config?<key>=<value>&persist=true"
Example — dynamically set streaming_load_max_mb to 1024 and persist it:
curl -X POST "http://<be_ip>:<be_http_port>/api/update_config?streaming_load_max_mb=1024&persist=true"
Setting an invalid value can cause unexpected behavior. Verify the value before running the command on a production node.
Configuration items
Parameters are grouped by functional area. Items marked Dynamic: Yes can be applied without restarting the BE using the dynamic configuration command above.
Compaction
alter_tablet_worker_count
| Property | Value |
|---|---|
| Default | 3 |
| Dynamic | No |
Number of threads for schema change operations.
generate_compaction_tasks_min_interval_ms
| Property | Value |
|---|---|
| Default | 10 |
| Unit | Milliseconds |
| Dynamic | No |
Minimum interval between two consecutive compaction task generations.
enable_vectorized_compaction
| Property | Value |
|---|---|
| Default | true |
| Type | Boolean |
| Dynamic | No |
Whether to enable vectorized compaction.
base_compaction_interval_seconds_since_last_operation
| Property | Value |
|---|---|
| Default | 86400 (24 hours) |
| Unit | Seconds |
| Dynamic | No |
Elapsed time since the last base compaction. This is one of the conditions that trigger base compaction.
base_compaction_num_cumulative_deltas
| Property | Value |
|---|---|
| Default | 5 |
| Dynamic | No |
Maximum number of cumulative files before base compaction is triggered. This is one of the trigger conditions for base compaction.
base_compaction_write_mbytes_per_sec
| Property | Value |
|---|---|
| Default | 5 |
| Unit | MB/s |
| Dynamic | No |
Maximum disk write speed for a single base compaction task.
base_cumulative_delta_ratio
| Property | Value |
|---|---|
| Default | 0.3 |
| Dynamic | No |
Ratio of cumulative file sizes to base file sizes. When the ratio reaches this threshold, base compaction is triggered. This is one of the trigger conditions for base compaction.
base_compaction_trace_threshold
| Property | Value |
|---|---|
| Default | 10 |
| Type | int32 |
| Unit | Seconds |
| Dynamic | No |
Time threshold for logging base compaction trace information. When a base compaction task runs longer than this value, its trace is written to the log. Set to a higher value to reduce log volume in busy environments.
The trace log entry looks like:
W0610 11:26:33.804431 56452 storage_engine.cpp:552] Trace:
0610 11:23:03.727535 (+ 0us) storage_engine.cpp:554] start to perform base compaction
0610 11:23:03.728961 (+ 1426us) storage_engine.cpp:560] found best tablet 546859
0610 11:23:03.728963 (+ 2us) base_compaction.cpp:40] got base compaction lock
0610 11:23:03.729029 (+ 66us) base_compaction.cpp:44] rowsets picked
0610 11:24:51.784439 (+108055410us) compaction.cpp:46] got concurrency lock and start to do compaction
0610 11:24:51.784818 (+ 379us) compaction.cpp:74] prepare finished
0610 11:26:33.359265 (+101574447us) compaction.cpp:87] merge rowsets finished
0610 11:26:33.484481 (+125216us) compaction.cpp:102] output rowset built
0610 11:26:33.484482 (+ 1us) compaction.cpp:106] check correctness finished
0610 11:26:33.513197 (+ 28715us) compaction.cpp:110] modify rowsets finished
0610 11:26:33.513300 (+ 103us) base_compaction.cpp:49] compaction finished
0610 11:26:33.513441 (+ 141us) base_compaction.cpp:56] unused rowsets have been moved to GC queue
Metrics: {"filtered_rows":0,"input_row_num":3346807,"input_rowsets_count":42,"input_rowsets_data_size":1256413170,"input_segments_num":44,"merge_rowsets_latency_us":101574444,"merged_rows":0,"output_row_num":3346807,"output_rowset_data_size":1228439659,"output_segments_num":6}
disable_auto_compaction
| Property | Value |
|---|---|
| Default | false |
| Type | Boolean |
| Dynamic | No |
Whether to disable automatic compaction. Disable only in debugging or test environments where you want to trigger compaction manually.
disable_compaction_trace_log
| Property | Value |
|---|---|
| Default | true |
| Type | Boolean |
| Dynamic | No |
Whether to disable compaction trace logging. When set to true, the cumulative_compaction_trace_threshold and base_compaction_trace_threshold items have no effect.
check_auto_compaction_interval_seconds
| Property | Value |
|---|---|
| Default | 5 |
| Type | int32 |
| Unit | Seconds |
| Dynamic | No |
Interval at which the BE checks whether automatic compaction is disabled. Takes effect only when disable_auto_compaction is true.
cumulative_compaction_budgeted_bytes
| Property | Value |
|---|---|
| Default | 104857600 (100 MB) |
| Dynamic | No |
Maximum size of a Singleton file. This is one of the conditions that trigger base compaction.
cumulative_compaction_trace_threshold
| Property | Value |
|---|---|
| Default | 2 |
| Type | int32 |
| Unit | Seconds |
| Dynamic | No |
Time threshold for logging cumulative compaction trace information. Has no effect when disable_compaction_trace_log is true.
cumulative_compaction_rounds_for_each_base_compaction_round
| Property | Value |
|---|---|
| Default | 9 |
| Type | int32 |
| Dynamic | No |
Number of cumulative compaction rounds run before each base compaction round.
cumulative_compaction_policy
| Property | Value |
|---|---|
| Default | size_based |
| Type | String |
| Dynamic | No |
Merge policy for cumulative compaction. Valid values:
-
ordinary— the initial policy. After cumulative compaction, the rowset immediately enters the base compaction stage. -
size_based— an optimized policy. Rowsets are merged only when they are at the same order of magnitude in disk size. A rowset is promoted to base compaction only after it meets the promotion threshold. Reduces write amplification for large numbers of small-batch imports.
cumulative_size_based_promotion_size_mbytes
| Property | Value |
|---|---|
| Default | 1024 |
| Type | int64 |
| Unit | MB |
| Dynamic | No |
When cumulative_compaction_policy is size_based, a cumulative compaction output rowset is promoted to base compaction when its total disk size exceeds this threshold. Keep this below 2048 MB to avoid version backlogs caused by long-running cumulative compaction.
cumulative_size_based_promotion_ratio
| Property | Value |
|---|---|
| Default | 0.05 |
| Type | Double |
| Dynamic | No |
When cumulative_compaction_policy is size_based, a cumulative compaction output rowset is promoted to base compaction when its total disk size exceeds this fraction of the base rowset size. Values between 0.02 and 0.1 work well for most deployments.
cumulative_size_based_promotion_min_size_mbytes
| Property | Value |
|---|---|
| Default | 64 |
| Type | int32 |
| Unit | MB |
| Dynamic | No |
When cumulative_compaction_policy is size_based, a cumulative compaction output rowset smaller than this threshold stays in the cumulative compaction stage and is not promoted to base compaction. Values above 512 MB may prevent base compaction from running.
cumulative_size_based_compaction_lower_size_mbytes
| Property | Value |
|---|---|
| Default | 64 |
| Type | int64 |
| Unit | MB |
| Dynamic | No |
When cumulative_compaction_policy is size_based, rowsets larger than this threshold are split and merged using a level policy; smaller rowsets are merged directly. Values above 128 MB may cause excessive write amplification during cumulative compaction.
compaction_tablet_compaction_score_factor
| Property | Value |
|---|---|
| Default | 1 |
| Type | int32 |
| Dynamic | No |
Weight of the compaction score in the tablet scoring formula used to select a tablet for compaction:
tablet_score = compaction_tablet_scan_frequency_factor × tablet_scan_frequency
+ compaction_tablet_compaction_score_factor × compaction_score
compaction_tablet_scan_frequency_factor
| Property | Value |
|---|---|
| Default | 0 |
| Type | int32 |
| Dynamic | No |
Weight of scan frequency in the tablet scoring formula. Increase this value to prioritize compacting tablets that are scanned frequently.
compaction_task_num_per_disk
| Property | Value |
|---|---|
| Default | 2 |
| Type | int32 |
| Dynamic | No |
Number of compaction tasks run in parallel per hard disk drive (HDD).
compaction_task_num_per_fast_disk
| Property | Value |
|---|---|
| Default | 4 |
| Type | int32 |
| Dynamic | No |
Number of compaction tasks run in parallel per solid-state drive (SSD).
max_base_compaction_threads
| Property | Value |
|---|---|
| Default | 4 |
| Type | int32 |
| Dynamic | No |
Maximum number of threads in the base compaction thread pool.
max_cumu_compaction_threads
| Property | Value |
|---|---|
| Default | 10 |
| Type | int32 |
| Dynamic | No |
Maximum number of threads in the cumulative compaction thread pool.
min_compaction_threads
| Property | Value |
|---|---|
| Default | 10 |
| Type | int32 |
| Dynamic | No |
Minimum number of threads in the compaction thread pool.
min_compaction_failure_interval_sec
| Property | Value |
|---|---|
| Default | 5 |
| Type | int32 |
| Unit | Seconds |
| Dynamic | No |
After a tablet fails to merge during cumulative compaction, the tablet must wait at least this long before it can be selected again.
total_permits_for_compaction_score
| Property | Value |
|---|---|
| Default | 10000 |
| Type | int64 |
| Dynamic | Yes |
Upper limit on the total permits held by all compaction tasks. Controls memory consumption for compaction. Increase this value to allow more concurrent compaction work; decrease it to reduce memory pressure.
row_step_for_compaction_merge_log
| Property | Value |
|---|---|
| Default | 0 |
| Type | int64 |
| Dynamic | Yes |
Number of merged rows between log entries during compaction. Set to 0 to suppress compaction merge logs.
enable_quick_compaction
| Property | Value |
|---|---|
| Default | false |
| Type | Boolean |
| Dynamic | No |
Whether to enable quick compaction. In workloads that import small batches frequently, quick compaction merges imported versions promptly to prevent the -235 error. "Small" is measured by row count, controlled by quick_compaction_max_rows.
quick_compaction_max_rows
| Property | Value |
|---|---|
| Default | 1000 |
| Type | int32 |
| Dynamic | No |
Maximum row count for an import to be considered small and eligible for quick compaction. Requires enable_quick_compaction to be true.
quick_compaction_batch_size
| Property | Value |
|---|---|
| Default | 10 |
| Type | int32 |
| Dynamic | No |
Number of small imports that trigger a quick compaction round.
quick_compaction_min_rowsets
| Property | Value |
|---|---|
| Default | 10 |
| Type | int32 |
| Dynamic | No |
Minimum number of rowsets that must be selected for quick compaction to actually run.
Query and scanning
doris_max_scan_key_num
| Property | Value |
|---|---|
| Default | 1024 |
| Type | int |
| Dynamic | No |
Maximum number of scan key ranges a scan node can generate from query conditions. A higher value increases scanning parallelism but may raise scheduling overhead and slow queries in high-concurrency scenarios. An empirical starting point is 50. In high-concurrency deployments, reduce this value if increased parallelism doesn't help.
doris_scan_range_row_count
| Property | Value |
|---|---|
| Default | 524288 |
| Type | int32 |
| Dynamic | No |
Number of rows per ScanRange when the BE splits a scanning range into multiple ScanRanges. Controls how long a single OlapScanner holds an I/O thread.
doris_scanner_queue_size
| Property | Value |
|---|---|
| Default | 1024 |
| Type | int32 |
| Dynamic | No |
Length of the RowBatch buffer queue between TransferThread and OlapScanner. Doris scans data asynchronously: scanned RowBatches from OlapScanner wait in this queue until TransferThread picks them up.
doris_scanner_row_num
| Property | Value |
|---|---|
| Default | 16384 |
| Dynamic | No |
Maximum rows each scanning thread returns per execution.
doris_scanner_thread_pool_queue_size
| Property | Value |
|---|---|
| Default | 102400 |
| Type | int32 |
| Dynamic | No |
Queue length of the scanner thread pool. When submitted tasks exceed this length, new submissions block until a slot opens.
doris_scanner_thread_pool_thread_num
| Property | Value |
|---|---|
| Default | 48 |
| Type | int32 |
| Dynamic | No |
Number of threads in the scanner thread pool. Determines scanning parallelism. Increase to handle more concurrent scans; too high a value increases scheduling overhead.
doris_scan_range_max_mb
| Property | Value |
|---|---|
| Default | 1024 |
| Type | int32 |
| Unit | MB |
| Dynamic | No |
Maximum amount of data read by each OlapScanner per scan.
doris_max_pushdown_conjuncts_return_rate
| Property | Value |
|---|---|
| Default | 90 |
| Type | int32 |
| Dynamic | No |
During a hash join, the BE pushes join conditions to OlapScanner using dynamic partition pruning. After 32768 rows are scanned, the BE checks the filter rate. If the filter rate falls below this threshold (as a percentage), the BE stops using the dynamic partition clipping condition for filtering.
max_pushdown_conditions_per_column
| Property | Value |
|---|---|
| Default | 1024 |
| Type | int |
| Dynamic | No |
Maximum number of filter conditions that can be pushed down to the storage engine for a single column. Applies mainly to IN predicates (WHERE colA IN (v1, v2, v3, ...)). Increasing this value lets more IN predicate conditions reach the storage engine index, potentially reducing data scanned. However, too many conditions can increase random reads. This item can also be set at the session level.
fragment_pool_queue_size
| Property | Value |
|---|---|
| Default | 2048 |
| Dynamic | No |
Maximum number of concurrent query requests on a single node.
fragment_pool_thread_num_min
| Property | Value |
|---|---|
| Default | 64 |
| Dynamic | No |
Minimum number of threads in the fragment execution thread pool.
fragment_pool_thread_num_max
| Property | Value |
|---|---|
| Default | 256 |
| Dynamic | No |
Maximum number of threads in the fragment execution thread pool. The pool starts with fragment_pool_thread_num_min threads and grows dynamically up to this limit.
enable_partitioned_aggregation
| Property | Value |
|---|---|
| Default | true |
| Type | Boolean |
| Dynamic | No |
Whether the BE uses PartitionAggregateNode for aggregation. When false, AggregationNode is used instead. Keep the default unless directed otherwise.
enable_prefetch
| Property | Value |
|---|---|
| Default | true |
| Type | Boolean |
| Dynamic | No |
Whether to prefetch HashBuckets when using PartitionedHashTable for aggregation and join operations. Keep true for better performance.
enable_quadratic_probing
| Property | Value |
|---|---|
| Default | true |
| Type | Boolean |
| Dynamic | No |
Whether to use quadratic probing to resolve hash conflicts in PartitionedHashTable. When false, linear probing is used. For more information, see Quadratic probing.
result_buffer_cancelled_interval_time
| Property | Value |
|---|---|
| Default | 300 |
| Unit | Seconds |
| Dynamic | No |
Interval at which result buffers are released after cancellation.
exchg_node_buffer_size_bytes
| Property | Value |
|---|---|
| Default | 10485760 (10 MB) |
| Type | int32 |
| Unit | Bytes |
| Dynamic | No |
Size of the buffer queue in ExchangeNode. When the sender sends more data than the buffer can hold, subsequent sends block until space is freed.
Memory management
mem_limit
| Property | Value |
|---|---|
| Default | 80% |
| Type | String |
| Dynamic | No |
Maximum percentage of server memory the BE can use. Prevents the BE from starving other processes on the machine. Values above 100% are capped at 100%.
buffer_pool_limit
| Property | Value |
|---|---|
| Default | 20% |
| Type | String |
| Dynamic | No |
Maximum proportion of allocatable memory in the buffer pool. The buffer pool manages memory for all concurrent queries using buffer pages and disk spilling. Currently applies to AggregationNode and ExchangeNode.
buffer_pool_clean_pages_limit
| Property | Value |
|---|---|
| Default | 20 |
| Dynamic | No |
Maximum number of clean pages the buffer pool retains.
chunk_reserved_bytes_limit
| Property | Value |
|---|---|
| Default | 20% |
| Type | int32 |
| Unit | Bytes |
| Dynamic | No |
Reserved bytes limit for the Chunk Allocator, expressed as a percentage of mem_limit. The value must be a positive multiple of 2. If the value exceeds physical memory, the physical memory size is used. Increasing this value improves performance but reduces memory available to other modules.
memory_limitation_per_thread_for_schema_change
| Property | Value |
|---|---|
| Default | 2 |
| Unit | GB |
| Dynamic | No |
Maximum memory a single schema change task can use.
memory_maintenance_sleep_time_s
| Property | Value |
|---|---|
| Default | 10 |
| Unit | Seconds |
| Dynamic | No |
Sleep interval between memory maintenance iterations.
memory_max_alignment
| Property | Value |
|---|---|
| Default | 16 |
| Dynamic | No |
Maximum memory alignment size.
disable_mem_pools
| Property | Value |
|---|---|
| Default | false |
| Dynamic | No |
Whether to disable the memory cache pool.
madvise_huge_pages
| Property | Value |
|---|---|
| Default | false |
| Dynamic | No |
Whether to use Linux huge pages for memory allocation.
mmap_buffers
| Property | Value |
|---|---|
| Default | false |
| Dynamic | No |
Whether to use mmap for memory allocation.
use_mmap_allocate_chunk
| Property | Value |
|---|---|
| Default | false |
| Dynamic | No |
Whether to use mmap to allocate chunks. When enabled, increase vm.max_map_count (default 65530) to avoid running out of memory maps. Run the following command as root:
sysctl -w vm.max_map_count=262144
# or
echo 262144 > /proc/sys/vm/max_map_count
Also set chunk_reserved_bytes_limit to a large value to maintain performance.
load_process_max_memory_limit_bytes
| Property | Value |
|---|---|
| Default | 107374182400 (100 GB) |
| Dynamic | No |
Maximum memory all import threads on a single node can use. Set this to a large value to maintain load performance during Doris upgrades.
load_process_max_memory_limit_percent
| Property | Value |
|---|---|
| Default | 80 |
| Dynamic | No |
Maximum percentage of server memory all import threads on a single node can use. Set this to a large value to maintain load performance during Doris upgrades.
tc_free_memory_rate
| Property | Value |
|---|---|
| Default | 20 |
| Dynamic | No |
Proportion of available memory. Valid values: 0 to 100.
tc_max_total_thread_cache_bytes
| Property | Value |
|---|---|
| Default | 1073741824 (1 GB) |
| Type | int64 |
| Dynamic | No |
Total thread cache size in TCMalloc. The limit is not strictly enforced; actual usage may exceed it. In high-stress scenarios where many threads compete for TCMalloc locks (visible as SpinLock-related stack frames), increase this value to reduce contention. For more information, see TCMalloc: Thread-Caching Malloc.
tc_use_memory_min
| Property | Value |
|---|---|
| Default | 10737418240 (10 GB) |
| Dynamic | No |
Minimum memory TCMalloc retains. TCMalloc does not return memory to the OS if its total usage is below this threshold.
enable_tcmalloc_hook
| Property | Value |
|---|---|
| Default | true |
| Type | Boolean |
| Dynamic | No |
Whether to enable the TCMalloc hook used to track thread-local MemTracker statistics.
mem_tracker_consume_min_size_bytes
| Property | Value |
|---|---|
| Default | 1048576 (1 MB) |
| Type | int32 |
| Unit | Bytes |
| Dynamic | No |
Minimum size of a TCMalloc hook operation before MemTracker is updated. Smaller allocations are accumulated to avoid frequent MemTracker calls. Reducing this value increases MemTracker accuracy but raises call frequency. Increasing it reduces call frequency but introduces inaccuracy. The maximum theoretical error is mem_tracker_consume_min_size_bytes × number of BE threads.
max_free_io_buffers
| Property | Value |
|---|---|
| Default | 128 |
| Dynamic | No |
Maximum number of I/O buffers IoMgr reserves. Each buffer is between 1024 bytes and 8 MB; the total size of all reserved buffers can reach up to 2 GB.
read_size
| Property | Value |
|---|---|
| Default | 8388608 (8 MB) |
| Dynamic | No |
Size of data read per I/O operation sent to the OS. At 8 MB, random and sequential I/O performance are similar, balancing latency against disk utilization.
min_buffer_size
| Property | Value |
|---|---|
| Default | 1024 |
| Unit | Bytes |
| Dynamic | No |
Minimum read buffer size.
Storage
storage_root_path
| Property | Value |
|---|---|
| Default | ${DORIS_HOME} |
| Type | String |
| Dynamic | No |
Directories where the BE stores data. Separate multiple directories with semicolons (;). Optionally specify the storage medium and capacity limit for each directory.
Two syntax styles are supported:
Style 1 — suffix notation:
storage_root_path=/home/disk1/doris.HDD;/home/disk2/doris.SSD;/home/disk3/doris
-
.HDD— hard disk drive (HDD) -
.SSD— solid-state drive (SSD) -
No suffix — treated as HDD
Style 2 — key-value notation:
storage_root_path=/home/disk1/doris,medium:hdd;/home/disk2/doris,medium:ssd
If all disks are the same type, specify directories without any medium suffix and update the default storage medium setting in the frontend node (FE) configuration.
default_rowset_type
| Property | Value |
|---|---|
| Default | BETA |
| Type | String |
| Dynamic | No |
Default storage format for this BE. Valid values: ALPHA, BETA. This setting applies in two cases:
-
When the
storage_formatparameter of a table is set toDefault. -
When the BE performs compaction.
disable_storage_page_cache
| Property | Value |
|---|---|
| Default | false |
| Type | Boolean |
| Dynamic | No |
Whether to disable page cache for index caching. Takes effect only when default_rowset_type is BETA.
storage_page_cache_limit
| Property | Value |
|---|---|
| Default | 20% |
| Dynamic | No |
Maximum size of the storage page cache.
storage_page_cache_shard_size
| Property | Value |
|---|---|
| Default | 16 |
| Dynamic | No |
Shard size of StoragePageCache. Valid values: 2^n (n = 0, 1, 2, ...). Set this close to the number of CPU cores on the BE to reduce lock contention in StoragePageCache.
index_page_cache_percentage
| Property | Value |
|---|---|
| Default | 10 |
| Type | int32 |
| Dynamic | No |
Percentage of total page cache allocated to index pages. Valid values: 0 to 100.
index_stream_cache_capacity
| Property | Value |
|---|---|
| Default | 10737418240 (10 GB) |
| Dynamic | No |
Capacity of the cache for index statistics, including bloom filter, Min, and Max information.
storage_flood_stage_usage_percent
| Property | Value |
|---|---|
| Default | 95 |
| Dynamic | No |
Maximum percentage of disk space a data directory can use. When this threshold and storage_flood_stage_left_capacity_bytes are both reached, writes to the directory are rejected.
storage_flood_stage_left_capacity_bytes
| Property | Value |
|---|---|
| Default | 1073741824 (1 GB) |
| Dynamic | No |
Minimum free space a data directory must have. Works together with storage_flood_stage_usage_percent to enforce disk write limits.
segment_cache_capacity
| Property | Value |
|---|---|
| Default | 1000000 |
| Type | int32 |
| Dynamic | No |
Maximum number of segments in Segment Cache. Increasing this value caches more segments and reduces I/O; decreasing it frees memory. Adjust based on actual access patterns.
remote_storage_read_buffer_mb
| Property | Value |
|---|---|
| Default | 16 |
| Type | int32 |
| Unit | MB |
| Dynamic | No |
Cache size when reading files from Hadoop Distributed File System (HDFS) or Object Storage Service (OSS). Increasing this value reduces remote read calls but uses more memory.
sync_tablet_meta
| Property | Value |
|---|---|
| Default | false |
| Dynamic | No |
Whether the storage engine calls sync to flush tablet metadata to disk after each write.
storage_strict_check_incompatible_old_format
| Property | Value |
|---|---|
| Default | true |
| Type | Boolean |
| Dynamic | No (not supported) |
Whether to use strict verification when reading data in a format from a previous version that is incompatible with the current version. When true, the BE exits with a fatal log entry if it encounters an incompatible format. When false, a warning is logged and the BE continues.
pending_data_expire_time_sec
| Property | Value |
|---|---|
| Default | 1800 (30 minutes) |
| Unit | Seconds |
| Dynamic | No |
Maximum time the storage engine retains unvalidated (pending) data.
write_buffer_size
| Property | Value |
|---|---|
| Default | 104857600 (100 MB) |
| Dynamic | No |
Size of the in-memory write buffer before it is flushed to disk during data import. Too small a value generates many small files on the BE. Too large a value can cause RPC timeouts. If you increase this value, also increase tablet_writer_open_rpc_timeout_sec.
max_segment_num_per_rowset
| Property | Value |
|---|---|
| Default | 200 |
| Type | int32 |
| Dynamic | No |
Maximum number of segments in a newly generated rowset during data import. When exceeded, the import fails with a -238 error. Too many segments in a rowset can cause high memory usage during compaction and out-of-memory (OOM) errors.
string_type_length_soft_limit_bytes
| Property | Value |
|---|---|
| Default | 1048576 (1 MB) |
| Type | int32 |
| Unit | Bytes |
| Dynamic | No |
Soft maximum length for string data. This limit is not strictly enforced.
default_num_rows_per_column_file_block
| Property | Value |
|---|---|
| Default | 1024 |
| Type | int32 |
| Dynamic | No |
Number of rows per RowBlock.
zone_map_row_num_threshold
| Property | Value |
|---|---|
| Default | 20 |
| Type | int32 |
| Dynamic | No |
Pages with fewer rows than this threshold skip zone map creation, reducing data expansion.
column_dictionary_key_ratio_threshold
| Property | Value |
|---|---|
| Default | 0 |
| Dynamic | No |
String value ratio threshold for dictionary compression. When the ratio of distinct string values is below this threshold, dictionary compression is applied.
column_dictionary_key_size_threshold
| Property | Value |
|---|---|
| Default | 0 |
| Dynamic | No |
Column size threshold for dictionary compression. When the column size is below this threshold, dictionary compression is applied.
Tablet management
tablet_map_shard_size
| Property | Value |
|---|---|
| Default | 1 |
| Dynamic | No |
Shard size of the tablet map lock. Valid values: 2^n (n = 0, 1, 2, 3, 4). Increase to reduce lock contention when managing many tablets.
tablet_meta_checkpoint_min_interval_secs
| Property | Value |
|---|---|
| Default | 600 |
| Unit | Seconds |
| Dynamic | No |
Polling interval for TabletMeta Checkpoint threads.
tablet_meta_checkpoint_min_new_rowsets_num
| Property | Value |
|---|---|
| Default | 10 |
| Dynamic | No |
Minimum number of new rowsets required to trigger a TabletMeta Checkpoint.
tablet_scan_frequency_time_node_interval_second
| Property | Value |
|---|---|
| Default | 300 |
| Type | int64 |
| Unit | Seconds |
| Dynamic | No |
Interval at which query_scan_count is sampled to calculate tablet scan frequency. Used together with compaction_tablet_scan_frequency_factor.
tablet_stat_cache_update_interval_second
| Property | Value |
|---|---|
| Default | 300 |
| Unit | Seconds |
| Dynamic | No |
Interval at which tablet status caches are refreshed.
tablet_rowset_stale_sweep_time_sec
| Property | Value |
|---|---|
| Default | 1800 (30 minutes) |
| Type | int64 |
| Unit | Seconds |
| Dynamic | No |
Expiration time for merged rowset versions. When the time since the last rowset was created in a merged version directory exceeds this value, the directory is cleaned up and the merged rowsets are deleted. Reduce this value when disk space is tight. If set below 5 minutes (300 seconds), frontend queries against merged versions may fail with a -230 error.
max_tablet_version_num
| Property | Value |
|---|---|
| Default | 500 |
| Type | int |
| Dynamic | No |
Maximum number of versions per tablet. Prevents version accumulation caused by frequent imports or delayed compaction. Import tasks are rejected when this limit is reached.
max_tablet_num_per_shard
| Property | Value |
|---|---|
| Default | 1024 |
| Dynamic | No |
Maximum number of tablets per shard directory. Controls the tablet directory layout to prevent any single directory from containing too many subdirectories.
check_consistency_worker_count
| Property | Value |
|---|---|
| Default | 1 |
| Dynamic | No |
Number of worker threads for calculating tablet checksums.
create_tablet_worker_count
| Property | Value |
|---|---|
| Default | 3 |
| Dynamic | No |
Number of worker threads for creating tablets.
drop_tablet_worker_count
| Property | Value |
|---|---|
| Default | 3 |
| Dynamic | No |
Number of threads for deleting tablets.
number_tablet_writer_threads
| Property | Value |
|---|---|
| Default | 16 |
| Dynamic | No |
Number of threads for writing to tablets.
tablet_writer_open_rpc_timeout_sec
| Property | Value |
|---|---|
| Default | 60 |
| Unit | Seconds |
| Dynamic | No |
RPC timeout for opening a tablet writer on a remote BE. This timeout also applies when sending a batch (1024 rows) during fast imports. If you see send batch fail timeout errors, increase this value. When you increase write_buffer_size, also increase this timeout accordingly.
tablet_writer_ignore_eovercrowded
| Property | Value |
|---|---|
| Default | false |
| Type | Boolean |
| Dynamic | No |
Whether to ignore the [E1011]The server is overcrowded bRPC error during data writes. Use this as a temporary workaround when you cannot immediately adjust brpc_socket_max_unwritten_bytes (which requires a restart). This setting only suppresses the error during writes; other RPC requests still enforce the overcrowded check.
ignore_broken_disk
| Property | Value |
|---|---|
| Default | false |
| Dynamic | No |
Behavior when a directory specified by storage_root_path is missing or inaccessible at startup:
-
true— the directory is skipped. If other directories are available, the BE starts normally. -
false— the BE stops.
ignore_load_tablet_failure
| Property | Value |
|---|---|
| Default | false |
| Type | Boolean |
| Dynamic | No |
Whether to ignore tablet header metadata load failures at startup. By default, if any tablet fails to load in a storage directory, the BE stops and logs:
load tablets from header failed, failed tablets size: xxx, path=xxx
To resolve the failure without restarting, either:
-
Use
meta_toolto delete the tablets whose metadata cannot be loaded (when other replicas are healthy). -
Set this item to
trueto skip the failed tablets and start the BE.
ignore_rowset_stale_unconsistent_delete
| Property | Value |
|---|---|
| Default | false |
| Type | Boolean |
| Dynamic | No |
Whether to delete outdated merged rowsets that cannot form a consistent version path. Outdated rowsets are normally deleted after 30 minutes. When false, the BE exits after reporting the inconsistency. When true, the BE logs the error and continues. Ignoring this error typically does not affect queries, but may cause a -230 error when the merged version is published from the frontend node.
inc_rowset_expired_sec
| Property | Value |
|---|---|
| Default | 1800 (30 minutes) |
| Unit | Seconds |
| Dynamic | No |
Duration for which activated incremental rowsets are retained in the storage engine during incremental cloning.
path_gc_check
| Property | Value |
|---|---|
| Default | true |
| Dynamic | No |
Whether to enable recycling scan data thread checks.
path_gc_check_interval_second
| Property | Value |
|---|---|
| Default | 86400 (24 hours) |
| Unit | Seconds |
| Dynamic | No |
Interval between recycling scan data thread checks.
path_gc_check_step
| Property | Value |
|---|---|
| Default | 1000 |
| Dynamic | No |
Step size per garbage collection check iteration.
path_gc_check_step_interval_ms
| Property | Value |
|---|---|
| Default | 10 |
| Unit | Milliseconds |
| Dynamic | No |
Interval between steps within a single garbage collection check.
path_scan_interval_second
| Property | Value |
|---|---|
| Default | 86400 (24 hours) |
| Unit | Seconds |
| Dynamic | No |
Interval between path scans performed before garbage collection checks.
max_garbage_sweep_interval
| Property | Value |
|---|---|
| Default | 3600 (1 hour) |
| Unit | Seconds |
| Dynamic | No |
Maximum interval between disk garbage collection sweeps.
min_garbage_sweep_interval
| Property | Value |
|---|---|
| Default | 180 |
| Unit | Seconds |
| Dynamic | No |
Minimum interval between disk garbage collection sweeps.
unused_rowset_monitor_interval
| Property | Value |
|---|---|
| Default | 30 |
| Unit | Seconds |
| Dynamic | No |
Interval at which expired rowsets are scanned and cleaned.
trash_file_expire_time_sec
| Property | Value |
|---|---|
| Default | 259200 (3 days) |
| Unit | Seconds |
| Dynamic | No |
Interval at which the recycle bin is cleaned. This limit may not be enforced when disk space is critically low.
snapshot_expire_time_sec
| Property | Value |
|---|---|
| Default | 172800 (48 hours) |
| Unit | Seconds |
| Dynamic | No |
Interval at which snapshots are cleaned.
Data import
push_write_mbytes_per_sec
| Property | Value |
|---|---|
| Default | 10 |
| Type | int32 |
| Unit | MB/s |
| Dynamic | No |
Maximum import speed. Applies to all import methods.
streaming_load_max_mb
| Property | Value |
|---|---|
| Default | 10240 (10 GB) |
| Type | int64 |
| Unit | MB |
| Dynamic | Yes |
Maximum size of CSV data in a single Stream Load. Stream Load is suited for a few GB of data and is not designed for very large datasets.
streaming_load_json_max_mb
| Property | Value |
|---|---|
| Default | 100 |
| Type | int64 |
| Unit | MB |
| Dynamic | Yes |
Maximum size of JSON data in a single Stream Load. JSON data cannot be split, so all data must fit in memory before parsing.
streaming_load_rpc_max_alive_time_sec
| Property | Value |
|---|---|
| Default | 1200 (20 minutes) |
| Unit | Seconds |
| Dynamic | No |
Lifetime of a TabletsChannel. Channels that receive no data within this period are deleted.
max_send_batch_parallelism_per_job
| Property | Value |
|---|---|
| Default | 5 |
| Type | int |
| Dynamic | No |
Maximum parallelism for sending data from OlapTableSink during batch processing. If send_batch_parallelism is set higher, it is overridden by this value.
send_batch_thread_pool_thread_num
| Property | Value |
|---|---|
| Default | 256 |
| Type | int32 |
| Dynamic | No |
Number of threads in the SendBatch thread pool.
send_batch_thread_pool_queue_size
| Property | Value |
|---|---|
| Default | 102400 |
| Type | int32 |
| Dynamic | No |
Queue length of the SendBatch thread pool. New submissions block when the queue is full.
high_priority_flush_thread_num_per_store
| Property | Value |
|---|---|
| Default | 1 |
| Type | int32 |
| Dynamic | No |
Number of flush threads reserved for HIGH priority import tasks in each storage directory.
load_task_high_priority_threshold_second
| Property | Value |
|---|---|
| Default | 120 |
| Type | int32 |
| Unit | Seconds |
| Dynamic | No |
Import tasks with a timeout shorter than this value are classified as HIGH priority and use a separate flush thread pool.
flush_thread_num_per_store
| Property | Value |
|---|---|
| Default | 2 |
| Dynamic | No |
Number of threads per store for flushing in-memory tables to disk.
load_data_reserve_hours
| Property | Value |
|---|---|
| Default | 4 |
| Unit | Hours |
| Dynamic | No |
Retention period for mini load data files. Files are deleted after this duration.
load_error_log_reserve_hours
| Property | Value |
|---|---|
| Default | 48 |
| Unit | Hours |
| Dynamic | No |
Retention period for load error logs.
min_load_rpc_timeout_ms
| Property | Value |
|---|---|
| Default | 20 |
| Type | int32 |
| Unit | Milliseconds |
| Dynamic | No |
Minimum RPC timeout for each RPC call within a load job.
compress_rowbatches
| Property | Value |
|---|---|
| Default | true |
| Type | Boolean |
| Dynamic | No |
Whether to compress RowBatches using Snappy compression during serialization.
serialize_batch
| Property | Value |
|---|---|
| Default | false |
| Dynamic | No |
Whether to serialize RowBatches for RPCs between backend nodes.
row_nums_check
| Property | Value |
|---|---|
| Default | true |
| Dynamic | No |
Whether to validate row counts for BE operations, CE node operations, and schema changes.
etl_thread_pool_queue_size
| Property | Value |
|---|---|
| Default | 256 |
| Dynamic | No |
Queue size of the extract, transform, and load (ETL) thread pool.
push_worker_count_high_priority
| Property | Value |
|---|---|
| Default | 3 |
| Dynamic | No |
Number of import threads for HIGH priority tasks.
push_worker_count_normal_priority
| Property | Value |
|---|---|
| Default | 3 |
| Dynamic | No |
Number of import threads for NORMAL priority tasks.
publish_version_worker_count
| Property | Value |
|---|---|
| Default | 8 |
| Dynamic | No |
Number of threads for publishing new versions.
clear_transaction_task_worker_count
| Property | Value |
|---|---|
| Default | 1 |
| Dynamic | No |
Number of threads for cleaning up transactions.
delete_worker_count
| Property | Value |
|---|---|
| Default | 3 |
| Dynamic | No |
Number of threads for data deletion tasks.
max_runnings_transactions_per_txn_map
| Property | Value |
|---|---|
| Default | 100 |
| Dynamic | No |
Maximum number of concurrent transactions per txn_partition_map in the transaction manager. Prevents the transaction manager from accumulating too many transactions.
Routine Load
routine_load_thread_pool_size
| Property | Value |
|---|---|
| Default | 10 |
| Dynamic | No |
Thread pool size for Routine Load tasks. Must be greater than max_concurrent_task_num_per_be (default: 5).
routine_load_consumer_pool_size
| Property | Value |
|---|---|
| Default | 10 |
| Type | int32 |
| Dynamic | No |
Number of cached data consumers for Routine Load.
max_consumer_num_per_group
| Property | Value |
|---|---|
| Default | 3 |
| Dynamic | No |
Maximum number of consumers per data consumer group, used for Routine Load.
kafka_api_version_request
| Property | Value |
|---|---|
| Default | true |
| Dynamic | No |
Set to false when the Kafka version is lower than 0.10.0.0.
kafka_broker_version_fallback
| Property | Value |
|---|---|
| Default | 0.10.0 |
| Dynamic | No |
Fallback Kafka broker version when kafka_api_version_request is false. Valid values: 0.9.0.x, 0.8.x.y.
Network and RPC
be_port
| Property | Value |
|---|---|
| Default | 9060 |
| Type | int32 |
| Dynamic | No |
Port of the Thrift server on the BE. Receives requests from the frontend node.
be_service_threads
| Property | Value |
|---|---|
| Default | 64 |
| Type | int32 |
| Dynamic | No |
Number of execution threads in the Thrift server on the BE. Determines how many frontend requests can be processed concurrently.
heartbeat_service_port
| Property | Value |
|---|---|
| Default | 9050 |
| Type | int32 |
| Dynamic | No |
Thrift heartbeat service port on the BE. Receives heartbeats from the frontend node.
heartbeat_service_thread_count
| Property | Value |
|---|---|
| Default | 1 |
| Type | int32 |
| Dynamic | No |
Number of threads running the heartbeat service on the BE. Keep the default value.
webserver_port
| Property | Value |
|---|---|
| Default | 8040 |
| Type | int32 |
| Dynamic | No |
HTTP server port on the BE. Used for the web UI and /varz endpoint.
webserver_num_workers
| Property | Value |
|---|---|
| Default | 48 |
| Dynamic | No |
Number of worker threads in the web server.
brpc_port
| Property | Value |
|---|---|
| Default | 8060 |
| Type | int32 |
| Dynamic | No |
bRPC port for communication between backend nodes.
brpc_num_threads
| Property | Value |
|---|---|
| Default | -1 (equals number of CPU cores) |
| Dynamic | No |
Number of bRPC worker threads. Increase this value for higher queries per second (QPS). For guidance, see incubator-brpc benchmark.
brpc_max_body_size
| Property | Value |
|---|---|
| Default | (bRPC default) |
| Dynamic | No |
Maximum body size for bRPC messages, mapped to the max_body_size bRPC parameter. If queries fail with body_size is too large in the BE log — typically with queries that use multi distinct, no GROUP BY, and over 1 TB of data — increase this value.
brpc_socket_max_unwritten_bytes
| Property | Value |
|---|---|
| Default | (bRPC default) |
| Dynamic | No |
Maximum unwritten bytes per bRPC socket, mapped to the socket_max_unwritten_bytes bRPC parameter. If queries fail with The server is overcrowded — typically when sending large bitmap values — increase this value. Note: this item cannot be changed dynamically; use tablet_writer_ignore_eovercrowded as a temporary workaround.
transfer_large_data_by_brpc
| Property | Value |
|---|---|
| Default | true |
| Type | Boolean |
| Dynamic | No |
When Tuple/Block data exceeds 1.8 GB, whether to serialize the protobuf request and send the data as an HTTP bRPC attachment. When the protobuf request exceeds 2 GB, the error Bad request, error_text=[E1003]Fail to compress request occurs. This setting prevents that error by routing large payloads through HTTP bRPC.
auto_refresh_brpc_channel
| Property | Value |
|---|---|
| Default | false |
| Type | Boolean |
| Dynamic | No |
Whether to verify bRPC connection availability via a handshake RPC when obtaining a connection. If the connection is unavailable, a new one is established.
thrift_client_retry_interval_ms
| Property | Value |
|---|---|
| Default | 1000 |
| Type | int64 |
| Unit | Milliseconds |
| Dynamic | No |
Retry interval for the BE Thrift client when the frontend node's Thrift server is overwhelmed (avalanche scenario).
thrift_connect_timeout_seconds
| Property | Value |
|---|---|
| Default | 3 |
| Unit | Seconds |
| Dynamic | No |
Default connection timeout for the Thrift client.
thrift_rpc_timeout_ms
| Property | Value |
|---|---|
| Default | 5000 |
| Unit | Milliseconds |
| Dynamic | No |
Default Thrift RPC timeout.
thrift_server_type_of_fe
| Property | Value |
|---|---|
| Default | (matches FE setting) |
| Type | String |
| Dynamic | No |
Thrift service model used by the frontend node. Must match the thrift_server_type configuration on the frontend node (case-insensitive). Valid values:
-
THREADED— non-blocking I/O model. -
THREAD_POOL— blocking I/O model.
txn_commit_rpc_timeout_ms
| Property | Value |
|---|---|
| Default | 10000 (10 seconds) |
| Unit | Milliseconds |
| Dynamic | No |
RPC timeout for transaction commit.
txn_map_shard_size
| Property | Value |
|---|---|
| Default | 128 |
| Dynamic | No |
Shard size of txn_map_lock. Valid values: 2^n (n = 0, 1, 2, 3, 4). Increase to improve transaction management throughput.
txn_shard_size
| Property | Value |
|---|---|
| Default | 1024 |
| Dynamic | No |
Shard size of txn_lock. Valid values: 2^n (n = 0, 1, 2, 3, 4). Increase to improve transaction management throughput.
port
| Property | Value |
|---|---|
| Default | 20001 |
| Type | int32 |
| Dynamic | No |
Port used for BE self-test.
Thread and CPU configuration
num_cores
| Property | Value |
|---|---|
| Default | 0 (auto-detect) |
| Type | int32 |
| Dynamic | No |
Number of CPU cores the BE can use. 0 reads the count from /proc/cpuinfo.
num_disks
| Property | Value |
|---|---|
| Default | 0 (system setting) |
| Dynamic | No |
Number of disks on the machine. 0 applies the OS default.
num_threads_per_core
| Property | Value |
|---|---|
| Default | 3 |
| Dynamic | No |
Number of threads per CPU core. Values two to three times the core count keep cores busy without excessive scheduling jitter.
num_threads_per_disk
| Property | Value |
|---|---|
| Default | 0 |
| Dynamic | No |
Maximum number of threads per disk, which also determines the maximum queue depth per disk.
sleep_one_second
| Property | Value |
|---|---|
| Default | 1 (1 second) |
| Type | int32 |
| Unit | Seconds |
| Dynamic | No |
Global sleep interval for BE threads. This is a global variable and cannot be modified at runtime.
priority_networks
| Property | Value |
|---|---|
| Default | (none) |
| Dynamic | No |
CIDR blocks used to select the correct IP address on multi-homed servers. Separate multiple blocks with semicolons (;). At most one IP address should match. If no address matches the specified blocks, one is chosen at random.
priority_queue_remaining_tasks_increased_frequency
| Property | Value |
|---|---|
| Default | 512 |
| Dynamic | No |
Frequency at which task priority is adjusted in BlockingPriorityQueue.
Snapshots and cloning
make_snapshot_worker_count
| Property | Value |
|---|---|
| Default | 5 |
| Dynamic | No |
Number of threads for creating snapshots.
release_snapshot_worker_count
| Property | Value |
|---|---|
| Default | 5 |
| Dynamic | No |
Number of threads for releasing snapshots.
clone_worker_count
| Property | Value |
|---|---|
| Default | 3 |
| Type | int32 |
| Dynamic | No |
Number of threads for cloning tasks.
storage_medium_migrate_count
| Property | Value |
|---|---|
| Default | 1 |
| Dynamic | No |
Number of threads for storage medium migration (cloning between HDD and SSD).
download_worker_count
| Property | Value |
|---|---|
| Default | 1 |
| Dynamic | No |
Number of download threads.
upload_worker_count
| Property | Value |
|---|---|
| Default | 1 |
| Dynamic | No |
Maximum number of upload threads.
download_low_speed_limit_kbps
| Property | Value |
|---|---|
| Default | 50 |
| Unit | KB/s |
| Dynamic | No |
Minimum acceptable download speed. Downloads that fall below this speed for longer than download_low_speed_time are aborted.
download_low_speed_time
| Property | Value |
|---|---|
| Default | 300 |
| Unit | Seconds |
| Dynamic | No |
Maximum duration a download can stay below download_low_speed_limit_kbps before being aborted.
max_download_speed_kbps
| Property | Value |
|---|---|
| Default | 50000 |
| Unit | KB/s |
| Dynamic | No |
Maximum download speed.
Logging
sys_log_dir
| Property | Value |
|---|---|
| Default | ${DORIS_HOME}/log |
| Type | String |
| Dynamic | No |
Directory where BE log files are stored.
sys_log_level
| Property | Value |
|---|---|
| Default | INFO |
| Dynamic | No |
Log level. From lowest to highest severity: INFO, WARNING, ERROR, FATAL.
sys_log_roll_mode
| Property | Value |
|---|---|
| Default | SIZE-MB-1024 |
| Dynamic | No |
Log rotation policy. The default rotates when a log file reaches 1 GB.
sys_log_roll_num
| Property | Value |
|---|---|
| Default | 10 |
| Dynamic | No |
Number of rotated log files to retain.
sys_log_verbose_level
| Property | Value |
|---|---|
| Default | 10 |
| Dynamic | No |
Verbosity level for VLOG output in the code.
sys_log_verbose_modules
| Property | Value |
|---|---|
| Default | (none) |
| Dynamic | No |
Module filter for log output. For example, setting this to olap prints only logs from the olap module.
log_buffer_level
| Property | Value |
|---|---|
| Default | (keep in memory) |
| Dynamic | No |
Log flushing strategy. The default keeps logs in memory.
aws_log_level
| Property | Value |
|---|---|
| Default | 3 (Warn) |
| Type | int32 |
| Dynamic | No |
Log level for the AWS SDK. Valid values:
| Value | Level |
|---|---|
0 |
Off |
1 |
Fatal |
2 |
Error |
3 |
Warn |
4 |
Info |
5 |
Debug |
6 |
Trace |
Metrics and monitoring
enable_metric_calculator
| Property | Value |
|---|---|
| Default | true |
| Dynamic | No |
Whether to run the metric calculator to collect BE performance indicators.
enable_system_metrics
| Property | Value |
|---|---|
| Default | true |
| Dynamic | No |
Whether to collect system metrics.
periodic_counter_update_period_ms
| Property | Value |
|---|---|
| Default | 500 |
| Unit | Milliseconds |
| Dynamic | No |
Update interval for rate and sampling calculators.
status_report_interval
| Property | Value |
|---|---|
| Default | 5 |
| Unit | Seconds |
| Dynamic | No |
Interval at which profile reports are sent.
report_disk_state_interval_seconds
| Property | Value |
|---|---|
| Default | 60 |
| Unit | Seconds |
| Dynamic | No |
Interval at which the BE agent reports disk status to the frontend node.
report_tablet_interval_seconds
| Property | Value |
|---|---|
| Default | 60 |
| Unit | Seconds |
| Dynamic | No |
Interval at which the BE agent reports OLAP tablet information to the frontend node.
report_task_interval_seconds
| Property | Value |
|---|---|
| Default | 10 |
| Unit | Seconds |
| Dynamic | No |
Interval at which the BE agent reports task signatures to the frontend node.
disk_stat_monitor_interval
| Property | Value |
|---|---|
| Default | 5 |
| Unit | Seconds |
| Dynamic | No |
Interval between consecutive disk status checks.
max_percentage_of_error_disk
| Property | Value |
|---|---|
| Default | 0 |
| Type | int32 |
| Dynamic | No |
Maximum percentage of damaged disks the storage engine tolerates. When the percentage of failed disks exceeds this value, the BE stops.
scan_context_gc_interval_min
| Property | Value |
|---|---|
| Default | 5 |
| Unit | Minutes |
| Dynamic | No |
Scheduling interval for the context garbage collection thread.
External services
es_http_timeout_ms
| Property | Value |
|---|---|
| Default | 5000 |
| Unit | Milliseconds |
| Dynamic | No |
Timeout for HTTP connections to Elasticsearch.
es_scroll_keepalive
| Property | Value |
|---|---|
| Default | 5 |
| Unit | Minutes |
| Dynamic | No |
Duration for which an Elasticsearch scroll context is kept alive.
external_table_connect_timeout_sec
| Property | Value |
|---|---|
| Default | 5 |
| Type | int32 |
| Unit | Seconds |
| Dynamic | No |
Connection timeout for external table connections.
Paths and directories
custom_config_dir
| Property | Value |
|---|---|
| Default | conf/ |
| Dynamic | No |
Directory for be_custom.conf. If the conf/ directory might be overwritten during upgrades, point this to a separate location to protect persisted dynamic configuration.
plugin_path
| Property | Value |
|---|---|
| Default | ${DORIS_HOME}/plugin |
| Dynamic | No |
Directory for BE plugins.
pprof_profile_dir
| Property | Value |
|---|---|
| Default | ${DORIS_HOME}/log |
| Dynamic | No |
Directory where pprof profiles are saved.
small_file_dir
| Property | Value |
|---|---|
| Default | ${DORIS_HOME}/lib/small_file/ |
| Dynamic | No |
Directory where SmallFileMgr stores downloaded files.
query_scratch_dirs
| Property | Value |
|---|---|
| Default | ${DORIS_HOME} |
| Type | String |
| Dynamic | No |
Directories where the BE writes temporary spill data during query execution. Separate multiple directories with semicolons (;).
pull_load_task_dir
| Property | Value |
|---|---|
| Default | ${DORIS_HOME}/var/pull_load |
| Dynamic | No |
Directory for pull load task files.
user_function_dir
| Property | Value |
|---|---|
| Default | ${DORIS_HOME}/lib/udf |
| Dynamic | No |
Directory for user-defined function (UDF) files.
Cluster management
cluster_id
| Property | Value |
|---|---|
| Default | -1 |
| Type | int32 |
| Dynamic | No |
ID of the cluster this BE belongs to. This value is normally delivered by the frontend node via heartbeat and does not need to be set manually. If you set it manually, make sure the cluster_id file in the data directory matches.
enable_stream_load_record
| Property | Value |
|---|---|
| Default | false |
| Dynamic | No |
Whether to record Stream Load history.
enable_token_check
| Property | Value |
|---|---|
| Default | true |
| Dynamic | No |
Used for forward compatibility. This item will be removed in a future version.
doris_cgroups
| Property | Value |
|---|---|
| Default | (none) |
| Dynamic | No |
cgroups assigned to the Doris process.
max_client_cache_size_per_host
| Property | Value |
|---|---|
| Default | 10 |
| Dynamic | No |
Maximum number of client connections cached per remote host.
file_descriptor_cache_capacity
| Property | Value |
|---|---|
| Default | 32768 |
| Dynamic | No |
Number of file handles the BE caches.
cache_clean_interval
| Property | Value |
|---|---|
| Default | 1800 (30 minutes) |
| Unit | Seconds |
| Dynamic | No |
Interval at which unused file handle caches and Segment Cache entries are cleaned.
min_file_descriptor_number
| Property | Value |
|---|---|
| Default | 60000 |
| Dynamic | No |
Minimum number of file descriptors the BE requires.
min_cumulative_compaction_num_singleton_deltas
| Property | Value |
|---|---|
| Default | 5 |
| Dynamic | No |
Minimum number of incremental files required to trigger cumulative compaction.
max_cumulative_compaction_num_singleton_deltas
| Property | Value |
|---|---|
| Default | 1000 |
| Dynamic | No |
Maximum number of incremental files processed in a single cumulative compaction run.
max_memory_sink_batch_count
| Property | Value |
|---|---|
| Default | 20 |
| Dynamic | No |
Maximum number of batches for external scan caches. Works with batch_size (default 1024 rows): the default settings cache up to 20 × 1024 = 20,480 rows of external scan data.