FE Configuration
FE parameters are classified into dynamic parameters and static parameters.
-
Dynamic parameters can be configured and adjusted by running SQL commands, which is very convenient. But the configurations become invalid if you restart your FE. Therefore, we recommend that you also modify the configuration items in the fe.conf file to prevent the loss of modifications.
-
Static parameters can only be configured and adjusted in the FE configuration file fe.conf. After you modify this file, you must restart your FE for the changes to take effect.
Whether a parameter is a dynamic parameter is indicated by the IsMutable column in the output of ADMIN SHOW CONFIG. TRUE indicates a dynamic parameter.
Note that both dynamic and static FE parameters can be configured in the fe.conf file.
View FE configuration itemsβ
After your FE is started, you can run the ADMIN SHOW FRONTEND CONFIG command on your MySQL client to check the parameter configurations. If you want to query the configuration of a specific parameter, run the following command:
ADMIN SHOW FRONTEND CONFIG [LIKE "pattern"];
For detailed description of the returned fields, see ADMIN SHOW CONFIG.
You must have administrator privileges to run cluster administration-related commands.
Configure FE parametersβ
Configure FE dynamic parametersβ
You can configure or modify the settings of FE dynamic parameters using ADMIN SET FRONTEND CONFIG.
ADMIN SET FRONTEND CONFIG ("key" = "value");
The configuration changes made with ADMIN SET FRONTEND will be restored to the default values in the fe.conf file after the FE restarts. Therefore, we recommend that you also modify the configuration items in fe.conf if you want the changes to be permanent.
Configure FE static parametersβ
Static parameters of an FE are set by changing them in the configuration file fe.conf and restarting the FE to allow the changes to take effect.
Understand FE parametersβ
Loggingβ
audit_log_delete_ageβ
- Default: 30d
- Type: String
- Unit: -
- Is mutable: No
- Description: The retention period of audit log files. The default value
30dspecifies that each audit log file can be retained for 30 days. StarRocks checks each audit log file and deletes those that were generated 30 days ago. - Introduced in: -
audit_log_dirβ
- Default:
StarRocksFE.STARROCKS_HOME_DIR+ "/log" - Type: String
- Unit: -
- Is mutable: No
- Description: The directory that stores audit log files.
- Introduced in: -
audit_log_enable_compressβ
- Default: false
- Type: Boolean
- Unit: N/A
- Is mutable: No
- Description: When true, the generated Log4j2 configuration appends a ".gz" postfix to rotated audit log filenames (fe.audit.log.*) so that Log4j2 will produce compressed (.gz) archived audit log files on rollover. The setting is read during FE startup in Log4jConfig.initLogging and is applied to the RollingFile appender for audit logs; it only affects rotated/archived files, not the active audit log. Because the value is initialized at startup, changing it requires restarting the FE to take effect. Use alongside audit log rotation settings (
audit_log_dir,audit_log_roll_interval,audit_roll_maxsize,audit_log_roll_num). - Introduced in: 3.2.12
audit_log_json_formatβ
- Default: false
- Type: Boolean
- Unit: N/A
- Is mutable: Yes
- Description: When true, FE audit events are emitted as structured JSON (Jackson ObjectMapper serializing a Map of annotated AuditEvent fields) instead of the default pipe-separated "key=value" string. The setting affects all built-in audit sinks handled by AuditLogBuilder: connection audit, query audit, big-query audit (big-query threshold fields are added to the JSON when the event qualifies), and slow-audit output. Fields annotated for big-query thresholds and the "features" field are treated specially (excluded from normal audit entries; included in big-query or feature logs as applicable). Enable this to make logs machine-parsable for log collectors or SIEMs; note it changes the log format and may require updating any existing parsers that expect the legacy pipe-separated format.
- Introduced in: 3.2.7
audit_log_modulesβ
- Default:
slow_query, query - Type: String[]
- Unit: -
- Is mutable: No
- Description: The modules for which StarRocks generates audit log entries. By default, StarRocks generates audit logs for the
slow_querymodule and thequerymodule. Theconnectionmodule is supported from v3.0. Separate the module names with a comma (,) and a space. - Introduced in: -
audit_log_roll_intervalβ
- Default: DAY
- Type: String
- Unit: -
- Is mutable: No
- Description: The time interval at which StarRocks rotates audit log entries. Valid values:
DAYandHOUR.- If this parameter is set to
DAY, a suffix in theyyyyMMddformat is added to the names of audit log files. - If this parameter is set to
HOUR, a suffix in theyyyyMMddHHformat is added to the names of audit log files.
- If this parameter is set to
- Introduced in: -
audit_log_roll_numβ
- Default: 90
- Type: Int
- Unit: -
- Is mutable: No
- Description: The maximum number of audit log files that can be retained within each retention period specified by the
audit_log_roll_intervalparameter. - Introduced in: -
bdbje_log_levelβ
- Default: INFO
- Type: String
- Unit: -
- Is mutable: No
- Description: Controls the logging level used by Berkeley DB Java Edition (BDB JE) in StarRocks. During BDB environment initialization BDBEnvironment.initConfigs() applies this value to the Java logger for the
com.sleepycat.jepackage and to the BDB JE environment file logging level (EnvironmentConfig.FILE_LOGGING_LEVEL). Accepts standard java.util.logging.Level names such as SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL, OFF. Setting to ALL enables all log messages. Increasing verbosity will raise log volume and may impact disk I/O and performance; the value is read when the BDB environment is initialized, so it takes effect only after environment (re)initialization. - Introduced in: v3.2.0
big_query_log_delete_ageβ
- Default: 7d
- Type: String
- Unit: -
- Is mutable: No
- Description: Controls how long FE big query log files (
fe.big_query.log.*) are retained before automatic deletion. The value is passed to Log4j's deletion policy as the IfLastModified age β any rotated big query log whose last-modified time is older than this value will be removed. Supports suffixes included(day),h(hour),m(minute), ands(second). Example:7d(7 days),10h(10 hours),60m(60 minutes), and120s(120 seconds). This item works together withbig_query_log_roll_intervalandbig_query_log_roll_numto determine which files are kept or purged. - Introduced in: v3.2.0
big_query_log_dirβ
- Default:
Config.STARROCKS_HOME_DIR + "/log" - Type: String
- Unit: -
- Is mutable: No
- Description: Directory where the FE writes big query dump logs (
fe.big_query.log.*). The Log4j configuration uses this path to create a RollingFile appender forfe.big_query.logand its rotated files. Rotation and retention are governed bybig_query_log_roll_interval(time-based suffix),log_roll_size_mb(size trigger),big_query_log_roll_num(max files), andbig_query_log_delete_age(age-based deletion). Big query records are logged for queries that exceed user-defined thresholds such asbig_query_log_cpu_second_threshold,big_query_log_scan_rows_threshold, orbig_query_log_scan_bytes_threshold. Usebig_query_log_modulesto control which modules log to this file. - Introduced in: v3.2.0
big_query_log_modulesβ
- Default:
{"query"} - Type: String[]
- Unit: -
- Is mutable: No
- Description: List of module name suffixes that enable per-module big query logging. Typical values are logical component names. For example, the default
queryproducesbig_query.query. - Introduced in: v3.2.0
big_query_log_roll_intervalβ
- Default:
"DAY" - Type: String
- Unit: -
- Is mutable: No
- Description: Specifies the time interval used to construct the date component of the rolling file name for the
big_querylog appender. Valid values (case-insensitive) areDAY(default) andHOUR.DAYproduces a daily pattern ("%d{yyyyMMdd}") andHOURproduces an hourly pattern ("%d{yyyyMMddHH}"). The value is combined with size-based rollover (big_query_roll_maxsize) and index-based rollover (big_query_log_roll_num) to form the RollingFile filePattern. An invalid value causes log configuration generation to fail (IOException) and may prevent log initialization or reconfiguration. Use alongsidebig_query_log_dir,big_query_roll_maxsize,big_query_log_roll_num, andbig_query_log_delete_age. - Introduced in: v3.2.0
big_query_log_roll_numβ
- Default: 10
- Type: Int
- Unit: -
- Is mutable: No
- Description: Maximum number of rotated FE big query log files to retain per
big_query_log_roll_interval. This value is bound to the RollingFile appender's DefaultRolloverStrategymaxattribute forfe.big_query.log; when logs roll (by time or bylog_roll_size_mb), StarRocks keeps up tobig_query_log_roll_numindexed files (filePattern uses a time suffix plus index). Files older than this count may be removed by rollover, andbig_query_log_delete_agecan additionally delete files by last-modified age. - Introduced in: v3.2.0
dump_log_delete_ageβ
- Default: 7d
- Type: String
- Unit: -
- Is mutable: No
- Description: The retention period of dump log files. The default value
7dspecifies that each dump log file can be retained for 7 days. StarRocks checks each dump log file and deletes those that were generated 7 days ago. - Introduced in: -
dump_log_dirβ
- Default:
StarRocksFE.STARROCKS_HOME_DIR+ "/log" - Type: String
- Unit: -
- Is mutable: No
- Description: The directory that stores dump log files.
- Introduced in: -
dump_log_modulesβ
- Default: query
- Type: String[]
- Unit: -
- Is mutable: No
- Description: The modules for which StarRocks generates dump log entries. By default, StarRocks generates dump logs for the query module. Separate the module names with a comma (,) and a space.
- Introduced in: -
dump_log_roll_intervalβ
- Default: DAY
- Type: String
- Unit: -
- Is mutable: No
- Description: The time interval at which StarRocks rotates dump log entries. Valid values:
DAYandHOUR.- If this parameter is set to
DAY, a suffix in theyyyyMMddformat is added to the names of dump log files. - If this parameter is set to
HOUR, a suffix in theyyyyMMddHHformat is added to the names of dump log files.
- If this parameter is set to
- Introduced in: -
dump_log_roll_numβ
- Default: 10
- Type: Int
- Unit: -
- Is mutable: No
- Description: The maximum number of dump log files that can be retained within each retention period specified by the
dump_log_roll_intervalparameter. - Introduced in: -
edit_log_write_slow_log_threshold_msβ
- Default: 2000
- Type: Int
- Unit: Milliseconds
- Is mutable: Yes
- Description: Threshold (in ms) used by JournalWriter to detect and log slow edit-log batch writes. After a batch commit, if the batch duration exceeds this value, JournalWriter emits a WARN with batch size, duration and current journal queue size (rate-limited to once every ~2s). This setting only controls logging/alerts for potential IO or replication latency on the FE leader; it does not change commit or roll behavior (see
edit_log_roll_numand commit-related settings). Metric updates still occur regardless of this threshold. - Introduced in: v3.2.3
enable_audit_sqlβ
- Default: true
- Type: Boolean
- Unit: -
- Is mutable: No
- Description: When this item is set to
true, the FE audit subsystem records the SQL text of statements into FE audit logs (fe.audit.log) processed by ConnectProcessor. The stored statement respects other controls: encrypted statements are redacted (AuditEncryptionChecker), sensitive credentials may be redacted or desensitized ifenable_sql_desensitize_in_logis set, and digest recording is controlled byenable_sql_digest. When it is set tofalse, ConnectProcessor replaces the statement text with "?" in audit events β other audit fields (user, host, duration, status, slow-query detection viaqe_slow_log_ms, and metrics) are still recorded. Enabling SQL audit increases forensic and troubleshooting visibility but may expose sensitive SQL content and increase log volume and I/O; disabling it improves privacy at the cost of losing full-statement visibility in audit logs. - Introduced in: -
enable_profile_logβ
- Default: true
- Type: Boolean
- Unit: -
- Is mutable: No
- Description: Whether to enable profile logging. When this feature is enabled, the FE writes per-query profile logs (the serialized
queryDetailJSON produced byProfileManager) to the profile log sink. This logging is performed only ifenable_collect_query_detail_infois also enabled; whenenable_profile_log_compressis enabled, the JSON may be gzipped before logging. Profile log files are managed byprofile_log_dir,profile_log_roll_num,profile_log_roll_intervaland rotated/deleted according toprofile_log_delete_age(supports formats like7d,10h,60m,120s). Disabling this feature stops writing profile logs (reducing disk I/O, compression CPU and storage usage). - Introduced in: v3.2.5
enable_qe_slow_logβ
- Default: true
- Type: Boolean
- Unit: N/A
- Is mutable: Yes
- Description: When enabled, the FE builtin audit plugin (AuditLogBuilder) will write query events whose measured execution time ("Time" field) exceeds the threshold configured by
qe_slow_log_msinto the slow-query audit log (AuditLog.getSlowAudit). If disabled, those slow-query entries are suppressed (regular query and connection audit logs are unaffected). The slow-audit entries follow the globalaudit_log_json_formatsetting (JSON vs. plain string). Use this flag to control generation of slow-query audit volume independently of regular audit logging; turning it off may reduce log I/O whenqe_slow_log_msis low or workloads produce many long-running queries. - Introduced in: 3.2.11
enable_sql_desensitize_in_logβ
- Default: false
- Type: Boolean
- Unit: -
- Is mutable: No
- Description: When this item is set to
true, the system replaces or hides sensitive SQL content before it is written to logs and query-detail records. Code paths that honor this configuration include ConnectProcessor.formatStmt (audit logs), StmtExecutor.addRunningQueryDetail (query details), and SimpleExecutor.formatSQL (internal executor logs). With the feature enabled, invalid SQLs may be replaced with a fixed desensitized message, credentials (user/password) are hidden, and the SQL formatter is required to produce a sanitized representation (it can also enable digest-style output). This reduces leakage of sensitive literals and credentials in audit/internal logs but also means logs and query details no longer contain the original full SQL text (which can affect replay or debugging). - Introduced in: -
internal_log_delete_ageβ
- Default: 7d
- Type: String
- Unit: -
- Is mutable: No
- Description: Specifies the retention period for FE internal log files (written to
internal_log_dir). The value is a duration string. Supported suffixes:d(day),h(hour),m(minute),s(second). Examples:7d(7 days),10h(10 hours),60m(60 minutes),120s(120 seconds). This item is substituted into the log4j configuration as the<IfLastModified age="..."/>predicate used by the RollingFile Delete policy. Files whose last-modified time is earlier than this duration will be removed during log rollover. Increase this value to free disk space sooner, or decrease it to retain internal materialized view or statistics logs longer. - Introduced in: v3.2.4
internal_log_dirβ
- Default:
Config.STARROCKS_HOME_DIR+ "/log" - Type: String
- Unit: -
- Is mutable: No
- Description: Directory used by the FE logging subsystem for storing internal logs (
fe.internal.log). This configuration is substituted into the Log4j configuration and determines where the InternalFile appender writes internal/materialized view/statistics logs and where per-module loggers underinternal.<module>place their files. Ensure the directory exists, is writable, and has sufficient disk space. Log rotation and retention for files in this directory are controlled bylog_roll_size_mb,internal_log_roll_num,internal_log_delete_age, andinternal_log_roll_interval. Ifsys_log_to_consoleis enabled, internal logs may be written to console instead of this directory. - Introduced in: v3.2.4
internal_log_json_formatβ
- Default: false
- Type: Boolean
- Unit: -
- Is mutable: Yes
- Description: When this item is set to
true, internal statistic/audit entries are written as compact JSON objects to the statistic audit logger. The JSON contains keys "executeType" (InternalType: QUERY or DML), "queryId", "sql", and "time" (elapsed milliseconds). When it is set tofalse, the same information is logged as a single formatted text line ("statistic execute: ... | QueryId: [...] | SQL: ..."). Enabling JSON improves machine parsing and integration with log processors but also causes raw SQL text to be included in logs, which may expose sensitive information and increase log size. - Introduced in: -
internal_log_modulesβ
- Default:
{"base", "statistic"} - Type: String[]
- Unit: -
- Is mutable: No
- Description: A list of module identifiers that will receive dedicated internal logging. For each entry X, Log4j creates a logger named
internal.<X>with level INFO and additivity="false". Those loggers are routed to the internal appender (written tofe.internal.log) or to console whensys_log_to_consoleis enabled. Use short names or package fragments as needed β the exact logger name becomesinternal.+ the configured string. Internal log file rotation and retention followinternal_log_dir,internal_log_roll_num,internal_log_delete_age,internal_log_roll_interval, andlog_roll_size_mb. Adding a module causes its runtime messages to be separated into the internal logger stream for easier debugging and audit. - Introduced in: v3.2.4
internal_log_roll_intervalβ
- Default: DAY
- Type: String
- Unit: -
- Is mutable: No
- Description: Controls the time-based roll interval for the FE internal log appender. Accepted values (case-insensitive) are
HOURandDAY.HOURproduces an hourly file pattern ("%d{yyyyMMddHH}") andDAYproduces a daily file pattern ("%d{yyyyMMdd}"), which are used by the RollingFile TimeBasedTriggeringPolicy to name rotatedfe.internal.logfiles. An invalid value causes initialization to fail (an IOException is thrown when building the active Log4j configuration). Roll behavior also depends on related settings such asinternal_log_dir,internal_roll_maxsize,internal_log_roll_num, andinternal_log_delete_age. - Introduced in: v3.2.4
internal_log_roll_numβ
- Default: 90
- Type: Int
- Unit: -
- Is mutable: No
- Description: Maximum number of rolled internal FE log files to retain for the internal appender (
fe.internal.log). This value is used as the Log4j DefaultRolloverStrategymaxattribute; when rollovers occur, StarRocks keeps up tointernal_log_roll_numarchived files and removes older ones (also governed byinternal_log_delete_age). A lower value reduces disk usage but shortens log history; a higher value preserves more historical internal logs. This item works together withinternal_log_dir,internal_log_roll_interval, andinternal_roll_maxsize. - Introduced in: v3.2.4
log_cleaner_audit_log_min_retention_daysβ
- Default: 3
- Type: Int
- Unit: Days
- Is mutable: Yes
- Description: Minimum retention days for audit log files. Audit log files newer than this will not be deleted even if disk usage is high. This ensures that audit logs are preserved for compliance and troubleshooting purposes.
- Introduced in: -
log_cleaner_check_interval_secondβ
- Default: 300
- Type: Int
- Unit: Seconds
- Is mutable: Yes
- Description: Interval in seconds to check disk usage and clean logs. The cleaner periodically checks each log directory's disk usage and triggers cleaning when necessary. Default is 300 seconds (5 minutes).
- Introduced in: -
log_cleaner_disk_usage_targetβ
- Default: 60
- Type: Int
- Unit: Percentage
- Is mutable: Yes
- Description: Target disk usage (percentage) after log cleaning. Log cleaning will continue until disk usage drops below this threshold. The cleaner deletes the oldest log files one by one until the target is reached.
- Introduced in: -
log_cleaner_disk_usage_thresholdβ
- Default: 80
- Type: Int
- Unit: Percentage
- Is mutable: Yes
- Description: Disk usage threshold (percentage) to trigger log cleaning. When disk usage exceeds this threshold, log cleaning will start. The cleaner checks each configured log directory independently and processes directories that exceed this threshold.
- Introduced in: -
log_cleaner_disk_util_based_enableβ
- Default: false
- Type: Boolean
- Unit: -
- Is mutable: Yes
- Description: Enable automatic log cleaning based on disk usage. When enabled, logs will be cleaned when disk usage exceeds the threshold. The log cleaner runs as a background daemon on the FE node and helps prevent disk space exhaustion from log file accumulation.
- Introduced in: -
log_plan_cancelled_by_crash_beβ
- Default: true
- Type: boolean
- Unit: -
- Is mutable: Yes
- Description: Whether to enable the query execution plan logging when a query is cancelled due to BE crash or an RPC exception. When this feature is enabled, StarRocks logs the query execution plan (at
TExplainLevel.COSTS) as a WARN entry when a query is cancelled due to BE crash or anRpcException. The log entry includes QueryId, SQL and the COSTS plan; in the ExecuteExceptionHandler path, the exception stacktrace is also logged. The logging is skipped whenenable_collect_query_detail_infois enabled (the plan is then stored in the query detail) β in code paths, the check is performed by verifying the query detail is null. Note that, in ExecuteExceptionHandler, the plan is logged only on the first retry (retryTime == 0). Enabling this may increase log volume because full COSTS plans can be large. - Introduced in: v3.2.0
log_register_and_unregister_query_idβ
- Default: false
- Type: Boolean
- Unit: -
- Is mutable: Yes
- Description: Whether to allow FE to log query registration and deregistration messages (e.g.,
"register query id = {}"and"deregister query id = {}") from QeProcessorImpl. The log is emitted only when the query has a non-null ConnectContext and either the command is notCOM_STMT_EXECUTEor the session variableisAuditExecuteStmt()is true. Because these messages are written for every query lifecycle event, enabling this feature can produce high log volume and become a throughput bottleneck in high concurrency environments. Enable it for debugging or auditing; and disable it to reduce logging overhead and improve performance. - Introduced in: v3.3.0, v3.4.0, v3.5.0
log_roll_size_mbβ
- Default: 1024
- Type: Int
- Unit: MB
- Is mutable: No
- Description: The maximum size of a system log file or an audit log file.
- Introduced in: -
proc_profile_file_retained_daysβ
- Default: 1
- Type: Int
- Unit: Days
- Is mutable: Yes
- Description: Number of days to retain process profiling files (CPU and memory) generated under
sys_log_dir/proc_profile. The ProcProfileCollector computes a cutoff by subtractingproc_profile_file_retained_daysdays from the current time (formatted as yyyyMMdd-HHmmss) and deletes profile files whose timestamp portion is lexicographically earlier than that cutoff (that is,timePart.compareTo(timeToDelete) < 0). File deletion also respects the size-based cutoff controlled byproc_profile_file_retained_size_bytes. Profile files use the prefixescpu-profile-andmem-profile-and are compressed after collection. - Introduced in: v3.2.12
proc_profile_file_retained_size_bytesβ
- Default: 2L * 1024 * 1024 * 1024 (2147483648)
- Type: Long
- Unit: Bytes
- Is mutable: Yes
- Description: Maximum total bytes of collected CPU and memory profile files (files named with prefixes
cpu-profile-andmem-profile-) to keep under the profile directory. When the sum of valid profile files exceedsproc_profile_file_retained_size_bytes, the collector deletes the oldest profile files until the remaining total size is less than or equal toproc_profile_file_retained_size_bytes. Files older thanproc_profile_file_retained_daysare also removed regardless of size. This setting controls disk usage for profile archives and interacts withproc_profile_file_retained_daysto determine deletion order and retention. - Introduced in: v3.2.12
profile_log_delete_ageβ
- Default: 1d
- Type: String
- Unit: -
- Is mutable: No
- Description: Controls how long FE profile log files are retained before they are eligible for deletion. The value is injected into Log4j's
<IfLastModified age="..."/>policy (viaLog4jConfig) and is applied together with rotation settings such asprofile_log_roll_intervalandprofile_log_roll_num. Supported suffixes:d(day),h(hour),m(minute),s(second). For example:7d(7 days),10h(10 hours),60m(60 minutes),120s(120 seconds). - Introduced in: v3.2.5
profile_log_dirβ
- Default:
Config.STARROCKS_HOME_DIR+ "/log" - Type: String
- Unit: -
- Is mutable: No
- Description: Directory where FE profile logs are written. Log4jConfig uses this value to place profile-related appenders (creates files like
fe.profile.logandfe.features.logunder this directory). Rotation and retention for these files are governed byprofile_log_roll_size_mb,profile_log_roll_numandprofile_log_delete_age; the timestamp suffix format is controlled byprofile_log_roll_interval(supports DAY or HOUR). Because the default directory is underSTARROCKS_HOME_DIR, ensure the FE process has write and rotation/delete permissions on this directory. - Introduced in: v3.2.5
profile_log_roll_intervalβ
- Default: DAY
- Type: String
- Unit: -
- Is mutable: No
- Description: Controls the time granularity used to generate the date part of profile log filenames. Valid values (case-insensitive) are
HOURandDAY.HOURproduces a pattern of"%d{yyyyMMddHH}"(hourly time bucket) andDAYproduces"%d{yyyyMMdd}"(daily time bucket). This value is used when computingprofile_file_patternin the Log4j configuration and only affects the time-based component of rollover file names; size-based rollover is still controlled byprofile_log_roll_size_mband retention byprofile_log_roll_num/profile_log_delete_age. Invalid values cause an IOException during logging initialization (error message:"profile_log_roll_interval config error: <value>"). ChooseHOURfor high-volume profiling to limit per-file size per hour, orDAYfor daily aggregation. - Introduced in: v3.2.5
profile_log_roll_numβ
- Default: 5
- Type: Int
- Unit: -
- Is mutable: No
- Description: Specifies the maximum number of rotated profile log files retained by Log4j's DefaultRolloverStrategy for the profile logger. This value is injected into the logging XML as
${profile_log_roll_num}(e.g.<DefaultRolloverStrategy max="${profile_log_roll_num}" fileIndex="min">). Rotations are triggered byprofile_log_roll_size_mborprofile_log_roll_interval; when rotation occurs, Log4j keeps at most these indexed files and older index files become eligible for removal. Actual retention on disk is also affected byprofile_log_delete_ageand theprofile_log_dirlocation. Lower values reduce disk usage but limit retained history; higher values preserve more historical profile logs. - Introduced in: v3.2.5
profile_log_roll_size_mbβ
- Default: 1024
- Type: Int
- Unit: MB
- Is mutable: No
- Description: Sets the size threshold (in megabytes) that triggers a size-based rollover of the FE profile log file. This value is used by the Log4j RollingFile SizeBasedTriggeringPolicy for the
ProfileFileappender; when a profile log exceedsprofile_log_roll_size_mbit will be rotated. Rotation can also occur by time whenprofile_log_roll_intervalis reached β either condition will trigger rollover. Combined withprofile_log_roll_numandprofile_log_delete_age, this item controls how many historical profile files are retained and when old files are deleted. Compression of rotated files is controlled byenable_profile_log_compress. - Introduced in: v3.2.5
qe_slow_log_msβ
- Default: 5000
- Type: Long
- Unit: Milliseconds
- Is mutable: Yes
- Description: The threshold used to determine whether a query is a slow query. If the response time of a query exceeds this threshold, it is recorded as a slow query in fe.audit.log.
- Introduced in: -
slow_lock_log_every_msβ
- Default: 3000L
- Type: Long
- Unit: Milliseconds
- Is mutable: Yes
- Description: Minimum interval (in ms) to wait before emitting another "slow lock" warning for the same SlowLockLogStats instance. LockUtils checks this value after a lock wait exceeds
slow_lock_threshold_msand will suppress additional warnings untilslow_lock_log_every_msmilliseconds have passed since the last logged slow-lock event. Use a larger value to reduce log volume during prolonged contention or a smaller value to get more frequent diagnostics. Changes take effect at runtime for subsequent checks. - Introduced in: v3.2.0
slow_lock_print_stackβ
- Default: true
- Type: Boolean
- Unit: -
- Is mutable: Yes
- Description: Whether to allow LockManager to include the owning thread's full stack trace in the JSON payload of slow-lock warnings emitted by
logSlowLockTrace(the "stack" array is populated viaLogUtil.getStackTraceToJsonArraywithstart=0andmax=Short.MAX_VALUE). This configuration controls only the extra stack information for lock owners shown when a lock acquisition exceeds the threshold configured byslow_lock_threshold_ms. Enabling this feature helps debugging by giving precise thread stacks that hold the lock; disabling it reduces log volume and CPU/memory overhead caused by capturing and serializing stack traces in high concurrency environments. - Introduced in: v3.3.16, v3.4.5, v3.5.1
slow_lock_threshold_msβ
- Default: 3000L
- Type: long
- Unit: Milliseconds
- Is mutable: Yes
- Description: Threshold (in ms) used to classify a lock operation or a held lock as "slow". When the elapsed wait or hold time for a lock exceeds this value, StarRocks will (depending on context) emit diagnostic logs, include stack traces or waiter/owner info, andβin LockManagerβstart deadlock detection after this delay. It's used by LockUtils (slow-lock logging), QueryableReentrantReadWriteLock (filtering slow readers), LockManager (deadlock-detection delay and slow-lock trace), LockChecker (periodic slow-lock detection), and other callers (e.g., DiskAndTabletLoadReBalancer logging). Lowering the value increases sensitivity and logging/diagnostic overhead; setting it to 0 or negative disables the initial wait-based deadlock-detection delay behavior. Tune together with
slow_lock_log_every_ms,slow_lock_print_stack, andslow_lock_stack_trace_reserve_levels. - Introduced in: 3.2.0
sys_log_delete_ageβ
- Default: 7d
- Type: String
- Unit: -
- Is mutable: No
- Description: The retention period of system log files. The default value
7dspecifies that each system log file can be retained for 7 days. StarRocks checks each system log file and deletes those that were generated 7 days ago. - Introduced in: -
sys_log_dirβ
- Default:
StarRocksFE.STARROCKS_HOME_DIR+ "/log" - Type: String
- Unit: -
- Is mutable: No
- Description: The directory that stores system log files.
- Introduced in: -
sys_log_enable_compressβ
- Default: false
- Type: boolean
- Unit: -
- Is mutable: No
- Description: When this item is set to
true, the system appends a ".gz" postfix to rotated system log filenames so Log4j will produce gzip-compressed rotated FE system logs (for example, fe.log.*). This value is read during Log4j configuration generation (Log4jConfig.initLogging / generateActiveLog4jXmlConfig) and controls thesys_file_postfixproperty used in the RollingFile filePattern. Enabling this feature reduces disk usage for retained logs but increases CPU and I/O during rollovers and changes log filenames, so that tools or scripts that read logs must be able to handle .gz files. Note that audit logs use a separate configuration for compression, that is,audit_log_enable_compress. - Introduced in: v3.2.12
sys_log_formatβ
- Default: "plaintext"
- Type: String
- Unit: -
- Is mutable: No
- Description: Selects the Log4j layout used for FE logs. Valid values:
"plaintext"(Default) and"json". The values are case-insensitive."plaintext"configures PatternLayout with human-readable timestamps, level, thread, class.method:line and stack traces for WARN/ERROR."json"configures JsonTemplateLayout and emits structured JSON events (UTC timestamps, level, thread id/name, source file/method/line, message, exception stackTrace) suitable for log aggregators (ELK, Splunk). JSON output abides bysys_log_json_max_string_lengthandsys_log_json_profile_max_string_lengthfor maximum string lengths. - Introduced in: v3.2.10
sys_log_json_max_string_lengthβ
- Default: 1048576
- Type: Int
- Unit: Bytes
- Is mutable: No
- Description: Sets the JsonTemplateLayout "maxStringLength" value used for the JSON-formatted system logs. When
sys_log_formatis set to"json", string-valued fields (for example "message" and stringified exception stack traces) are truncated if their length exceeds this limit. The value is injected into the generated Log4j XML inLog4jConfig.generateActiveLog4jXmlConfig(), and is applied to default, warning, audit, dump and bigquery layouts. The profile layout uses a separate configuration (sys_log_json_profile_max_string_length). Lowering this value reduces log size but can truncate useful information. - Introduced in: 3.2.11
sys_log_json_profile_max_string_lengthβ
- Default: 104857600 (100 MB)
- Type: Int
- Unit: Bytes
- Is mutable: No
- Description: Sets the maxStringLength of JsonTemplateLayout for profile (and related feature) log appenders when
sys_log_formatis "json". String field values in JSON-formatted profile logs will be truncated to this byte length; non-string fields are unaffected. This item is applied in Log4jConfigJsonTemplateLayout maxStringLengthand is ignored whenplaintextlogging is used. Keep the value large enough for full messages you need, but note larger values increase log size and I/O. - Introduced in: v3.2.11
sys_log_levelβ
- Default: INFO
- Type: String
- Unit: -
- Is mutable: No
- Description: The severity levels into which system log entries are classified. Valid values:
INFO,WARN,ERROR, andFATAL. - Introduced in: -
sys_log_roll_intervalβ
- Default: DAY
- Type: String
- Unit: -
- Is mutable: No
- Description: The time interval at which StarRocks rotates system log entries. Valid values:
DAYandHOUR.- If this parameter is set to
DAY, a suffix in theyyyyMMddformat is added to the names of system log files. - If this parameter is set to
HOUR, a suffix in theyyyyMMddHHformat is added to the names of system log files.
- If this parameter is set to
- Introduced in: -
sys_log_roll_numβ
- Default: 10
- Type: Int
- Unit: -
- Is mutable: No
- Description: The maximum number of system log files that can be retained within each retention period specified by the
sys_log_roll_intervalparameter. - Introduced in: -
sys_log_to_consoleβ
- Default: false (unless the environment variable
SYS_LOG_TO_CONSOLEis set to "1") - Type: Boolean
- Unit: -
- Is mutable: No
- Description: When this item is set to
true, the system configures Log4j to send all logs to the console (ConsoleErr appender) instead of the file-based appenders. This value is read when generating the active Log4j XML configuration (which affects the root logger and per-module logger appender selection). Its value is captured from theSYS_LOG_TO_CONSOLEenvironment variable at process startup. Changing it at runtime has no effect. This configuration is commonly used in containerized or CI environments where stdout/stderr log collection is preferred over writing log files. - Introduced in: v3.2.0
sys_log_verbose_modulesβ
- Default: Empty string
- Type: String[]
- Unit: -
- Is mutable: No
- Description: The modules for which StarRocks generates system logs. If this parameter is set to
org.apache.starrocks.catalog, StarRocks generates system logs only for the catalog module. Separate the module names with a comma (,) and a space. - Introduced in: -
sys_log_warn_modulesβ
- Default:
- Type: String[]
- Unit: -
- Is mutable: No
- Description: A list of logger names or package prefixes that the system will configure at startup as WARN-level loggers and route to the warning appender (SysWF) β the
fe.warn.logfile. Entries are inserted into the generated Log4j configuration (alongside builtin warn modules such as org.apache.kafka, org.apache.hudi, and org.apache.hadoop.io.compress) and produce logger elements like<Logger name="... " level="WARN"><AppenderRef ref="SysWF"/></Logger>. Fully-qualified package and class prefixes (for example, "com.example.lib") are recommended to suppress noisy INFO/DEBUG output into the regular log and to allow warnings to be captured separately. - Introduced in: v3.2.13
Serverβ
brpc_idle_wait_max_timeβ
- Default: 10000
- Type: Int
- Unit: ms
- Is mutable: No
- Description: The maximum length of time for which bRPC clients wait as in the idle state.
- Introduced in: -
brpc_inner_reuse_poolβ
- Default: true
- Type: boolean
- Unit: -
- Is mutable: No
- Description: Controls whether the underlying BRPC client uses an internal shared reuse pool for connections/channels. StarRocks reads
brpc_inner_reuse_poolin BrpcProxy when constructing RpcClientOptions (viarpcOptions.setInnerResuePool(...)). When enabled (true) the RPC client reuses internal pools to reduce per-call connection creation, lowering connection churn, memory and file-descriptor usage for FE-to-BE / LakeService RPCs. When disabled (false) the client may create more isolated pools (increasing concurrency isolation at the cost of higher resource usage). Changing this value requires restarting the process to take effect. - Introduced in: v3.3.11, v3.4.1, v3.5.0
brpc_min_evictable_idle_time_msβ
- Default: 120000
- Type: Int
- Unit: Milliseconds
- Is mutable: No
- Description: Time in milliseconds that an idle BRPC connection must remain in the connection pool before it becomes eligible for eviction. Applied to the RpcClientOptions used by
BrpcProxy(via RpcClientOptions.setMinEvictableIdleTime). Raise this value to keep idle connections longer (reducing reconnect churn); lower it to free unused sockets faster (reducing resource usage). Tune together withbrpc_connection_pool_sizeandbrpc_idle_wait_max_timeto balance connection reuse, pool growth, and eviction behavior. - Introduced in: v3.3.11, v3.4.1, v3.5.0
brpc_reuse_addrβ
- Default: true
- Type: Boolean
- Unit: -
- Is mutable: No
- Description: When true, StarRocks sets the socket option to allow local address reuse for client sockets created by the brpc RpcClient (via RpcClientOptions.setReuseAddress). Enabling this reduces bind failures and allows faster rebinding of local ports after sockets are closed, which is helpful for high-rate connection churn or rapid restarts. When false, address/port reuse is disabled, which can reduce the chance of unintended port sharing but may increase transient bind errors. This option interacts with connection behavior configured by
brpc_connection_pool_sizeandbrpc_short_connectionbecause it affects how rapidly client sockets can be rebound and reused. - Introduced in: v3.3.11, v3.4.1, v3.5.0
cluster_nameβ
- Default: StarRocks Cluster
- Type: String
- Unit: -
- Is mutable: No
- Description: The name of the StarRocks cluster to which the FE belongs. The cluster name is displayed for
Titleon the web page. - Introduced in: -
enable_http_async_handlerβ
- Default: true
- Type: Boolean
- Unit: -
- Is mutable: Yes
- Description: Whether to allow the system to process HTTP requests asynchronously. If this feature is enabled, an HTTP request received by Netty worker threads will then be submitted to a separate thread pool for service logic handling to avoid blocking the HTTP server. If disabled, Netty workers will handle the service logic.
- Introduced in: 4.0.0
enable_http_validate_headersβ
- Default: false
- Type: Boolean
- Unit: -
- Is mutable: No
- Description: Controls whether Netty's HttpServerCodec performs strict HTTP header validation. The value is passed to HttpServerCodec when the HTTP pipeline is initialized in
HttpServer(see UseLocations). Default is false for backward compatibility because newer netty versions enforce stricter header rules (https://github.com/netty/netty/pull/12760). Set to true to enforce RFC-compliant header checks; doing so may cause malformed or nonconforming requests from legacy clients or proxies to be rejected. Change requires a restart of the HTTP server to take effect. - Introduced in: v3.3.0, v3.4.0, v3.5.0
enable_httpsβ
- Default: false
- Type: Boolean
- Unit: -
- Is mutable: No
- Description: Whether to enable HTTPS server alongside HTTP server in FE nodes.
- Introduced in: v4.0
frontend_addressβ
- Default: 0.0.0.0
- Type: String
- Unit: -
- Is mutable: No
- Description: The IP address of the FE node.
- Introduced in: -
http_async_threads_numβ
- Default: 4096
- Type: Int
- Unit: -
- Is mutable: Yes
- Description: Size of the thread pool for asynchronous HTTP request processing. The alias is
max_http_sql_service_task_threads_num. - Introduced in: 4.0.0
http_backlog_numβ
- Default: 1024
- Type: Int
- Unit: -
- Is mutable: No
- Description: The length of the backlog queue held by the HTTP server in the FE node.
- Introduced in: -
http_max_chunk_sizeβ
- Default: 8192
- Type: Int
- Unit: Bytes
- Is mutable: No
- Description: Sets the maximum allowed size (in bytes) of a single HTTP chunk handled by Netty's HttpServerCodec in the FE HTTP server. It is passed as the third argument to HttpServerCodec and limits the length of chunks during chunked transfer or streaming requests/responses. If an incoming chunk exceeds this value, Netty will raise a frame-too-large error (e.g., TooLongFrameException) and the request may be rejected. Increase this for legitimate large chunked uploads; keep it small to reduce memory pressure and surface area for DoS attacks. This setting is used alongside
http_max_initial_line_length,http_max_header_size, andenable_http_validate_headers. - Introduced in: v3.2.0
http_max_header_sizeβ
- Default: 32768
- Type: Int
- Unit: Bytes
- Is mutable: No
- Description: Maximum allowed size in bytes for the HTTP request header block parsed by Netty's
HttpServerCodec. StarRocks passes this value toHttpServerCodec(asConfig.http_max_header_size); if an incoming request's headers (names and values combined) exceed this limit, the codec will reject the request (decoder exception) and the connection/request will fail. Increase only when clients legitimately send very large headers (large cookies or many custom headers); larger values increase per-connection memory use. Tune in conjunction withhttp_max_initial_line_lengthandhttp_max_chunk_size. Changes require FE restart. - Introduced in: v3.2.0
http_max_initial_line_lengthβ
- Default: 4096
- Type: Int
- Unit: Bytes
- Is mutable: No
- Description: Sets the maximum allowed length (in bytes) of the HTTP initial request line (method + request-target + HTTP version) accepted by the Netty
HttpServerCodecused in HttpServer. The value is passed to Netty's decoder and requests with an initial line longer than this will be rejected (TooLongFrameException). Increase this only when you must support very long request URIs; larger values increase memory use and may raise exposure to malformed/request-abuse. Tune together withhttp_max_header_sizeandhttp_max_chunk_size. - Introduced in: v3.2.0
http_portβ
- Default: 8030
- Type: Int
- Unit: -
- Is mutable: No
- Description: The port on which the HTTP server in the FE node listens.
- Introduced in: -
http_web_page_display_hardwareβ
- Default: true
- Type: Boolean
- Unit: -
- Is mutable: Yes
- Description: When true, the HTTP index page (/index) will include a hardware information section populated via the oshi library (CPU, memory, processes, disks, filesystems, network, etc.). oshi may invoke system utilities or read system files indirectly (for example, it can execute commands such as
getent passwd), which can surface sensitive system data. If you require stricter security or want to avoid executing those indirect commands on the host, set this configuration to false to disable collection and display of hardware details on the web UI. - Introduced in: v3.2.0
http_worker_threads_numβ
- Default: 0
- Type: Int
- Unit: -
- Is mutable: No
- Description: Number of worker threads for http server to deal with http requests. For a negative or 0 value, the number of threads will be twice the number of cpu cores.
- Introduced in: v2.5.18, v3.0.10, v3.1.7, v3.2.2
https_portβ
- Default: 8443
- Type: Int
- Unit: -
- Is mutable: No
- Description: The port on which the HTTPS server in the FE node listens.
- Introduced in: v4.0
max_mysql_service_task_threads_numβ
- Default: 4096
- Type: Int
- Unit: -
- Is mutable: No
- Description: The maximum number of threads that can be run by the MySQL server in the FE node to process tasks.
- Introduced in: -
max_task_runs_threads_numβ
- Default: 512
- Type: Int
- Unit: Threads
- Is mutable: No
- Description: Controls the maximum number of threads in the task-run executor thread pool. This value is the upper bound of concurrent task-run executions; increasing it raises parallelism but also increases CPU, memory, and network usage, while reducing it can cause task-run backlog and higher latency. Tune this value according to expected concurrent scheduled jobs and available system resources.
- Introduced in: v3.2.0
memory_tracker_enableβ
- Default: true
- Type: Boolean
- Unit: -
- Is mutable: Yes
- Description: Enables the FE memory tracker subsystem. When
memory_tracker_enableis set totrue,MemoryUsageTrackerperiodically scans registered metadata modules, updates the in-memoryMemoryUsageTracker.MEMORY_USAGEmap, logs totals, and causesMetricRepoto expose memory usage and object-count gauges in metrics output. Usememory_tracker_interval_secondsto control the sampling interval. Enabling this feature helps monitoring and debugging memory consumption but introduces CPU and I/O overhead and additional metric cardinality. - Introduced in: v3.2.4
memory_tracker_interval_secondsβ
- Default: 60
- Type: Int
- Unit: Seconds
- Is mutable: Yes
- Description: Interval in seconds for the FE
MemoryUsageTrackerdaemon to poll and record memory usage of the FE process and registeredMemoryTrackablemodules. Whenmemory_tracker_enableis set totrue, the tracker runs on this cadence, updatesMEMORY_USAGE, and logs aggregated JVM and tracked-module usage. - Introduced in: v3.2.4
mysql_nio_backlog_numβ
- Default: 1024
- Type: Int
- Unit: -
- Is mutable: No
- Description: The length of the backlog queue held by the MySQL server in the FE node.
- Introduced in: -
mysql_server_versionβ
- Default: 8.0.33
- Type: String
- Unit: -
- Is mutable: Yes
- Description: The MySQL server version returned to the client. Modifying this parameter will affect the version information in the following situations:
select version();- Handshake packet version
- Value of the global variable
version(show variables like 'version';)
- Introduced in: -
mysql_service_io_threads_numβ
- Default: 4
- Type: Int
- Unit: -
- Is mutable: No
- Description: The maximum number of threads that can be run by the MySQL server in the FE node to process I/O events.
- Introduced in: -
mysql_service_kill_after_disconnectβ
- Default: true
- Type: Boolean
- Unit: -
- Is mutable: No
- Description: Controls how the server handles the session when the MySQL TCP connection is detected closed (EOF on read). If it is set to
true, the server immediately kills any running query for that connection and performs immediate cleanup. If it isfalse, the server does not kill running queries on disconnection and only performs cleanup when there are no pending request tasks, allowing long-running queries to continue after client disconnects. Note: despite a brief comment suggesting TCP keepβalive, this parameter specifically governs post-disconnection killing behavior and should be set according to whether you want orphaned queries terminated (recommended behind unreliable/loadβbalanced clients) or allowed to finish. - Introduced in: -
mysql_service_nio_enable_keep_aliveβ
- Default: true
- Type: Boolean
- Unit: -
- Is mutable: No
- Description: Enable TCP Keep-Alive for MySQL connections. Useful for long-idled connections behind load balancers.
- Introduced in: -
net_use_ipv6_when_priority_networks_emptyβ
- Default: false
- Type: Boolean
- Unit: -
- Is mutable: No
- Description: A boolean value to control whether to use IPv6 addresses preferentially when
priority_networksis not specified.trueindicates to allow the system to use an IPv6 address preferentially when the server that hosts the node has both IPv4 and IPv6 addresses andpriority_networksis not specified. - Introduced in: v3.3.0
priority_networksβ
- Default: Empty string
- Type: String
- Unit: -
- Is mutable: No
- Description: Declares a selection strategy for servers that have multiple IP addresses. Note that at most one IP address must match the list specified by this parameter. The value of this parameter is a list that consists of entries, which are separated with semicolons (;) in CIDR notation, such as 10.10.10.0/24. If no IP address matches the entries in this list, an available IP address of the server will be randomly selected. From v3.3.0, StarRocks supports deployment based on IPv6. If the server has both IPv4 and IPv6 addresses, and this parameter is not specified, the system uses an IPv4 address by default. You can change this behavior by setting
net_use_ipv6_when_priority_networks_emptytotrue. - Introduced in: -
proc_profile_cpu_enableβ
- Default: true
- Type: Boolean
- Unit: -
- Is mutable: Yes
- Description: When this item is set to
true, the backgroundProcProfileCollectorwill collect CPU profiles usingAsyncProfilerand write HTML reports undersys_log_dir/proc_profile. Each collection run records CPU stacks for the duration configured byproc_profile_collect_time_sand usesproc_profile_jstack_depthfor Java stack depth. Generated profiles are compressed and old files are pruned according toproc_profile_file_retained_daysandproc_profile_file_retained_size_bytes.AsyncProfilerrequires the native library (libasyncProfiler.so);one.profiler.extractPathis set toSTARROCKS_HOME_DIR/binto avoid noexec issues on/tmp. - Introduced in: v3.2.12
qe_max_connectionβ
- Default: 4096
- Type: Int
- Unit: -
- Is mutable: No
- Description: The maximum number of connections that can be established by all users to the FE node. From v3.1.12 and v3.2.7 onwards, the default value has been changed from
1024to4096. - Introduced in: -
query_portβ
- Default: 9030
- Type: Int
- Unit: -
- Is mutable: No
- Description: The port on which the MySQL server in the FE node listens.
- Introduced in: -
rpc_portβ
- Default: 9020
- Type: Int
- Unit: -
- Is mutable: No
- Description: The port on which the Thrift server in the FE node listens.
- Introduced in: -
slow_lock_stack_trace_reserve_levelsβ
- Default: 15
- Type: Int
- Unit: -
- Is mutable: Yes
- Description: Controls how many stack-trace frames are captured and emitted when StarRocks dumps lock debug information for slow or held locks. This value is passed to
LogUtil.getStackTraceToJsonArraybyQueryableReentrantReadWriteLockwhen producing JSON for the exclusive lock owner, current thread, and oldest/shared readers. Increasing this value provides more context for diagnosing slow-lock or deadlock issues at the cost of larger JSON payloads and slightly higher CPU/memory for stack capture; decreasing it reduces overhead. Note: reader entries can be filtered byslow_lock_threshold_mswhen only logging slow locks. - Introduced in: v3.4.0, v3.5.0
ssl_cipher_blacklistβ
- Default: Empty string
- Type: String
- Unit: -
- Is mutable: No
- Description: Comma separated list, with regex support to blacklist ssl cipher suites by IANA names. If both whitelist and blacklist are set, blacklist takes precedence.
- Introduced in: v4.0
ssl_cipher_whitelistβ
- Default: Empty string
- Type: String
- Unit: -
- Is mutable: No
- Description: Comma separated list, with regex support to whitelist ssl cipher suites by IANA names. If both whitelist and blacklist are set, blacklist takes precedence.
- Introduced in: v4.0
task_runs_concurrencyβ
- Default: 4
- Type: Int
- Unit: -
- Is mutable: Yes
- Description: Global limit of concurrently running TaskRun instances.
TaskRunSchedulerstops scheduling new runs when current running count is greater than or equal totask_runs_concurrency, so this value caps parallel TaskRun execution across the scheduler. It is also used byMVPCTRefreshPartitionerto compute per-TaskRun partition refresh granularity. Increasing the value raises parallelism and resource usage; decreasing it reduces concurrency and makes partition refreshes larger per run. Do not set to 0 or negative unless intentionally disabling scheduling: 0 (or negative) will effectively prevent new TaskRuns from being scheduled byTaskRunScheduler. - Introduced in: v3.2.0
task_runs_queue_lengthβ
- Default: 500
- Type: Int
- Unit: -
- Is mutable: Yes
- Description: Limits the maximum number of pending TaskRun items kept in the pending queue.
TaskRunManagerchecks the current pending count and rejects new submissions when valid pending TaskRun count is greater than or equal totask_runs_queue_length. The same limit is rechecked before merged/accepted TaskRuns are added. Tune this value to balance memory and scheduling backlog: set higher for large bursty workloads to avoid rejects, or lower to bound memory and reduce pending backlog. - Introduced in: v3.2.0
thrift_backlog_numβ
- Default: 1024
- Type: Int
- Unit: -
- Is mutable: No
- Description: The length of the backlog queue held by the Thrift server in the FE node.
- Introduced in: -
thrift_client_timeout_msβ
- Default: 5000
- Type: Int
- Unit: Milliseconds
- Is mutable: No
- Description: The length of time after which idle client connections time out.
- Introduced in: -
thrift_rpc_max_body_sizeβ
- Default: -1
- Type: Int
- Unit: Bytes
- Is mutable: No
- Description: Controls the maximum allowed Thrift RPC message body size (in bytes) used when constructing the server's Thrift protocol (passed to TBinaryProtocol.Factory in
ThriftServer). A value of-1disables the limit (unbounded). Setting a positive value enforces an upper bound so that messages larger than this are rejected by the Thrift layer, which helps limit memory usage and mitigate oversized-request or DoS risks. Set this to a size large enough for expected payloads (large structs or batched data) to avoid rejecting legitimate requests. - Introduced in: v3.2.0
thrift_server_max_worker_threadsβ
- Default: 4096
- Type: Int
- Unit: -
- Is mutable: Yes
- Description: The maximum number of worker threads that are supported by the Thrift server in the FE node.
- Introduced in: -
thrift_server_queue_sizeβ
- Default: 4096
- Type: Int
- Unit: -
- Is mutable: No
- Description: The length of queue where requests are pending. If the number of threads that are being processed in the thrift server exceeds the value specified in
thrift_server_max_worker_threads, new requests are added to the pending queue. - Introduced in: -
Metadata and cluster managementβ
alter_max_worker_queue_sizeβ
- Default: 4096
- Type: Int
- Unit: Tasks
- Is mutable: No
- Description: Controls the capacity of the internal worker thread pool queue used by the alter subsystem. It is passed to
ThreadPoolManager.newDaemonCacheThreadPoolinAlterHandlertogether withalter_max_worker_threads. When the number of pending alter tasks exceedsalter_max_worker_queue_size, new submissions will be rejected and aRejectedExecutionExceptioncan be thrown (seeAlterHandler.handleFinishAlterTask). Tune this value to balance memory usage and the amount of backlog you permit for concurrent alter tasks. - Introduced in: v3.2.0
alter_max_worker_threadsβ
- Default: 4
- Type: Int
- Unit: Threads
- Is mutable: No
- Description: Sets the maximum number of worker threads in the AlterHandler's thread pool. The AlterHandler constructs the executor with this value to run and finalize alter-related tasks (e.g., submitting
AlterReplicaTaskvia handleFinishAlterTask). This value bounds concurrent execution of alter operations; raising it increases parallelism and resource usage, lowering it limits concurrent alters and may become a bottleneck. The executor is created together withalter_max_worker_queue_size, and the handler scheduling usesalter_scheduler_interval_millisecond. - Introduced in: v3.2.0
automated_cluster_snapshot_interval_secondsβ
- Default: 600
- Type: Int
- Unit: Seconds
- Is mutable: Yes
- Description: The interval at which the Automated Cluster Snapshot tasks are triggered.
- Introduced in: v3.4.2
background_refresh_metadata_interval_millisβ
- Default: 600000
- Type: Int
- Unit: Milliseconds
- Is mutable: Yes
- Description: The interval between two consecutive Hive metadata cache refreshes.
- Introduced in: v2.5.5
background_refresh_metadata_time_secs_since_last_access_secsβ
- Default: 3600 * 24
- Type: Long
- Unit: Seconds
- Is mutable: Yes
- Description: The expiration time of a Hive metadata cache refresh task. For the Hive catalog that has been accessed, if it has not been accessed for more than the specified time, StarRocks stops refreshing its cached metadata. For the Hive catalog that has not been accessed, StarRocks will not refresh its cached metadata.
- Introduced in: v2.5.5
bdbje_cleaner_threadsβ
- Default: 1
- Type: Int
- Unit: -
- Is mutable: No
- Description: Number of background cleaner threads for the Berkeley DB Java Edition (JE) environment used by StarRocks journal. This value is read during environment initialization in
BDBEnvironment.initConfigsand applied toEnvironmentConfig.CLEANER_THREADSusingConfig.bdbje_cleaner_threads. It controls parallelism for JE log cleaning and space reclamation; increasing it can speed up cleaning at the cost of additional CPU and I/O interference with foreground operations. Changes take effect only when the BDB environment is (re)initialized, so a frontend restart is required to apply a new value. - Introduced in: v3.2.0
bdbje_heartbeat_timeout_secondβ
- Default: 30
- Type: Int
- Unit: Seconds
- Is mutable: No
- Description: The amount of time after which the heartbeats among the leader, follower, and observer FEs in the StarRocks cluster time out.
- Introduced in: -
bdbje_lock_timeout_secondβ
- Default: 1
- Type: Int
- Unit: Seconds
- Is mutable: No
- Description: The amount of time after which a lock in the BDB JE-based FE times out.
- Introduced in: -
bdbje_replay_cost_percentβ
- Default: 150
- Type: Int
- Unit: Percent
- Is mutable: No
- Description: Sets the relative cost (as a percentage) of replaying transactions from a BDB JE log versus obtaining the same data via a network restore. The value is supplied to the underlying JE replication parameter
REPLAY_COST_PERCENTand is typically>100to indicate that replay is usually more expensive than a network restore. When deciding whether to retain cleaned log files for potential replay, the system compares replay cost multiplied by log size against the cost of a network restore; files will be removed if network restore is judged more efficient. A value of 0 disables retention based on this cost comparison. Log files required for replicas withinREP_STREAM_TIMEOUTor for any active replication are always retained. - Introduced in: v3.2.0
bdbje_replica_ack_timeout_secondβ
- Default: 10
- Type: Int
- Unit: Seconds
- Is mutable: No
- Description: The maximum amount of time for which the leader FE can wait for ACK messages from a specified number of follower FEs when metadata is written from the leader FE to the follower FEs. Unit: second. If a large amount of metadata is being written, the follower FEs require a long time before they can return ACK messages to the leader FE, causing ACK timeout. In this situation, metadata writes fail, and the FE process exits. We recommend that you increase the value of this parameter to prevent this situation.
- Introduced in: -
bdbje_reserved_disk_sizeβ
- Default: 512 * 1024 * 1024 (536870912)
- Type: Long
- Unit: Bytes
- Is mutable: No
- Description: Limits the number of bytes Berkeley DB JE will reserve as "unprotected" (deletable) log/data files. StarRocks passes this value to JE via
EnvironmentConfig.RESERVED_DISKin BDBEnvironment; JE's built-in default is 0 (unlimited). The StarRocks default (512 MiB) prevents JE from reserving excessive disk space for unprotected files while allowing safe cleanup of obsolete files. Tune this value on disk-constrained systems: decreasing it lets JE free more files sooner, increasing it lets JE retain more reserved space. Changes require restarting the process to take effect. - Introduced in: v3.2.0
bdbje_reset_election_groupβ
- Default: false
- Type: String
- Unit: -
- Is mutable: No
- Description: Whether to reset the BDBJE replication group. If this parameter is set to
TRUE, the FE will reset the BDBJE replication group (that is, remove the information of all electable FE nodes) and start as the leader FE. After the reset, this FE will be the only member in the cluster, and other FEs can rejoin this cluster by usingALTER SYSTEM ADD/DROP FOLLOWER/OBSERVER 'xxx'. Use this setting only when no leader FE can be elected because the data of most follower FEs have been damaged.reset_election_groupis used to replacemetadata_failure_recovery. - Introduced in: -
black_host_connect_failures_within_timeβ
- Default: 5
- Type: Int
- Unit: -
- Is mutable: Yes
- Description: The threshold of connection failures allowed for a blacklisted BE node. If a BE node is added to the BE Blacklist automatically, StarRocks will assess its connectivity and judge whether it can be removed from the BE Blacklist. Within
black_host_history_sec, only if a blacklisted BE node has fewer connection failures than the threshold set inblack_host_connect_failures_within_time, it can be removed from the BE Blacklist. - Introduced in: v3.3.0
black_host_history_secβ
- Default: 2 * 60
- Type: Int
- Unit: Seconds
- Is mutable: Yes
- Description: The time duration for retaining historical connection failures of BE nodes in the BE Blacklist. If a BE node is added to the BE Blacklist automatically, StarRocks will assess its connectivity and judge whether it can be removed from the BE Blacklist. Within
black_host_history_sec, only if a blacklisted BE node has fewer connection failures than the threshold set inblack_host_connect_failures_within_time, it can be removed from the BE Blacklist. - Introduced in: v3.3.0