diff --git a/docs/en/FE_configuration.md b/docs/en/FE_configuration.md new file mode 100644 index 00000000..e7da215a --- /dev/null +++ b/docs/en/FE_configuration.md @@ -0,0 +1,4493 @@ +--- +displayed_sidebar: docs +--- + +import FEConfigMethod from '../../_assets/commonMarkdown/FE_config_method.mdx' + +import AdminSetFrontendNote from '../../_assets/commonMarkdown/FE_config_note.mdx' + +import StaticFEConfigNote from '../../_assets/commonMarkdown/StaticFE_config_note.mdx' + +import EditionSpecificFEItem from '../../_assets/commonMarkdown/Edition_Specific_FE_Item.mdx' + +# FE Configuration + + + +## 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: + +```SQL +ADMIN SHOW FRONTEND CONFIG [LIKE "pattern"]; +``` + +For detailed description of the returned fields, see [ADMIN SHOW CONFIG](../../sql-reference/sql-statements/cluster-management/config_vars/ADMIN_SHOW_CONFIG.md). + +:::note +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](../../sql-reference/sql-statements/cluster-management/config_vars/ADMIN_SET_CONFIG.md). + +```SQL +ADMIN SET FRONTEND CONFIG ("key" = "value"); +``` + + + +### Configure FE static parameters + + + +## 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 `30d` specifies 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_query` module and the `query` module. The `connection` module 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: `DAY` and `HOUR`. + - If this parameter is set to `DAY`, a suffix in the `yyyyMMdd` format is added to the names of audit log files. + - If this parameter is set to `HOUR`, a suffix in the `yyyyMMddHH` format is added to the names of audit log files. +- 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_interval` parameter. +- 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.je` package 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 include `d` (day), `h` (hour), `m` (minute), and `s` (second). Example: `7d` (7 days), `10h` (10 hours), `60m` (60 minutes), and `120s` (120 seconds). This item works together with `big_query_log_roll_interval` and `big_query_log_roll_num` to 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 for `fe.big_query.log` and its rotated files. Rotation and retention are governed by `big_query_log_roll_interval` (time-based suffix), `log_roll_size_mb` (size trigger), `big_query_log_roll_num` (max files), and `big_query_log_delete_age` (age-based deletion). Big query records are logged for queries that exceed user-defined thresholds such as `big_query_log_cpu_second_threshold`, `big_query_log_scan_rows_threshold`, or `big_query_log_scan_bytes_threshold`. Use `big_query_log_modules` to 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 `query` produces `big_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_query` log appender. Valid values (case-insensitive) are `DAY` (default) and `HOUR`. `DAY` produces a daily pattern (`"%d{yyyyMMdd}"`) and `HOUR` produces 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 alongside `big_query_log_dir`, `big_query_roll_maxsize`, `big_query_log_roll_num`, and `big_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 DefaultRolloverStrategy `max` attribute for `fe.big_query.log`; when logs roll (by time or by `log_roll_size_mb`), StarRocks keeps up to `big_query_log_roll_num` indexed files (filePattern uses a time suffix plus index). Files older than this count may be removed by rollover, and `big_query_log_delete_age` can 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 `7d` specifies 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: `DAY` and `HOUR`. + - If this parameter is set to `DAY`, a suffix in the `yyyyMMdd` format is added to the names of dump log files. + - If this parameter is set to `HOUR`, a suffix in the `yyyyMMddHH` format is added to the names of dump log files. +- 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_interval` parameter. +- 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_num` and 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 if `enable_sql_desensitize_in_log` is set, and digest recording is controlled by `enable_sql_digest`. When it is set to `false`, ConnectProcessor replaces the statement text with "?" in audit events — other audit fields (user, host, duration, status, slow-query detection via `qe_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 `queryDetail` JSON produced by `ProfileManager`) to the profile log sink. This logging is performed only if `enable_collect_query_detail_info` is also enabled; when `enable_profile_log_compress` is enabled, the JSON may be gzipped before logging. Profile log files are managed by `profile_log_dir`, `profile_log_roll_num`, `profile_log_roll_interval` and rotated/deleted according to `profile_log_delete_age` (supports formats like `7d`, `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_ms into 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 global audit_log_json_format setting (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 when qe_slow_log_ms is 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 `` 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 under `internal.` 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 by `log_roll_size_mb`, `internal_log_roll_num`, `internal_log_delete_age`, and `internal_log_roll_interval`. If `sys_log_to_console` is 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 to `false`, 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 to `fe.internal.log`) or to console when `sys_log_to_console` is enabled. Use short names or package fragments as needed — the exact logger name becomes `internal.` + the configured string. Internal log file rotation and retention follow `internal_log_dir`, `internal_log_roll_num`, `internal_log_delete_age`, `internal_log_roll_interval`, and `log_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 `HOUR` and `DAY`. `HOUR` produces an hourly file pattern (`"%d{yyyyMMddHH}"`) and `DAY` produces a daily file pattern (`"%d{yyyyMMdd}"`), which are used by the RollingFile TimeBasedTriggeringPolicy to name rotated `fe.internal.log` files. 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 as `internal_log_dir`, `internal_roll_maxsize`, `internal_log_roll_num`, and `internal_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 DefaultRolloverStrategy `max` attribute; when rollovers occur, StarRocks keeps up to `internal_log_roll_num` archived files and removes older ones (also governed by `internal_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 with `internal_log_dir`, `internal_log_roll_interval`, and `internal_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 an `RpcException`. The log entry includes QueryId, SQL and the COSTS plan; in the ExecuteExceptionHandler path, the exception stacktrace is also logged. The logging is skipped when `enable_collect_query_detail_info` is 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 not `COM_STMT_EXECUTE` or the session variable `isAuditExecuteStmt()` 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 subtracting `proc_profile_file_retained_days` days 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 by `proc_profile_file_retained_size_bytes`. Profile files use the prefixes `cpu-profile-` and `mem-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-` and `mem-profile-`) to keep under the profile directory. When the sum of valid profile files exceeds `proc_profile_file_retained_size_bytes`, the collector deletes the oldest profile files until the remaining total size is less than or equal to `proc_profile_file_retained_size_bytes`. Files older than `proc_profile_file_retained_days` are also removed regardless of size. This setting controls disk usage for profile archives and interacts with `proc_profile_file_retained_days` to 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 (via `Log4jConfig`) and is applied together with rotation settings such as `profile_log_roll_interval` and `profile_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.log` and `fe.features.log` under this directory). Rotation and retention for these files are governed by `profile_log_roll_size_mb`, `profile_log_roll_num` and `profile_log_delete_age`; the timestamp suffix format is controlled by `profile_log_roll_interval` (supports DAY or HOUR). Because the default directory is under `STARROCKS_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 `HOUR` and `DAY`. `HOUR` produces a pattern of `"%d{yyyyMMddHH}"` (hourly time bucket) and `DAY` produces `"%d{yyyyMMdd}"` (daily time bucket). This value is used when computing `profile_file_pattern` in the Log4j configuration and only affects the time-based component of rollover file names; size-based rollover is still controlled by `profile_log_roll_size_mb` and retention by `profile_log_roll_num` / `profile_log_delete_age`. Invalid values cause an IOException during logging initialization (error message: `"profile_log_roll_interval config error: "`). Choose `HOUR` for high-volume profiling to limit per-file size per hour, or `DAY` for 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 by `profile_log_roll_size_mb` or `profile_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 by `profile_log_delete_age` and the `profile_log_dir` location. 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 `ProfileFile` appender; when a profile log exceeds `profile_log_roll_size_mb` it will be rotated. Rotation can also occur by time when `profile_log_roll_interval` is reached — either condition will trigger rollover. Combined with `profile_log_roll_num` and `profile_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 by `enable_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_ms and will suppress additional warnings until slow_lock_log_every_ms milliseconds 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 via `LogUtil.getStackTraceToJsonArray` with `start=0` and `max=Short.MAX_VALUE`). This configuration controls only the extra stack information for lock owners shown when a lock acquisition exceeds the threshold configured by `slow_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, and slow_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 `7d` specifies 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 the `sys_file_postfix` property 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 by `sys_log_json_max_string_length` and `sys_log_json_profile_max_string_length` for 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_format` is 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 in `Log4jConfig.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_format` is "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 Log4jConfig `JsonTemplateLayout maxStringLength` and is ignored when `plaintext` logging 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`, and `FATAL`. +- 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: `DAY` and `HOUR`. + - If this parameter is set to `DAY`, a suffix in the `yyyyMMdd` format is added to the names of system log files. + - If this parameter is set to `HOUR`, a suffix in the `yyyyMMddHH` format is added to the names of system log files. +- 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_interval` parameter. +- Introduced in: - + +##### sys_log_to_console + +- Default: false (unless the environment variable `SYS_LOG_TO_CONSOLE` is 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 the `SYS_LOG_TO_CONSOLE` environment 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.log` file. 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 ``. 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_pool` in BrpcProxy when constructing RpcClientOptions (via `rpcOptions.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 with `brpc_connection_pool_size` and `brpc_idle_wait_max_time` to 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_size` and `brpc_short_connection` because 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 `Title` on the web page. +- Introduced in: - + +##### dns_cache_ttl_seconds + +- Default: 60 +- Type: Int +- Unit: Seconds +- Is mutable: No +- Description: DNS cache TTL (Time-To-Live) in seconds for successful DNS lookups. This sets the Java security property `networkaddress.cache.ttl` which controls how long the JVM caches successful DNS lookups. Set this item to `-1` to allow the system to always cache the infomration, or `0` to disable caching. This is particularly useful in environments where IP addresses change frequently, such as Kubernetes deployments or when dynamic DNS is used. +- Introduced in: v3.5.11, v4.0.4 + +##### 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`, and `enable_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 to `HttpServerCodec` (as `Config.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 with `http_max_initial_line_length` and `http_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 `HttpServerCodec` used 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 with `http_max_header_size` and `http_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_enable` is set to `true`, `MemoryUsageTracker` periodically scans registered metadata modules, updates the in-memory `MemoryUsageTracker.MEMORY_USAGE` map, logs totals, and causes `MetricRepo` to expose memory usage and object-count gauges in metrics output. Use `memory_tracker_interval_seconds` to 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 `MemoryUsageTracker` daemon to poll and record memory usage of the FE process and registered `MemoryTrackable` modules. When `memory_tracker_enable` is set to `true`, the tracker runs on this cadence, updates `MEMORY_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: + 1. `select version();` + 2. Handshake packet version + 3. 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 is `false`, 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_networks` is not specified. `true` indicates to allow the system to use an IPv6 address preferentially when the server that hosts the node has both IPv4 and IPv6 addresses and `priority_networks` is 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_empty` to `true`. +- Introduced in: - + +##### proc_profile_cpu_enable + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: When this item is set to `true`, the background `ProcProfileCollector` will collect CPU profiles using `AsyncProfiler` and write HTML reports under `sys_log_dir/proc_profile`. Each collection run records CPU stacks for the duration configured by `proc_profile_collect_time_s` and uses `proc_profile_jstack_depth` for Java stack depth. Generated profiles are compressed and old files are pruned according to `proc_profile_file_retained_days` and `proc_profile_file_retained_size_bytes`. `AsyncProfiler` requires the native library (`libasyncProfiler.so`); `one.profiler.extractPath` is set to `STARROCKS_HOME_DIR/bin` to 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 `1024` to `4096`. +- 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.getStackTraceToJsonArray` by `QueryableReentrantReadWriteLock` when 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 by `slow_lock_threshold_ms` when 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. `TaskRunScheduler` stops scheduling new runs when current running count is greater than or equal to `task_runs_concurrency`, so this value caps parallel TaskRun execution across the scheduler. It is also used by `MVPCTRefreshPartitioner` to 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 by `TaskRunScheduler`. +- 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. `TaskRunManager` checks the current pending count and rejects new submissions when valid pending TaskRun count is greater than or equal to `task_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 `-1` disables 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.newDaemonCacheThreadPool` in `AlterHandler` together with `alter_max_worker_threads`. When the number of pending alter tasks exceeds `alter_max_worker_queue_size`, new submissions will be rejected and a `RejectedExecutionException` can be thrown (see `AlterHandler.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 `AlterReplicaTask` via 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 with `alter_max_worker_queue_size`, and the handler scheduling uses `alter_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.initConfigs` and applied to `EnvironmentConfig.CLEANER_THREADS` using `Config.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_PERCENT and is typically >100 to 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 within `REP_STREAM_TIMEOUT` or 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_DISK` in 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 using `ALTER 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_group` is used to replace `metadata_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 in `black_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 in `black_host_connect_failures_within_time`, it can be removed from the BE Blacklist. +- Introduced in: v3.3.0 + +##### brpc_connection_pool_size + +- Default: 16 +- Type: Int +- Unit: Connections +- Is mutable: No +- Description: The maximum number of pooled BRPC connections per endpoint used by the FE's BrpcProxy. This value is applied to RpcClientOptions via `setMaxTotoal` and `setMaxIdleSize`, so it directly limits concurrent outgoing BRPC requests because each request must borrow a connection from the pool. In high concurrency scenarios increase this to avoid request queuing; increasing it raises socket and memory usage and may increase remote server load. When tuning, consider related settings such as `brpc_idle_wait_max_time`, `brpc_short_connection`, `brpc_inner_reuse_pool`, `brpc_reuse_addr`, and `brpc_min_evictable_idle_time_ms`. Changing this value is not hot-reloadable and requires a restart. +- Introduced in: v3.2.0 + +##### brpc_short_connection + +- Default: false +- Type: boolean +- Unit: - +- Is mutable: No +- Description: Controls whether the underlying brpc RpcClient uses short-lived connections. When enabled (`true`), RpcClientOptions.setShortConnection is set and connections are closed after a request completes, reducing the number of long-lived sockets at the cost of higher connection setup overhead and increased latency. When disabled (`false`, the default) persistent connections and connection pooling are used. Enabling this option affects connection-pool behavior and should be considered together with `brpc_connection_pool_size`, `brpc_idle_wait_max_time`, `brpc_min_evictable_idle_time_ms`, `brpc_reuse_addr`, and `brpc_inner_reuse_pool`. Keep it disabled for typical high-throughput deployments; enable only to limit socket lifetime or when short connections are required by network policy. +- Introduced in: v3.3.11, v3.4.1, v3.5.0 + +##### catalog_try_lock_timeout_ms + +- Default: 5000 +- Type: Long +- Unit: Milliseconds +- Is mutable: Yes +- Description: The timeout duration to obtain the global lock. +- Introduced in: - + +##### checkpoint_only_on_leader + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: When `true`, the CheckpointController will only select the leader FE as the checkpoint worker; when `false`, the controller may pick any frontend and prefers nodes with lower heap usage. With `false`, workers are sorted by recent failure time and `heapUsedPercent` (the leader is treated as having infinite usage to avoid selecting it). For operations that require cluster snapshot metadata, the controller already forces leader selection regardless of this flag. Enabling `true` centralizes checkpoint work on the leader (simpler but increases leader CPU/memory and network load); keeping it `false` distributes checkpoint load to less-loaded FEs. This setting affects worker selection and interaction with timeouts such as `checkpoint_timeout_seconds` and RPC settings like `thrift_rpc_timeout_ms`. +- Introduced in: v3.4.0, v3.5.0 + +##### checkpoint_timeout_seconds + +- Default: 24 * 3600 +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: Maximum time (in seconds) the leader's CheckpointController will wait for a checkpoint worker to complete a checkpoint. The controller converts this value to nanoseconds and polls the worker result queue; if no successful completion is received within this timeout the checkpoint is treated as failed and createImage returns failure. Increasing this value accommodates longer-running checkpoints but delays failure detection and subsequent image propagation; decreasing it causes faster failover/retries but can produce false timeouts for slow workers. This setting only controls the waiting period in `CheckpointController` during checkpoint creation and does not change the worker's internal checkpointing behavior. +- Introduced in: v3.4.0, v3.5.0 + +##### db_used_data_quota_update_interval_secs + +- Default: 300 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The interval at which the database used data quota is updated. StarRocks periodically updates the used data quota for all databases to track storage consumption. This value is used for quota enforcement and metrics collection. The minimum allowed interval is 30 seconds to prevent excessive system load. A value less than 30 will be rejected. +- Introduced in: - + +##### drop_backend_after_decommission + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to delete a BE after the BE is decommissioned. `TRUE` indicates that the BE is deleted immediately after it is decommissioned. `FALSE` indicates that the BE is not deleted after it is decommissioned. +- Introduced in: - + +##### edit_log_port + +- Default: 9010 +- Type: Int +- Unit: - +- Is mutable: No +- Description: The port that is used for communication among the Leader, Follower, and Observer FEs in the cluster. +- Introduced in: - + +##### edit_log_roll_num + +- Default: 50000 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of metadata log entries that can be written before a log file is created for these log entries. This parameter is used to control the size of log files. The new log file is written to the BDBJE database. +- Introduced in: - + +##### edit_log_type + +- Default: BDB +- Type: String +- Unit: - +- Is mutable: No +- Description: The type of edit log that can be generated. Set the value to `BDB`. +- Introduced in: - + +##### enable_background_refresh_connector_metadata + +- Default: true in v3.0 and later and false in v2.5 +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable the periodic Hive metadata cache refresh. After it is enabled, StarRocks polls the metastore (Hive Metastore or AWS Glue) of your Hive cluster, and refreshes the cached metadata of the frequently accessed Hive catalogs to perceive data changes. `true` indicates to enable the Hive metadata cache refresh, and `false` indicates to disable it. +- Introduced in: v2.5.5 + +##### enable_collect_query_detail_info + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to collect the profile of a query. If this parameter is set to `TRUE`, the system collects the profile of the query. If this parameter is set to `FALSE`, the system does not collect the profile of the query. +- Introduced in: - + +##### enable_create_partial_partition_in_batch + +- Default: false +- Type: boolean +- Unit: - +- Is mutable: Yes +- Description: When this item is set to `false` (default), StarRocks enforces that batch-created range partitions align to the standard time unit boundaries. It will reject non‑aligned ranges to avoid creating holes. Setting this item to `true` disables that alignment check and allows creating partial (non‑standard) partitions in batch, which can produce gaps or misaligned partition ranges. You should only set it to `true` when you intentionally need partial batch partitions and accept the associated risks. +- Introduced in: v3.2.0 + +##### enable_internal_sql + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: No +- Description: When this item is set to `true`, internal SQL statements executed by internal components (for example, SimpleExecutor) are preserved and written into internal audit or log messages (and can be further desensitized if `enable_sql_desensitize_in_log` is set). When it is set to `false`, internal SQL text is suppressed: formatting code (SimpleExecutor.formatSQL) returns "?" and the actual statement is not emitted to internal audit or log messages. This configuration does not change execution semantics of internal statements — it only controls logging and visibility of internal SQL for privacy or security. +- Introduced in: - + +##### enable_legacy_compatibility_for_replication + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable the Legacy Compatibility for Replication. StarRocks may behave differently between the old and new versions, causing problems during cross-cluster data migration. Therefore, you must enable Legacy Compatibility for the target cluster before data migration and disable it after data migration is completed. `true` indicates enabling this mode. +- Introduced in: v3.1.10, v3.2.6 + +##### enable_show_materialized_views_include_all_task_runs + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Controls how TaskRuns are returned to the SHOW MATERIALIZED VIEWS command. When this item is set to `false`, StarRocks returns only the newest TaskRun per task (legacy behavior for compatibility). When it is set to `true` (default), `TaskManager` may include additional TaskRuns for the same task only when they share the same start TaskRun ID (for example, belong to the same job), preventing unrelated duplicate runs from appearing while allowing multiple statuses tied to one job to be shown. Set this item to `false` to restore single-run output or to surface multi-run job history for debugging and monitoring. +- Introduced in: v3.3.0, v3.4.0, v3.5.0 + +##### enable_statistics_collect_profile + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to generate profiles for statistics queries. You can set this item to `true` to allow StarRocks to generate query profiles for queries on system statistics. +- Introduced in: v3.1.5 + +##### enable_table_name_case_insensitive + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: No +- Description: Whether to enable case-insensitive processing on catalog names, database names, table names, view names, and materialized view names. Currently, table names are case-sensitive by default. + - After enabling this feature, all related names will be stored in lowercase, and all SQL commands containing these names will automatically convert them to lowercase. + - You can enable this feature only when creating a cluster. **After the cluster is started, the value of this configuration cannot be modified by any means**. Any attempt to modify it will result in an error. FE will fail to start when it detects that the value of this configuration item is inconsistent with that when the cluster was first started. + - Currently, this feature does not support JDBC catalog and table names. Do not enable this feature if you want to perform case-insensitive processing on JDBC or ODBC data sources. +- Introduced in: v4.0 + +##### enable_task_history_archive + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: When enabled, finished task-run records are archived to the persistent task-run history table and recorded to the edit log so lookups (e.g., `lookupHistory`, `lookupHistoryByTaskNames`, `lookupLastJobOfTasks`) include archived results. Archiving is performed by the FE leader and is skipped during unit tests (`FeConstants.runningUnitTest`). When enabled, in-memory expiration and forced-GC paths are bypassed (the code returns early from `removeExpiredRuns` and `forceGC`), so retention/eviction is handled by the persistent archive instead of `task_runs_ttl_second` and `task_runs_max_history_number`. When disabled, history stays in memory and is pruned by those configurations. +- Introduced in: v3.3.1, v3.4.0, v3.5.0 + +##### enable_task_run_fe_evaluation + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: When enabled, the FE will perform local evaluation for the system table `task_runs` in `TaskRunsSystemTable.supportFeEvaluation`. FE-side evaluation is only allowed for conjunctive equality predicates comparing a column to a constant and is limited to the columns `QUERY_ID` and `TASK_NAME`. Enabling this improves performance for targeted lookups by avoiding broader scans or additional remote processing; disabling it forces the planner to skip FE evaluation for `task_runs`, which may reduce predicate pruning and affect query latency for those filters. +- Introduced in: v3.3.13, v3.4.3, v3.5.0 + +##### heartbeat_mgr_blocking_queue_size + +- Default: 1024 +- Type: Int +- Unit: - +- Is mutable: No +- Description: The size of the blocking queue that stores heartbeat tasks run by the Heartbeat Manager. +- Introduced in: - + +##### heartbeat_mgr_threads_num + +- Default: 8 +- Type: Int +- Unit: - +- Is mutable: No +- Description: The number of threads that can be run by the Heartbeat Manager to run heartbeat tasks. +- Introduced in: - + +##### ignore_materialized_view_error + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether FE ignores the metadata exception caused by materialized view errors. If FE fails to start due to the metadata exception caused by materialized view errors, you can set this parameter to `true` to allow FE to ignore the exception. +- Introduced in: v2.5.10 + +##### ignore_meta_check + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether non-Leader FEs ignore the metadata gap from the Leader FE. If the value is TRUE, non-Leader FEs ignore the metadata gap from the Leader FE and continue providing data reading services. This parameter ensures continuous data reading services even when you stop the Leader FE for a long period of time. If the value is FALSE, non-Leader FEs do not ignore the metadata gap from the Leader FE and stop providing data reading services. +- Introduced in: - + +##### ignore_task_run_history_replay_error + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: When StarRocks deserializes TaskRun history rows for `information_schema.task_runs`, a corrupted or invalid JSON row will normally cause deserialization to log a warning and throw a RuntimeException. If this item is set to `true`, the system will catch deserialization errors, skip the malformed record, and continue processing remaining rows instead of failing the query. This will make `information_schema.task_runs` queries tolerant of bad entries in the `_statistics_.task_run_history` table. Note that enabling it will silently drop corrupted history records (potential data loss) instead of surfacing an explicit error. +- Introduced in: v3.3.3, v3.4.0, v3.5.0 + +##### lock_checker_interval_second + +- Default: 30 +- Type: long +- Unit: Seconds +- Is mutable: Yes +- Description: Interval, in seconds, between executions of the LockChecker frontend daemon (named "deadlock-checker"). The daemon performs deadlock detection and slow-lock scanning; the configured value is multiplied by 1000 to set the timer in milliseconds. Decreasing this value reduces detection latency but increases scheduling and CPU overhead; increasing it reduces overhead but delays detection and slow-lock reporting. Changes take effect at runtime because the daemon resets its interval each run. This setting interacts with `lock_checker_enable_deadlock_check` (enables deadlock checks) and `slow_lock_threshold_ms` (defines what constitutes a slow lock). +- Introduced in: v3.2.0 + +##### master_sync_policy + +- Default: SYNC +- Type: String +- Unit: - +- Is mutable: No +- Description: The policy based on which the leader FE flushes logs to disk. This parameter is valid only when the current FE is a leader FE. Valid values: + - `SYNC`: When a transaction is committed, a log entry is generated and flushed to disk simultaneously. + - `NO_SYNC`: The generation and flushing of a log entry do not occur at the same time when a transaction is committed. + - `WRITE_NO_SYNC`: When a transaction is committed, a log entry is generated simultaneously but is not flushed to disk. + + If you have deployed only one follower FE, we recommend that you set this parameter to `SYNC`. If you have deployed three or more follower FEs, we recommend that you set this parameter and the `replica_sync_policy` both to `WRITE_NO_SYNC`. + +- Introduced in: - + +##### max_bdbje_clock_delta_ms + +- Default: 5000 +- Type: Long +- Unit: Milliseconds +- Is mutable: No +- Description: The maximum clock offset that is allowed between the leader FE and the follower or observer FEs in the StarRocks cluster. +- Introduced in: - + +##### meta_delay_toleration_second + +- Default: 300 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The maximum duration by which the metadata on the follower and observer FEs can lag behind that on the leader FE. Unit: seconds. If this duration is exceeded, the non-leader FEs stops providing services. +- Introduced in: - + +##### meta_dir + +- Default: StarRocksFE.STARROCKS_HOME_DIR + "/meta" +- Type: String +- Unit: - +- Is mutable: No +- Description: The directory that stores metadata. +- Introduced in: - + +##### metadata_ignore_unknown_operation_type + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to ignore an unknown log ID. When an FE is rolled back, the FEs of the earlier version may be unable to recognize some log IDs. If the value is `TRUE`, the FE ignores unknown log IDs. If the value is `FALSE`, the FE exits. +- Introduced in: - + +##### profile_info_format + +- Default: default +- Type: String +- Unit: - +- Is mutable: Yes +- Description: The format of the Profile output by the system. Valid values: `default` and `json`. When set to `default`, Profile is of the default format. When set to `json`, the system outputs Profile in JSON format. +- Introduced in: v2.5 + +##### replica_ack_policy + +- Default: SIMPLE_MAJORITY +- Type: String +- Unit: - +- Is mutable: No +- Description: The policy based on which a log entry is considered valid. The default value `SIMPLE_MAJORITY` specifies that a log entry is considered valid if a majority of follower FEs return ACK messages. +- Introduced in: - + +##### replica_sync_policy + +- Default: SYNC +- Type: String +- Unit: - +- Is mutable: No +- Description: The policy based on which the follower FE flushes logs to disk. This parameter is valid only when the current FE is a follower FE. Valid values: + - `SYNC`: When a transaction is committed, a log entry is generated and flushed to disk simultaneously. + - `NO_SYNC`: The generation and flushing of a log entry do not occur at the same time when a transaction is committed. + - `WRITE_NO_SYNC`: When a transaction is committed, a log entry is generated simultaneously but is not flushed to disk. +- Introduced in: - + +##### start_with_incomplete_meta + +- Default: false +- Type: boolean +- Unit: - +- Is mutable: No +- Description: When true, the FE will allow startup when image data exists but Berkeley DB JE (BDB) log files are missing or corrupted. `MetaHelper.checkMetaDir()` uses this flag to bypass the safety check that otherwise prevents starting from an image without corresponding BDB logs; starting this way can produce stale or inconsistent metadata and should only be used for emergency recovery. `RestoreClusterSnapshotMgr` temporarily sets this flag to true while restoring a cluster snapshot and then rolls it back; that component also toggles `bdbje_reset_election_group` during restore. Do not enable in normal operation — enable only when recovering from corrupted BDB data or when explicitly restoring an image-based snapshot. +- Introduced in: v3.2.0 + +##### table_keeper_interval_second + +- Default: 30 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: Interval, in seconds, between executions of the TableKeeper daemon. The TableKeeperDaemon uses this value (multiplied by 1000) to set its internal timer and periodically runs keeper tasks that ensure history tables exist, correct table properties (replication number) and update partition TTLs. The daemon only performs work on the leader node and updates its runtime interval via setInterval when `table_keeper_interval_second` changes. Increase to reduce scheduling frequency and load; decrease for faster reaction to missing or stale history tables. +- Introduced in: v3.3.1, v3.4.0, v3.5.0 + +##### task_runs_ttl_second + +- Default: 7 * 24 * 3600 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: Controls the time-to-live (TTL) for task run history. Lowering this value shortens history retention and reduces memory/disk usage; raising it keeps histories longer but increases resource usage. Adjust together with `task_runs_max_history_number` and `enable_task_history_archive` for predictable retention and storage behavior. +- Introduced in: v3.2.0 + +##### task_ttl_second + +- Default: 24 * 3600 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: Time-to-live (TTL) for tasks. For manual tasks (when no schedule is set), TaskBuilder uses this value to compute the task's `expireTime` (`expireTime = now + task_ttl_second * 1000L`). TaskRun also uses this value as an upper bound when computing a run's execute timeout — the effective execute timeout is `min(task_runs_timeout_second, task_runs_ttl_second, task_ttl_second)`. Adjusting this value changes how long manually created tasks remain valid and can indirectly limit the maximum allowed execution time of task runs. +- Introduced in: v3.2.0 + +##### thrift_rpc_retry_times + +- Default: 3 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: Controls the total number of attempts a Thrift RPC call will make. This value is used by `ThriftRPCRequestExecutor` (and callers such as `NodeMgr` and `VariableMgr`) as the loop count for retries — i.e., a value of 3 allows up to three attempts including the initial try. On `TTransportException` the executor will try to reopen the connection and retry up to this count; it will not retry when the cause is a `SocketTimeoutException` or when reopen fails. Each attempt is subject to the per-attempt timeout configured by `thrift_rpc_timeout_ms`. Increasing this value improves resilience to transient connection failures but can increase overall RPC latency and resource usage. +- Introduced in: v3.2.0 + +##### thrift_rpc_strict_mode + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: No +- Description: Controls the TBinaryProtocol "strict read" mode used by the Thrift server. This value is passed as the first argument to org.apache.thrift.protocol.TBinaryProtocol.Factory in the Thrift server stack and affects how incoming Thrift messages are parsed and validated. When `true` (default), the server enforces strict Thrift encoding/version checks and honors the configured `thrift_rpc_max_body_size` limit; when `false`, the server accepts non-strict (legacy/lenient) message formats, which can improve compatibility with older clients but may bypass some protocol validations. Use caution changing this on a running cluster because it is not mutable and affects interoperability and parsing safety. +- Introduced in: v3.2.0 + +##### thrift_rpc_timeout_ms + +- Default: 10000 +- Type: Int +- Unit: Milliseconds +- Is mutable: Yes +- Description: Timeout (in milliseconds) used as the default network/socket timeout for Thrift RPC calls. It is passed to TSocket when creating Thrift clients in `ThriftConnectionPool` (used by the frontend and backend pools) and is also added to an operation's execution timeout (e.g., ExecTimeout*1000 + `thrift_rpc_timeout_ms`) when computing RPC call timeouts in places such as `ConfigBase`, `LeaderOpExecutor`, `GlobalStateMgr`, `NodeMgr`, `VariableMgr`, and `CheckpointWorker`. Increasing this value makes RPC calls tolerate longer network or remote processing delays; decreasing it causes faster failover on slow networks. Changing this value affects connection creation and request deadlines across the FE code paths that perform Thrift RPCs. +- Introduced in: v3.2.0 + +##### txn_latency_metric_report_groups + +- Default: An empty string +- Type: String +- Unit: - +- Is mutable: Yes +- Description: A comma-separated list of transaction latency metric groups to report. Load types are categorized into logical groups for monitoring. When a group is enabled, its name is added as a 'type' label to transaction metrics. Valid values: `stream_load`, `routine_load`, `broker_load`, `insert`, and `compaction` (availabl only for shared-data clusters). Example: `"stream_load,routine_load"`. +- Introduced in: v4.0 + +##### txn_rollback_limit + +- Default: 100 +- Type: Int +- Unit: - +- Is mutable: No +- Description: The maximum number of transactions that can be rolled back. +- Introduced in: - + +### User, role, and privilege + +##### enable_task_info_mask_credential + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: When true, StarRocks redacts credentials from task SQL definitions before returning them in information_schema.tasks and information_schema.task_runs by applying SqlCredentialRedactor.redact to the DEFINITION column. In `information_schema.task_runs` the same redaction is applied whether the definition comes from the task run status or, when empty, from the task definition lookup. When false, raw task definitions are returned (may expose credentials). Masking is CPU/string-processing work and can be time-consuming when the number of tasks or task_runs is large; disable only if you need unredacted definitions and accept the security risk. +- Introduced in: v3.5.6 + +##### privilege_max_role_depth + +- Default: 16 +- Type: Int +- Unit: +- Is mutable: Yes +- Description: The maximum role depth (level of inheritance) of a role. +- Introduced in: v3.0.0 + +##### privilege_max_total_roles_per_user + +- Default: 64 +- Type: Int +- Unit: +- Is mutable: Yes +- Description: The maximum number of roles a user can have. +- Introduced in: v3.0.0 + +### Query engine + +##### brpc_send_plan_fragment_timeout_ms + +- Default: 60000 +- Type: Int +- Unit: Milliseconds +- Is mutable: Yes +- Description: Timeout in milliseconds applied to the BRPC TalkTimeoutController before sending a plan fragment. `BackendServiceClient.sendPlanFragmentAsync` sets this value prior to calling the backend `execPlanFragmentAsync`. It governs how long BRPC will wait when borrowing an idle connection from the connection pool and while performing the send; if exceeded, the RPC will fail and may trigger the method's retry logic. Set this lower to fail fast under contention, or raise it to tolerate transient pool exhaustion or slow networks. Be cautious: very large values can delay failure detection and block request threads. +- Introduced in: v3.3.11, v3.4.1, v3.5.0 + +##### connector_table_query_trigger_analyze_large_table_interval + +- Default: 12 * 3600 +- Type: Int +- Unit: Second +- Is mutable: Yes +- Description: The interval for query-trigger ANALYZE tasks of large tables. +- Introduced in: v3.4.0 + +##### connector_table_query_trigger_analyze_max_pending_task_num + +- Default: 100 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: Maximum number of query-trigger ANALYZE tasks that are in Pending state on the FE. +- Introduced in: v3.4.0 + +##### connector_table_query_trigger_analyze_max_running_task_num + +- Default: 2 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: Maximum number of query-trigger ANALYZE tasks that are in Running state on the FE. +- Introduced in: v3.4.0 + +##### connector_table_query_trigger_analyze_small_table_interval + +- Default: 2 * 3600 +- Type: Int +- Unit: Second +- Is mutable: Yes +- Description: The interval for query-trigger ANALYZE tasks of small tables. +- Introduced in: v3.4.0 + +##### connector_table_query_trigger_analyze_small_table_rows + +- Default: 10000000 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The threshold for determining whether a table is a small table for query-trigger ANALYZE tasks. +- Introduced in: v3.4.0 + +##### connector_table_query_trigger_task_schedule_interval + +- Default: 30 +- Type: Int +- Unit: Second +- Is mutable: Yes +- Description: The interval at which the Scheduler thread schedules the query-trigger background tasks. This item is to replace `connector_table_query_trigger_analyze_schedule_interval` introduced in v3.4.0. Here, the background tasks refer `ANALYZE` tasks in v3.4,and the collection task of low-cardinality columns' dictionary in versions later than v3.4. +- Introduced in: v3.4.2 + +##### create_table_max_serial_replicas + +- Default: 128 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of replicas to create serially. If actual replica count exceeds this value, replicas will be created concurrently. Try to reduce this value if table creation is taking a long time to complete. +- Introduced in: - + +##### default_mv_partition_refresh_number + +- Default: 1 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: When a materialized view refresh involves multiple partitions, this parameter controls how many partitions are refreshed in a single batch by default. +Starting from version 3.3.0, the system defaults to refreshing one partition at a time to avoid potential out-of-memory (OOM) issues. In earlier versions, all partitions were refreshed at once by default, which could lead to memory exhaustion and task failure. However, note that when a materialized view refresh involves a large number of partitions, refreshing only one partition at a time may lead to excessive scheduling overhead, longer overall refresh time, and a large number of refresh records. In such cases, it is recommended to adjust this parameter appropriately to improve refresh efficiency and reduce scheduling costs. +- Introduced in: v3.3.0 + +##### default_mv_refresh_immediate + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to refresh an asynchronous materialized view immediately after creation. When this item is set to `true`, newly created materialized view will be refreshed immediately. +- Introduced in: v3.2.3 + +##### dynamic_partition_check_interval_seconds + +- Default: 600 +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: The interval at which new data is checked. If new data is detected, StarRocks automatically creates partitions for the data. +- Introduced in: - + +##### dynamic_partition_enable + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable the dynamic partitioning feature. When this feature is enabled, StarRocks dynamically creates partitions for new data and automatically deletes expired partitions to ensure the freshness of data. +- Introduced in: - + +##### enable_active_materialized_view_schema_strict_check + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to strictly check the length consistency of data types when activating an inactive materialized view. When this item is set to `false`, the activation of the materialized view is not affected if the length of the data types has changed in the base table. +- Introduced in: v3.3.4 + +##### enable_auto_collect_array_ndv + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable automatic collection for the NDV information of the ARRAY type. +- Introduced in: v4.0 + +##### enable_backup_materialized_view + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable the BACKUP and RESTORE of asynchronous materialized views when backing up or restoring a specific database. If this item is set to `false`, StarRocks will skip backing up asynchronous materialized views. +- Introduced in: v3.2.0 + +##### enable_collect_full_statistic + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable automatic full statistics collection. This feature is enabled by default. +- Introduced in: - + +##### enable_colocate_mv_index + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to support colocating the synchronous materialized view index with the base table when creating a synchronous materialized view. If this item is set to `true`, tablet sink will speed up the write performance of synchronous materialized views. +- Introduced in: v3.2.0 + +##### enable_decimal_v3 + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to support the DECIMAL V3 data type. +- Introduced in: - + +##### enable_experimental_mv + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable the asynchronous materialized view feature. TRUE indicates this feature is enabled. From v2.5.2 onwards, this feature is enabled by default. For versions earlier than v2.5.2, this feature is disabled by default. +- Introduced in: v2.4 + +##### enable_local_replica_selection + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to select local replicas for queries. Local replicas reduce the network transmission cost. If this parameter is set to TRUE, the CBO preferentially selects tablet replicas on BEs that have the same IP address as the current FE. If this parameter is set to `FALSE`, both local replicas and non-local replicas can be selected. +- Introduced in: - + +##### enable_manual_collect_array_ndv + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable manual collection for the NDV information of the ARRAY type. +- Introduced in: v4.0 + +##### enable_materialized_view + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable the creation of materialized views. +- Introduced in: - + +##### enable_materialized_view_external_table_precise_refresh + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Set this item to `true` to enable an internal optimization for materialized view refresh when a base table is an external (non-cloud-native) table. When enabled, the materialized view refresh processor computes candidate partitions and refreshes only the affected base-table partitions instead of all partitions, reducing I/O and refresh cost. Set it to `false` to force full-partition refresh of external tables. +- Introduced in: v3.2.9 + +##### enable_materialized_view_metrics_collect + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to collect monitoring metrics for asynchronous materialized views by default. +- Introduced in: v3.1.11, v3.2.5 + +##### enable_materialized_view_spill + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable Intermediate Result Spilling for materialized view refresh tasks. +- Introduced in: v3.1.1 + +##### enable_materialized_view_text_based_rewrite + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable text-based query rewrite by default. If this item is set to `true`, the system builds the abstract syntax tree while creating an asynchronous materialized view. +- Introduced in: v3.2.5 + +##### enable_mv_automatic_active_check + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable the system to automatically check and re-activate the asynchronous materialized views that are set inactive because their base tables (views) had undergone Schema Change or had been dropped and re-created. Please note that this feature will not re-activate the materialized views that are manually set inactive by users. +- Introduced in: v3.1.6 + +##### enable_mv_automatic_repairing_for_broken_base_tables + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: When this item is set to `true`, StarRocks will attempt to automatically repair materialized view base-table metadata when a base external table is dropped and recreated or its table identifier changes. The repair flow can update the materialized view's base table information, collect partition-level repair information for external table partitions, and drive partition refresh decisions for async auto-refresh materialized views while honoring `autoRefreshPartitionsLimit`. Currently the automated repair supports Hive external tables; unsupported table types will cause the materialized view to be set inactive and a repair exception. Partition information collection is non-blocking and failures are logged. +- Introduced in: v3.3.19, v3.4.8, v3.5.6 + +##### enable_predicate_columns_collection + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable predicate columns collection. If disabled, predicate columns will not be recorded during query optimization. +- Introduced in: - + +##### enable_query_queue_v2 + +- Default: true +- Type: boolean +- Unit: - +- Is mutable: No +- Description: When true, switches the FE slot-based query scheduler to Query Queue V2. The flag is read by the slot manager and trackers (for example, `BaseSlotManager.isEnableQueryQueueV2` and `SlotTracker#createSlotSelectionStrategy`) to choose `SlotSelectionStrategyV2` instead of the legacy strategy. `query_queue_v2_xxx` configuration options and `QueryQueueOptions` take effect only when this flag is enabled. From v4.1 onwards, the default value is changed from `false` to `true`. +- Introduced in: v3.3.4, v3.4.0, v3.5.0 + +##### enable_sql_blacklist + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable blacklist check for SQL queries. When this feature is enabled, queries in the blacklist cannot be executed. +- Introduced in: - + +##### enable_statistic_collect + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to collect statistics for the CBO. This feature is enabled by default. +- Introduced in: - + +##### enable_statistic_collect_on_first_load + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Controls automatic statistics collection and maintenance triggered by data loading operations. This includes: + - Statistics collection when data is first loaded into a partition (partition version equals 2). + - Statistics collection when data is loaded into empty partitions of multi-partition tables. + - Statistics copying and updating for INSERT OVERWRITE operations. + + **Decision Policy for Statistics Collection Type:** + + - For INSERT OVERWRITE: `deltaRatio = |targetRows - sourceRows| / (sourceRows + 1)` + - If `deltaRatio < statistic_sample_collect_ratio_threshold_of_first_load` (Default: 0.1), statistics collection will not be performed. Only the existing statistics will be copied. + - Else, if `targetRows > statistic_sample_collect_rows` (Default: 200000), SAMPLE statistics collection is used. + - Else, FULL statistics collection is used. + + - For First Load: `deltaRatio = loadRows / (totalRows + 1)` + - If `deltaRatio < statistic_sample_collect_ratio_threshold_of_first_load` (Default: 0.1), statistics collection will not be performed. + - Else, if `loadRows > statistic_sample_collect_rows` (Default: 200000), SAMPLE statistics collection is used. + - Else, FULL statistics collection is used. + + **Synchronization Behavior:** + + - For DML statements (INSERT INTO/INSERT OVERWRITE): Synchronous mode with table lock. The load operation waits for statistics collection to complete (up to `semi_sync_collect_statistic_await_seconds`). + - For Stream Load and Broker Load: Asynchronous mode without lock. Statistics collection runs in background without blocking the load operation. + + :::note + Disabling this configuration will prevent all loading-triggered statistics operations, including statistics maintenance for INSERT OVERWRITE, which may result in tables lacking statistics. If new tables are frequently created and data is frequently loaded, enabling this feature will increase memory and CPU overhead. + ::: + +- Introduced in: v3.1 + +##### enable_statistic_collect_on_update + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Controls whether UPDATE statements can trigger automatic statistics collection. When enabled, UPDATE operations that modify table data may schedule statistics collection through the same ingestion-based statistics framework controlled by `enable_statistic_collect_on_first_load`. Disabling this configuration skips statistics collection for UPDATE statements while keeping load-triggered statistics collection behavior unchanged. +- Introduced in: v3.5.11, v4.0.4 + +##### enable_udf + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: No +- Description: Whether to enable UDF. +- Introduced in: - + +##### expr_children_limit + +- Default: 10000 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of child expressions allowed in an expression. +- Introduced in: - + +##### histogram_buckets_size + +- Default: 64 +- Type: Long +- Unit: - +- Is mutable: Yes +- Description: The default bucket number for a histogram. +- Introduced in: - + +##### histogram_max_sample_row_count + +- Default: 10000000 +- Type: Long +- Unit: - +- Is mutable: Yes +- Description: The maximum number of rows to collect for a histogram. +- Introduced in: - + +##### histogram_mcv_size + +- Default: 100 +- Type: Long +- Unit: - +- Is mutable: Yes +- Description: The number of most common values (MCV) for a histogram. +- Introduced in: - + +##### histogram_sample_ratio + +- Default: 0.1 +- Type: Double +- Unit: - +- Is mutable: Yes +- Description: The sampling ratio for a histogram. +- Introduced in: - + +##### http_slow_request_threshold_ms + +- Default: 5000 +- Type: Int +- Unit: Milliseconds +- Is mutable: Yes +- Description: If the response time for an HTTP request exceeds the value specified by this parameter, a log is generated to track this request. +- Introduced in: v2.5.15, v3.1.5 + +##### lock_checker_enable_deadlock_check + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: When enabled, the LockChecker thread performs JVM-level deadlock detection using ThreadMXBean.findDeadlockedThreads() and logs the offending threads' stack traces. The check runs inside the LockChecker daemon (whose frequency is controlled by `lock_checker_interval_second`) and writes detailed stack information to the log, which may be CPU- and I/O-intensive. Enable this option only for troubleshooting live or reproducible deadlock issues; leaving it enabled in normal operation can increase overhead and log volume. +- Introduced in: v3.2.0 + +##### low_cardinality_threshold + +- Default: 255 +- Type: Int +- Unit: - +- Is mutable: No +- Description: Threshold of low cardinality dictionary. +- Introduced in: v3.5.0 + +##### materialized_view_min_refresh_interval + +- Default: 60 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The minimum allowed refresh interval (in seconds) for ASYNC materialized view schedules. When a materialized view is created with a time-based interval, the interval is converted to seconds and must not be less tham this value; otherwise the CREATE/ALTER operation fails with a DDL error. If this value is greater than 0, the check is enforced; set it to 0 or a negative value to disable the limit, which prevents excessive TaskManager scheduling and high FE memory/CPU usage from overly frequent refreshes. This item does not apply to EVENT_TRIGGERED refreshes. +- Introduced in: v3.3.0, v3.4.0, v3.5.0 + +##### materialized_view_refresh_ascending + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: When this item is set to `true`, materialized view partition refresh will iterate partitions in ascending partition-key order (oldest to newest). When it is set to `false` (default), the system iterates in descending order (newest to oldest). StarRocks uses this item in both list- and range-partitioned materialized view refresh logic to choose which partitions to process when partition refresh limits apply and to compute the next start/end partition boundaries for subsequent TaskRun executions. Changing this item alters which partitions are refreshed first and how the next partition range is derived; for range-partitioned materialized views, the scheduler validates new start/end and will raise an error if a change would create a repeated boundary (dead-loop), so set this item with care. +- Introduced in: v3.3.1, v3.4.0, v3.5.0 + +##### max_allowed_in_element_num_of_delete + +- Default: 10000 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of elements allowed for the IN predicate in a DELETE statement. +- Introduced in: - + +##### max_create_table_timeout_second + +- Default: 600 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The maximum timeout duration for creating a table. +- Introduced in: - + +##### max_distribution_pruner_recursion_depth + +- Default: 100 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description:: The maximum recursion depth allowed by the partition pruner. Increasing the recursion depth can prune more elements but also increases CPU consumption. +- Introduced in: - + +##### max_partitions_in_one_batch + +- Default: 4096 +- Type: Long +- Unit: - +- Is mutable: Yes +- Description: The maximum number of partitions that can be created when you bulk create partitions. +- Introduced in: - + +##### max_planner_scalar_rewrite_num + +- Default: 100000 +- Type: Long +- Unit: - +- Is mutable: Yes +- Description: The maximum number of times that the optimizer can rewrite a scalar operator. +- Introduced in: - + +##### max_query_queue_history_slots_number + +- Default: 0 +- Type: Int +- Unit: Slots +- Is mutable: Yes +- Description: Controls how many recently released (history) allocated slots are retained per query queue for monitoring and observability. When `max_query_queue_history_slots_number` is set to a value > 0, BaseSlotTracker keeps up to that many most-recently released LogicalSlot entries in an in-memory queue, evicting the oldest when the limit is exceeded. Enabling this causes getSlots() to include these history entries (newest first), allows BaseSlotTracker to attempt registering slots with the ConnectContext for richer ExtraMessage data, and lets LogicalSlot.ConnectContextListener attach query finish metadata to history slots. When `max_query_queue_history_slots_number` <= 0 the history mechanism is disabled (no extra memory used). Use a reasonable value to balance observability and memory overhead. +- Introduced in: v3.5.0 + +##### max_query_retry_time + +- Default: 2 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of query retries on an FE. +- Introduced in: - + +##### max_running_rollup_job_num_per_table + +- Default: 1 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of rollup jobs can run in parallel for a table. +- Introduced in: - + +##### max_scalar_operator_flat_children + +- Default:10000 +- Type:Int +- Unit:- +- Is mutable: Yes +- Description:The maximum number of flat children for ScalarOperator. You can set this limit to prevent the optimizer from using too much memory. +- Introduced in: - + +##### max_scalar_operator_optimize_depth + +- Default:256 +- Type:Int +- Unit:- +- Is mutable: Yes +- Description: The maximum depth that ScalarOperator optimization can be applied. +- Introduced in: - + +##### mv_active_checker_interval_seconds + +- Default: 60 +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: When the background active_checker thread is enabled, the system will periodically detect and automatically reactivate materialized views that became Inactive due to schema changes or rebuilds of their base tables (or views). This parameter controls the scheduling interval of the checker thread, in seconds. The default value is system-defined. +- Introduced in: v3.1.6 + +##### mv_rewrite_consider_data_layout_mode + +- Default: `enable` +- Type: String +- Unit: - +- Is mutable: Yes +- Description: Controls whether materialized view rewrite should take the base table data layout into account when selecting the best materialized view. Valid values: + - `disable`: Never use data-layout criteria when choosing between candidate materialized views. + - `enable`: Use data-layout criteria only when the query is recognized as layout-sensitive. + - `force`: Always apply data-layout criteria when selecting the best materialized view. + Changing this item affects `BestMvSelector` behavior and can improve or broaden rewrite applicability depending on whether physical layout matters for plan correctness or performance. +- Introduced in: - + +##### publish_version_interval_ms + +- Default: 10 +- Type: Int +- Unit: Milliseconds +- Is mutable: No +- Description: The time interval at which release validation tasks are issued. +- Introduced in: - + +##### query_queue_slots_estimator_strategy + +- Default: MAX +- Type: String +- Unit: - +- Is mutable: Yes +- Description: Selects the slot estimation strategy used for queue-based queries when `enable_query_queue_v2` is true. Valid values: MBE (memory-based), PBE (parallelism-based), MAX (take max of MBE and PBE) and MIN (take min of MBE and PBE). MBE estimates slots from predicted memory or plan costs divided by the per-slot memory target and is capped by `totalSlots`. PBE derives slots from fragment parallelism (scan range counts or cardinality / rows-per-slot) and a CPU-cost based calculation (using CPU costs per slot), then bounds the result within [numSlots/2, numSlots]. MAX and MIN combine MBE and PBE by taking their maximum or minimum respectively. If the configured value is invalid, the default (`MAX`) is used. +- Introduced in: v3.5.0 + +##### query_queue_v2_concurrency_level + +- Default: 4 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: Controls how many logical concurrency "layers" are used when computing the system's total query slots. In shared-nothing mode the total slots = `query_queue_v2_concurrency_level` * number_of_BEs * cores_per_BE (derived from BackendResourceStat). In multi-warehouse mode the effective concurrency is scaled down to max(1, `query_queue_v2_concurrency_level` / 4). If the configured value is non-positive it is treated as `4`. Changing this value increases or decreases totalSlots (and therefore concurrent query capacity) and affects per-slot resources: memBytesPerSlot is derived by dividing per-worker memory by (cores_per_worker * concurrency), and CPU accounting uses `query_queue_v2_cpu_costs_per_slot`. Set it proportional to cluster size; very large values may reduce per-slot memory and cause resource fragmentation. +- Introduced in: v3.3.4, v3.4.0, v3.5.0 + +##### query_queue_v2_cpu_costs_per_slot + +- Default: 1000000000 +- Type: Long +- Unit: planner CPU cost units +- Is mutable: Yes +- Description: Per-slot CPU cost threshold used to estimate how many slots a query needs from its planner CPU cost. The scheduler computes slots as integer(plan_cpu_costs / `query_queue_v2_cpu_costs_per_slot`) and then clamps the result to the range [1, totalSlots] (totalSlots is derived from the query queue V2 `V2` parameters). The V2 code normalizes non-positive settings to 1 (Math.max(1, value)), so a non-positive value effectively becomes `1`. Increasing this value reduces slots allocated per query (favoring fewer, larger-slot queries); decreasing it increases slots per query. Tune together with `query_queue_v2_num_rows_per_slot` and concurrency settings to control parallelism vs. resource granularity. +- Introduced in: v3.3.4, v3.4.0, v3.5.0 + +##### query_queue_v2_num_rows_per_slot + +- Default: 4096 +- Type: Int +- Unit: Rows +- Is mutable: Yes +- Description: The target number of source-row records assigned to a single scheduling slot when estimating per-query slot count. StarRocks computes estimated_slots = (cardinality of the Source Node) / `query_queue_v2_num_rows_per_slot`, then clamps the result to the range [1, totalSlots] and enforces a minimum of 1 if the computed value is non-positive. totalSlots is derived from available resources (roughly DOP * `query_queue_v2_concurrency_level` * number_of_workers/BE) and therefore depends on cluster/core counts. Increase this value to reduce slot count (each slot handles more rows) and lower scheduling overhead; decrease it to increase parallelism (more, smaller slots), up to the resource limit. +- Introduced in: v3.3.4, v3.4.0, v3.5.0 + +##### query_queue_v2_schedule_strategy + +- Default: SWRR +- Type: String +- Unit: - +- Is mutable: Yes +- Description: Selects the scheduling policy used by Query Queue V2 to order pending queries. Supported values (case-insensitive) are `SWRR` (Smooth Weighted Round Robin) — the default, suitable for mixed/hybrid workloads that need fair weighted sharing — and `SJF` (Short Job First + Aging) — prioritizes short jobs while using aging to avoid starvation. The value is parsed with case-insensitive enum lookup; an unrecognized value is logged as an error and the default policy is used. This configuration only affects behavior when Query Queue V2 is enabled and interacts with V2 sizing settings such as `query_queue_v2_concurrency_level`. +- Introduced in: v3.3.12, v3.4.2, v3.5.0 + +##### semi_sync_collect_statistic_await_seconds + +- Default: 30 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: Maximum wait time for semi-synchronous statistics collection during DML operations (INSERT INTO and INSERT OVERWRITE statements). Stream Load and Broker Load use asynchronous mode and are not affected by this configuration. If statistics collection time exceeds this value, the load operation continues without waiting for collection to complete. This configuration works in conjunction with `enable_statistic_collect_on_first_load`. +- Introduced in: v3.1 + +##### slow_query_analyze_threshold + +- Default: 5 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description:: The execution time threshold for queries to trigger the analysis of Query Feedback. +- Introduced in: v3.4.0 + +##### statistic_analyze_status_keep_second + +- Default: 3 * 24 * 3600 +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: The duration to retain the history of collection tasks. The default value is 3 days. +- Introduced in: - + +##### statistic_auto_analyze_end_time + +- Default: 23:59:59 +- Type: String +- Unit: - +- Is mutable: Yes +- Description: The end time of automatic collection. Value range: `00:00:00` - `23:59:59`. +- Introduced in: - + +##### statistic_auto_analyze_start_time + +- Default: 00:00:00 +- Type: String +- Unit: - +- Is mutable: Yes +- Description: The start time of automatic collection. Value range: `00:00:00` - `23:59:59`. +- Introduced in: - + +##### statistic_auto_collect_ratio + +- Default: 0.8 +- Type: Double +- Unit: - +- Is mutable: Yes +- Description: The threshold for determining whether the statistics for automatic collection are healthy. If statistics health is below this threshold, automatic collection is triggered. +- Introduced in: - + +##### statistic_auto_collect_small_table_rows + +- Default: 10000000 +- Type: Long +- Unit: - +- Is mutable: Yes +- Description: Threshold to determine whether a table in an external data source (Hive, Iceberg, Hudi) is a small table during automatic collection. If the table has rows less than this value, the table is considered a small table. +- Introduced in: v3.2 + +##### statistic_cache_columns + +- Default: 100000 +- Type: Long +- Unit: - +- Is mutable: No +- Description: The number of rows that can be cached for the statistics table. +- Introduced in: - + +##### statistic_cache_thread_pool_size + +- Default: 10 +- Type: Int +- Unit: - +- Is mutable: No +- Description: The size of the thread-pool which will be used to refresh statistic caches. +- Introduced in: - + +##### statistic_collect_interval_sec + +- Default: 5 * 60 +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: The interval for checking data updates during automatic collection. +- Introduced in: - + +##### statistic_max_full_collect_data_size + +- Default: 100 * 1024 * 1024 * 1024 +- Type: Long +- Unit: bytes +- Is mutable: Yes +- Description: The data size threshold for the automatic collection of statistics. If the total size exceeds this value, then sampled collection is performed instead of full. +- Introduced in: - + +##### statistic_sample_collect_rows + +- Default: 200000 +- Type: Long +- Unit: - +- Is mutable: Yes +- Description: The row count threshold for deciding between SAMPLE and FULL statistics collection during loading-triggered statistics operations. If the number of loaded or changed rows exceeds this threshold (default 200,000), SAMPLE statistics collection is used; otherwise, FULL statistics collection is used. This setting works in conjunction with `enable_statistic_collect_on_first_load` and `statistic_sample_collect_ratio_threshold_of_first_load`. +- Introduced in: - + +##### statistic_update_interval_sec + +- Default: 24 * 60 * 60 +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: The interval at which the cache of statistical information is updated. +- Introduced in: - + +##### task_check_interval_second + +- Default: 60 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: Interval between executions of task background jobs. GlobalStateMgr uses this value to schedule the TaskCleaner FrontendDaemon which invokes `doTaskBackgroundJob()`; the value is multiplied by 1000 to set the daemon interval in milliseconds. Decreasing the value makes background maintenance (task cleanup, checks) run more frequently and react faster but increases CPU/IO overhead; increasing it reduces overhead but delays cleanup and detection of stale tasks. Tune this value to balance maintenance responsiveness and resource usage. +- Introduced in: v3.2.0 + +##### task_min_schedule_interval_s + +- Default: 10 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: Minimum allowed schedule interval (in seconds) for task schedules checked by the SQL layer. When a task is submitted, TaskAnalyzer converts the schedule period to seconds and rejects the submission with ERR_INVALID_PARAMETER if the period is smaller than `task_min_schedule_interval_s`. This prevents creating tasks that run too frequently and protects the scheduler from high-frequency tasks. If a schedule has no explicit start time, TaskAnalyzer sets the start time to the current epoch seconds. +- Introduced in: v3.3.0, v3.4.0, v3.5.0 + +##### task_runs_timeout_second + +- Default: 4 * 3600 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: Default execution timeout (in seconds) for a TaskRun. This item is used by TaskRun execution as the baseline timeout. If the task run's properties include session variables `query_timeout` or `insert_timeout` with a positive integer value, the runtime uses the larger value between that session timeout and `task_runs_timeout_second`. The effective timeout is then bounded to not exceed the configured `task_runs_ttl_second` and `task_ttl_second`. Set this item to limit how long a task run may execute. Very large values may be clipped by the task/task-run TTL settings. +- Introduced in: - + +### Loading and unloading + +##### broker_load_default_timeout_second + +- Default: 14400 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The timeout duration for a Broker Load job. +- Introduced in: - + +##### desired_max_waiting_jobs + +- Default: 1024 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of pending jobs in an FE. The number refers to all jobs, such as table creation, loading, and schema change jobs. If the number of pending jobs in an FE reaches this value, the FE will reject new load requests. This parameter takes effect only for asynchronous loading. From v2.5 onwards, the default value is changed from 100 to 1024. +- Introduced in: - + +##### disable_load_job + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to disable loading when the cluster encounters an error. This prevents any loss caused by cluster errors. The default value is `FALSE`, indicating that loading is not disabled. `TRUE` indicates loading is disabled and the cluster is in read-only state. +- Introduced in: - + +##### empty_load_as_error + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to return an error message "all partitions have no load data" if no data is loaded. Valid values: + - `true`: If no data is loaded, the system displays a failure message and returns an error "all partitions have no load data". + - `false`: If no data is loaded, the system displays a success message and returns OK, instead of an error. +- Introduced in: - + +##### enable_file_bundling + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable the File Bundling optimization for the cloud-native table. When this feature is enabled (set to `true`), the system automatically bundles the data files generated by loading, Compaction, or Publish operations, thereby reducing the API cost caused by high-frequency access to the external storage system. You can also control this behavior on the table level using the CREATE TABLE property `file_bundling`. For detailed instructions, see [CREATE TABLE](../../sql-reference/sql-statements/table_bucket_part_index/CREATE_TABLE.md). +- Introduced in: v4.0 + +##### enable_routine_load_lag_metrics + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to collect Routine Load Kafka partition offset lag metrics. Please note that set this item to `true` will call the Kafka API to get the partition's latest offset. +- Introduced in: - + +##### enable_sync_publish + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to synchronously execute the apply task at the publish phase of a load transaction. This parameter is applicable only to Primary Key tables. Valid values: + - `TRUE` (default): The apply task is synchronously executed at the publish phase of a load transaction. It means that the load transaction is reported as successful only after the apply task is completed, and the loaded data can truly be queried. When a task loads a large volume of data at a time or loads data frequently, setting this parameter to `true` can improve query performance and stability, but may increase load latency. + - `FALSE`: The apply task is asynchronously executed at the publish phase of a load transaction. It means that the load transaction is reported as successful after the apply task is submitted, but the loaded data cannot be immediately queried. In this case, concurrent queries need to wait for the apply task to complete or time out before they can continue. When a task loads a large volume of data at a time or loads data frequently, setting this parameter to `false` may affect query performance and stability. +- Introduced in: v3.2.0 + +##### export_checker_interval_second + +- Default: 5 +- Type: Int +- Unit: Seconds +- Is mutable: No +- Description: The time interval at which load jobs are scheduled. +- Introduced in: - + +##### export_max_bytes_per_be_per_task + +- Default: 268435456 +- Type: Long +- Unit: Bytes +- Is mutable: Yes +- Description: The maximum amount of data that can be exported from a single BE by a single data unload task. +- Introduced in: - + +##### export_running_job_num_limit + +- Default: 5 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of data exporting tasks that can run in parallel. +- Introduced in: - + +##### export_task_default_timeout_second + +- Default: 2 * 3600 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The timeout duration for a data exporting task. +- Introduced in: - + +##### export_task_pool_size + +- Default: 5 +- Type: Int +- Unit: - +- Is mutable: No +- Description: The size of the unload task thread pool. +- Introduced in: - + +##### external_table_commit_timeout_ms + +- Default: 10000 +- Type: Int +- Unit: Milliseconds +- Is mutable: Yes +- Description: The timeout duration for committing (publishing) a write transaction to a StarRocks external table. The default value `10000` indicates a 10-second timeout duration. +- Introduced in: - + +##### finish_transaction_default_lock_timeout_ms + +- Default: 1000 +- Type: Int +- Unit: MilliSeconds +- Is mutable: Yes +- Description: The default timeout for acquiring the db and table lock during finishing transaction. +- Introduced in: v4.0.0, v3.5.8 + +##### history_job_keep_max_second + +- Default: 7 * 24 * 3600 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The maximum duration a historical job can be retained, such as schema change jobs. +- Introduced in: - + +##### insert_load_default_timeout_second + +- Default: 3600 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The timeout duration for the INSERT INTO statement that is used to load data. +- Introduced in: - + +##### label_clean_interval_second + +- Default: 4 * 3600 +- Type: Int +- Unit: Seconds +- Is mutable: No +- Description: The time interval at which labels are cleaned up. Unit: second. We recommend that you specify a short time interval to ensure that historical labels can be cleaned up in a timely manner. +- Introduced in: - + +##### label_keep_max_num + +- Default: 1000 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of load jobs that can be retained within a period of time. If this number is exceeded, the information of historical jobs will be deleted. +- Introduced in: - + +##### label_keep_max_second + +- Default: 3 * 24 * 3600 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The maximum duration in seconds to keep the labels of load jobs that have been completed and are in the FINISHED or CANCELLED state. The default value is 3 days. After this duration expires, the labels will be deleted. This parameter applies to all types of load jobs. A value too large consumes a lot of memory. +- Introduced in: - + +##### load_checker_interval_second + +- Default: 5 +- Type: Int +- Unit: Seconds +- Is mutable: No +- Description: The time interval at which load jobs are processed on a rolling basis. +- Introduced in: - + +##### load_parallel_instance_num + +- Default: 1 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: Controls the number of parallel load fragment instances created on a single host for broker and stream loads. LoadPlanner uses this value as the per-host degree of parallelism unless the session enables adaptive sink DOP; if the session variable `enable_adaptive_sink_dop` is true, the session`s `sink_degree_of_parallelism` overrides this configuration. When shuffle is required, this value is applied to fragment parallel execution (scan fragment and sink fragment parallel exec instances). When no shuffle is needed, it is used as the sink pipeline DOP. Note: loads from local files are forced to a single instance (pipeline DOP = 1, parallel exec = 1) to avoid local disk contention. Increasing this number raises per-host concurrency and throughput but may increase CPU, memory and I/O contention. +- Introduced in: v3.2.0 + +##### load_straggler_wait_second + +- Default: 300 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The maximum loading lag that can be tolerated by a BE replica. If this value is exceeded, cloning is performed to clone data from other replicas. +- Introduced in: - + +##### loads_history_retained_days + +- Default: 30 +- Type: Int +- Unit: Days +- Is mutable: Yes +- Description: Number of days to retain load history in the internal `_statistics_.loads_history` table. This value is used for table creation to set the table property `partition_live_number` and is passed to `TableKeeper` (clamped to a minimum of 1) to determine how many daily partitions to keep. Increasing or decreasing this value adjusts how long completed load jobs are retained in daily partitions; it affects new table creation and the keeper's pruning behavior but does not automatically recreate past partitions. The `LoadsHistorySyncer` relies on this retention when managing the loads history lifecycle; its sync cadence is controlled by `loads_history_sync_interval_second`. +- Introduced in: v3.3.6, v3.4.0, v3.5.0 + +##### loads_history_sync_interval_second + +- Default: 60 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: Interval (in seconds) used by LoadsHistorySyncer to schedule periodic syncs of finished load jobs from `information_schema.loads` into the internal `_statistics_.loads_history` table. The value is multiplied by 1000 in the constructor to set the FrontendDaemon interval. The syncer skips the first run (to allow table creation) and only imports loads that finished more than one minute ago; small values increase DML and executor load, while larger values delay availability of historical load records. See `loads_history_retained_days` for retention/partitioning behavior of the target table. +- Introduced in: v3.3.6, v3.4.0, v3.5.0 + +##### max_broker_load_job_concurrency + +- Default: 5 +- Alias: async_load_task_pool_size +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of concurrent Broker Load jobs allowed within the StarRocks cluster. This parameter is valid only for Broker Load. The value of this parameter must be less than the value of `max_running_txn_num_per_db`. From v2.5 onwards, the default value is changed from `10` to `5`. +- Introduced in: - + +##### max_load_timeout_second + +- Default: 259200 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The maximum timeout duration allowed for a load job. The load job fails if this limit is exceeded. This limit applies to all types of load jobs. +- Introduced in: - + +##### max_routine_load_batch_size + +- Default: 4294967296 +- Type: Long +- Unit: Bytes +- Is mutable: Yes +- Description: The maximum amount of data that can be loaded by a Routine Load task. +- Introduced in: - + +##### max_routine_load_task_concurrent_num + +- Default: 5 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of concurrent tasks for each Routine Load job. +- Introduced in: - + +##### max_routine_load_task_num_per_be + +- Default: 16 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of concurrent Routine Load tasks on each BE. Since v3.1.0, the default value for this parameter is increased to 16 from 5, and no longer needs to be less than or equal to the value of BE static parameter `routine_load_thread_pool_size` (deprecated). +- Introduced in: - + +##### max_running_txn_num_per_db + +- Default: 1000 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of load transactions allowed to be running for each database within a StarRocks cluster. The default value is `1000`. From v3.1 onwards, the default value is changed to `1000` from `100`. When the actual number of load transactions running for a database exceeds the value of this parameter, new load requests will not be processed. New requests for synchronous load jobs will be denied, and new requests for asynchronous load jobs will be placed in queue. We do not recommend you increase the value of this parameter because this will increase system load. +- Introduced in: - + +##### max_stream_load_timeout_second + +- Default: 259200 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The maximum allowed timeout duration for a Stream Load job. +- Introduced in: - + +##### max_tolerable_backend_down_num + +- Default: 0 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of faulty BE nodes allowed. If this number is exceeded, Routine Load jobs cannot be automatically recovered. +- Introduced in: - + +##### min_bytes_per_broker_scanner + +- Default: 67108864 +- Type: Long +- Unit: Bytes +- Is mutable: Yes +- Description: The minimum allowed amount of data that can be processed by a Broker Load instance. +- Introduced in: - + +##### min_load_timeout_second + +- Default: 1 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The minimum timeout duration allowed for a load job. This limit applies to all types of load jobs. +- Introduced in: - + +##### min_routine_load_lag_for_metrics + +- Default: 10000 +- Type: INT +- Unit: - +- Is mutable: Yes +- Description: The minimum offset lag of Routine Load jobs to be shown in monitoring metrics. Routine Load jobs whose offset lags are greater than this value will be displayed in the metrics. +- Introduced in: - + +##### period_of_auto_resume_min + +- Default: 5 +- Type: Int +- Unit: Minutes +- Is mutable: Yes +- Description: The interval at which Routine Load jobs are automatically recovered. +- Introduced in: - + +##### prepared_transaction_default_timeout_second + +- Default: 86400 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The default timeout duration for a prepared transaction. +- Introduced in: - + +##### routine_load_task_consume_second + +- Default: 15 +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: The maximum time for each Routine Load task within the cluster to consume data. Since v3.1.0, Routine Load job supports a new parameter `task_consume_second` in [job_properties](../../sql-reference/sql-statements/loading_unloading/routine_load/CREATE_ROUTINE_LOAD.md#job_properties). This parameter applies to individual load tasks within a Routine Load job, which is more flexible. +- Introduced in: - + +##### routine_load_task_timeout_second + +- Default: 60 +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: The timeout duration for each Routine Load task within the cluster. Since v3.1.0, Routine Load job supports a new parameter `task_timeout_second` in [job_properties](../../sql-reference/sql-statements/loading_unloading/routine_load/CREATE_ROUTINE_LOAD.md#job_properties). This parameter applies to individual load tasks within a Routine Load job, which is more flexible. +- Introduced in: - + +##### routine_load_unstable_threshold_second + +- Default: 3600 +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: Routine Load job is set to the UNSTABLE state if any task within the Routine Load job lags. To be specific, the difference between the timestamp of the message being consumed and the current time exceeds this threshold, and unconsumed messages exist in the data source. +- Introduced in: - + +##### spark_dpp_version + +- Default: 1.0.0 +- Type: String +- Unit: - +- Is mutable: No +- Description: The version of Spark Dynamic Partition Pruning (DPP) used. +- Introduced in: - + +##### spark_home_default_dir + +- Default: StarRocksFE.STARROCKS_HOME_DIR + "/lib/spark2x" +- Type: String +- Unit: - +- Is mutable: No +- Description: The root directory of a Spark client. +- Introduced in: - + +##### spark_launcher_log_dir + +- Default: sys_log_dir + "/spark_launcher_log" +- Type: String +- Unit: - +- Is mutable: No +- Description: The directory that stores Spark log files. +- Introduced in: - + +##### spark_load_default_timeout_second + +- Default: 86400 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The timeout duration for each Spark Load job. +- Introduced in: - + +##### spark_load_submit_timeout_second + +- Default: 300 +- Type: long +- Unit: Seconds +- Is mutable: No +- Description: Maximum time in seconds to wait for a YARN response after submitting a Spark application. `SparkLauncherMonitor.LogMonitor` converts this value to milliseconds and will stop monitoring and forcibly kill the spark launcher process if the job remains in UNKNOWN/CONNECTED/SUBMITTED longer than this timeout. `SparkLoadJob` reads this configuration as the default and allows a per-load override via the `LoadStmt.SPARK_LOAD_SUBMIT_TIMEOUT` property. Set it high enough to accommodate YARN queueing delays; setting it too low may abort legitimately queued jobs, while setting it too high may delay failure handling and resource cleanup. +- Introduced in: v3.2.0 + +##### spark_resource_path + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The root directory of the Spark dependency package. +- Introduced in: - + +##### stream_load_default_timeout_second + +- Default: 600 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The default timeout duration for each Stream Load job. +- Introduced in: - + +##### stream_load_max_txn_num_per_be + +- Default: -1 +- Type: Int +- Unit: Transactions +- Is mutable: Yes +- Description: Limits the number of concurrent stream-load transactions accepted from a single BE (backend) host. When set to a non-negative integer, FrontendServiceImpl checks the current transaction count for the BE (by client IP) and rejects new stream-load begin requests if the count >= this limit. A value of < 0 disables the limit (unlimited). This check occurs during stream load begin and may cause a `streamload txn num per be exceeds limit` error when exceeded. Related runtime behavior uses `stream_load_default_timeout_second` for request timeout fallback. +- Introduced in: v3.3.0, v3.4.0, v3.5.0 + +##### stream_load_task_keep_max_num + +- Default: 1000 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: Maximum number of Stream Load tasks that StreamLoadMgr keeps in memory (global across all databases). When the number of tracked tasks (`idToStreamLoadTask`) exceeds this threshold, StreamLoadMgr first calls `cleanSyncStreamLoadTasks()` to remove completed synchronous stream-load tasks; if the size still remains greater than half of this threshold, it invokes `cleanOldStreamLoadTasks(true)` to force removal of older or finished tasks. Increase this value to retain more task history in memory; decrease it to reduce memory usage and make cleanup more aggressive. This value controls in-memory retention only and does not affect persisted/replayed tasks. +- Introduced in: v3.2.0 + +##### stream_load_task_keep_max_second + +- Default: 3 * 24 * 3600 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: Retention window for finished or cancelled Stream Load tasks. After a task reaches a final state and its end timestamp is ealier than this threshold (`currentMs - endTimeMs > stream_load_task_keep_max_second * 1000`), it becomes eligible for removal by `StreamLoadMgr.cleanOldStreamLoadTasks` and is discarded when loading persisted state. Applies to both `StreamLoadTask` and `StreamLoadMultiStmtTask`. If total task count exceeds `stream_load_task_keep_max_num`, cleanup may be triggered earlier (synchronous tasks are prioritized by `cleanSyncStreamLoadTasks`). Set this to balance history/debugability against memory usage. +- Introduced in: v3.2.0 + +##### transaction_clean_interval_second + +- Default: 30 +- Type: Int +- Unit: Seconds +- Is mutable: No +- Description: The time interval at which finished transactions are cleaned up. Unit: second. We recommend that you specify a short time interval to ensure that finished transactions can be cleaned up in a timely manner. +- Introduced in: - + +##### transaction_stream_load_coordinator_cache_capacity + +- Default: 4096 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The capacity of the cache that stores the mapping from transaction label to coordinator node. +- Introduced in: - + +##### transaction_stream_load_coordinator_cache_expire_seconds + +- Default: 900 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The time to keep the coordinator mapping in the cache before it's evicted(TTL). +- Introduced in: - + +##### yarn_client_path + +- Default: StarRocksFE.STARROCKS_HOME_DIR + "/lib/yarn-client/hadoop/bin/yarn" +- Type: String +- Unit: - +- Is mutable: No +- Description: The root directory of the Yarn client package. +- Introduced in: - + +##### yarn_config_dir + +- Default: StarRocksFE.STARROCKS_HOME_DIR + "/lib/yarn-config" +- Type: String +- Unit: - +- Is mutable: No +- Description: The directory that stores the Yarn configuration file. +- Introduced in: - + +### Statistic report + +##### enable_collect_warehouse_metrics + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: When this item is set to `true`, the system will collect and export per-warehouse metrics. Enabling it adds warehouse-level metrics (slot/usage/availability) to the metric output and increases metric cardinality and collection overhead. Disable it to omit warehouse-specific metrics and reduce CPU/network and monitoring storage cost. +- Introduced in: v3.5.0 + +##### enable_http_detail_metrics + +- Default: false +- Type: boolean +- Unit: - +- Is mutable: Yes +- Description: When true, the HTTP server computes and exposes detailed HTTP worker metrics (notably the `HTTP_WORKER_PENDING_TASKS_NUM` gauge). Enabling this causes the server to iterate over Netty worker executors and call `pendingTasks()` on each `NioEventLoop` to sum pending task counts; when disabled the gauge returns 0 to avoid that cost. This extra collection can be CPU- and latency-sensitive — enable only for debugging or detailed investigation. +- Introduced in: v3.2.3 + +##### proc_profile_collect_time_s + +- Default: 120 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: Duration in seconds for a single process profile collection. When `proc_profile_cpu_enable` or `proc_profile_mem_enable` is set to `true`, AsyncProfiler is started, the collector thread sleeps for this duration, then the profiler is stopped and the profile is written. Larger values increase sample coverage and file size but prolong profiler runtime and delay subsequent collections; smaller values reduce overhead but may produce insufficient samples. Ensure this value aligns with retention settings such as `proc_profile_file_retained_days` and `proc_profile_file_retained_size_bytes`. +- Introduced in: v3.2.12 + +### Storage + +##### alter_table_timeout_second + +- Default: 86400 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The timeout duration for the schema change operation (ALTER TABLE). +- Introduced in: - + +##### capacity_used_percent_high_water + +- Default: 0.75 +- Type: double +- Unit: Fraction (0.0–1.0) +- Is mutable: Yes +- Description: The high-water threshold of disk capacity used percent (fraction of total capacity) used when computing backend load scores. `BackendLoadStatistic.calcSore` uses `capacity_used_percent_high_water` to set `LoadScore.capacityCoefficient`: if a backend's used percent less than 0.5 the coefficient equal to 0.5; if used percent > `capacity_used_percent_high_water` the coefficient = 1.0; otherwise the coefficient transitions linearly with used percent via (2 * usedPercent - 0.5). When the coefficient is 1.0, the load score is driven entirely by capacity proportion; lower values increase the weight of replica count. Adjusting this value changes how aggressively the balancer penalizes backends with high disk utilization. +- Introduced in: v3.2.0 + +##### catalog_trash_expire_second + +- Default: 86400 +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: The longest duration the metadata can be retained after a database, table, or partition is dropped. If this duration expires, the data will be deleted and cannot be recovered through the [RECOVER](../../sql-reference/sql-statements/backup_restore/RECOVER.md) command. +- Introduced in: - + +##### check_consistency_default_timeout_second + +- Default: 600 +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: The timeout duration for a replica consistency check. You can set this parameter based on the size of your tablet. +- Introduced in: - + +##### consistency_check_cooldown_time_second + +- Default: 24 * 3600 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: Controls the minimal interval (in seconds) required between consistency checks of the same tablet. During tablet selection, a tablet is considered eligible only if `tablet.getLastCheckTime()` is less than `(currentTimeMillis - consistency_check_cooldown_time_second * 1000)`. The default value (24 * 3600) enforces roughly one check per tablet per day to reduce backend disk I/O. Lowering this value increases check frequency and resource usage; raising it reduces I/O at the cost of slower detection of inconsistencies. The value is applied globally when filtering cooldowned tablets from an index's tablet list. +- Introduced in: v3.5.5 + +##### consistency_check_end_time + +- Default: "4" +- Type: String +- Unit: Hour of day (0-23) +- Is mutable: No +- Description: Specifies the end hour (hour-of-day) of the ConsistencyChecker work window. The value is parsed with SimpleDateFormat("HH") in the system time zone and accepted as 0–23 (single or two-digit). StarRocks uses it with `consistency_check_start_time` to decide when to schedule and add consistency-check jobs. When `consistency_check_start_time` is greater than `consistency_check_end_time`, the window spans midnight (for example, default is `consistency_check_start_time` = "23" to `consistency_check_end_time` = "4"). When `consistency_check_start_time` is equal to `consistency_check_end_time`, the checker never runs. Parsing failure will cause FE startup to log an error and exit, so provide a valid hour string. +- Introduced in: v3.2.0 + +##### consistency_check_start_time + +- Default: "23" +- Type: String +- Unit: Hour of day (00-23) +- Is mutable: No +- Description: Specifies the start hour (hour-of-day) of the ConsistencyChecker work window. The value is parsed with SimpleDateFormat("HH") in the system time zone and accepted as 0–23 (single or two-digit). StarRocks uses it with `consistency_check_end_time` to decide when to schedule and add consistency-check jobs. When `consistency_check_start_time` is greater than `consistency_check_end_time`, the window spans midnight (for example, default is `consistency_check_start_time` = "23" to `consistency_check_end_time` = "4"). When `consistency_check_start_time` is equal to `consistency_check_end_time`, the checker never runs. Parsing failure will cause FE startup to log an error and exit, so provide a valid hour string. +- Introduced in: v3.2.0 + +##### consistency_tablet_meta_check_interval_ms + +- Default: 2 * 3600 * 1000 +- Type: Int +- Unit: Milliseconds +- Is mutable: Yes +- Description: Interval used by the ConsistencyChecker to run a full tablet-meta consistency scan between `TabletInvertedIndex` and `LocalMetastore`. The daemon in `runAfterCatalogReady` triggers checkTabletMetaConsistency when `current time - lastTabletMetaCheckTime` exceeds this value. When an invalid tablet is first detected, its `toBeCleanedTime` is set to `now + (consistency_tablet_meta_check_interval_ms / 2)` so actual deletion is delayed until a subsequent scan. Increase this value to reduce scan frequency and load (slower cleanup); decrease it to detect and remove stale tablets faster (higher overhead). +- Introduced in: v3.2.0 + +##### default_replication_num + +- Default: 3 +- Type: Short +- Unit: - +- Is mutable: Yes +- Description: Sets the default number of replicas for each data partition when creating a table in StarRocks. This setting can be overridden when creating a table by specifying `replication_num=x` in the CREATE TABLE DDL. +- Introduced in: - + +##### enable_auto_tablet_distribution + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to automatically set the number of buckets. + - If this parameter is set to `TRUE`, you don't need to specify the number of buckets when you create a table or add a partition. StarRocks automatically determines the number of buckets. + - If this parameter is set to `FALSE`, you need to manually specify the number of buckets when you create a table or add a partition. If you do not specify the bucket count when adding a new partition to a table, the new partition inherits the bucket count set at the creation of the table. However, you can also manually specify the number of buckets for the new partition. +- Introduced in: v2.5.7 + +##### enable_experimental_rowstore + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable the [hybrid row-column storage](../../table_design/hybrid_table.md) feature. +- Introduced in: v3.2.3 + +##### enable_fast_schema_evolution + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable fast schema evolution for all tables within the StarRocks cluster. Valid values are `TRUE` and `FALSE` (default). Enabling fast schema evolution can increase the speed of schema changes and reduce resource usage when columns are added or dropped. +- Introduced in: v3.2.0 + +> **NOTE** +> +> - StarRocks shared-data clusters supports this parameter from v3.3.0. +> - If you need to configure the fast schema evolution for a specific table, such as disabling fast schema evolution for a specific table, you can set the table property [`fast_schema_evolution`](../../sql-reference/sql-statements/table_bucket_part_index/CREATE_TABLE.md#set-fast-schema-evolution) at table creation. + +##### enable_online_optimize_table + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Controls whether StarRocks will use the non-blocking online optimization path when creating an optimize job. When `enable_online_optimize_table` is true and the target table meets compatibility checks (no partition/keys/sort specification, distribution is not `RandomDistributionDesc`, storage type is not `COLUMN_WITH_ROW`, replicated storage enabled, and the table is not a cloud-native table or materialized view), the planner creates an `OnlineOptimizeJobV2` to perform optimization without blocking writes. If false or any compatibility condition fails, StarRocks falls back to `OptimizeJobV2`, which may block write operations during optimization. +- Introduced in: v3.3.3, v3.4.0, v3.5.0 + +##### enable_strict_storage_medium_check + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether the FE strictly checks the storage medium of BEs when users create tables. If this parameter is set to `TRUE`, the FE checks the storage medium of BEs when users create tables and returns an error if the storage medium of the BE is different from the `storage_medium` parameter specified in the CREATE TABLE statement. For example, the storage medium specified in the CREATE TABLE statement is SSD but the actual storage medium of BEs is HDD. As a result, the table creation fails. If this parameter is `FALSE`, the FE does not check the storage medium of BEs when users create a table. +- Introduced in: - + +##### max_bucket_number_per_partition + +- Default: 1024 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of buckets can be created in a partition. +- Introduced in: v3.3.2 + +##### max_column_number_per_table + +- Default: 10000 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of columns can be created in a table. +- Introduced in: v3.3.2 + +##### max_dynamic_partition_num + +- Default: 500 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: Limits the maximum number of partitions that can be created at once when analyzing or creating a dynamic-partitioned table. During dynamic partition property validation, the systemtask_runs_max_history_number computes expected partitions (end offset + history partition number) and throws a DDL error if that total exceeds `max_dynamic_partition_num`. Raise this value only when you expect legitimately large partition ranges; increasing it allows more partitions to be created but can increase metadata size, scheduling work, and operational complexity. +- Introduced in: v3.2.0 + +##### max_partition_number_per_table + +- Default: 100000 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of partitions can be created in a table. +- Introduced in: v3.3.2 + +##### max_task_consecutive_fail_count + +- Default: 10 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: Maximum number of consecutive failures a task may have before the scheduler automatically suspends it. When `TaskSource.MV.equals(task.getSource())` and `max_task_consecutive_fail_count` are greater than 0, if a task's consecutive failure counter reaches or exceeds `max_task_consecutive_fail_count`, the task is suspended via the TaskManager and, for materialized-view tasks, the materialized view is inactivated. An exception is thrown indicating suspension and how to reactivate (for example, `ALTER MATERIALIZED VIEW ACTIVE`). Set this item to 0 or a negative value to disable automatic suspension. +- Introduced in: - + +##### partition_recycle_retention_period_secs + +- Default: 1800 +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: The metadata retention time for the partition that is dropped by INSERT OVERWRITE or materialized view refresh operations. Note that such metadata cannot be recovered by executing [RECOVER](../../sql-reference/sql-statements/backup_restore/RECOVER.md). +- Introduced in: v3.5.9 + +##### recover_with_empty_tablet + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to replace a lost or corrupted tablet replica with an empty one. If a tablet replica is lost or corrupted, data queries on this tablet or other healthy tablets may fail. Replacing the lost or corrupted tablet replica with an empty tablet ensures that the query can still be executed. However, the result may be incorrect because data is lost. The default value is `FALSE`, which means lost or corrupted tablet replicas are not replaced with empty ones, and the query fails. +- Introduced in: - + +##### storage_usage_hard_limit_percent + +- Default: 95 +- Alias: storage_flood_stage_usage_percent +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: Hard limit of the storage usage percentage in a BE directory. If the storage usage (in percentage) of the BE storage directory exceeds this value and the remaining storage space is less than `storage_usage_hard_limit_reserve_bytes`, Load and Restore jobs are rejected. You need to set this item together with the BE configuration item `storage_flood_stage_usage_percent` to allow the configurations to take effect. +- Introduced in: - + +##### storage_usage_hard_limit_reserve_bytes + +- Default: 100 * 1024 * 1024 * 1024 +- Alias: storage_flood_stage_left_capacity_bytes +- Type: Long +- Unit: Bytes +- Is mutable: Yes +- Description: Hard limit of the remaining storage space in a BE directory. If the remaining storage space in the BE storage directory is less than this value and the storage usage (in percentage) exceeds `storage_usage_hard_limit_percent`, Load and Restore jobs are rejected. You need to set this item together with the BE configuration item `storage_flood_stage_left_capacity_bytes` to allow the configurations to take effect. +- Introduced in: - + +##### storage_usage_soft_limit_percent + +- Default: 90 +- Alias: storage_high_watermark_usage_percent +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: Soft limit of the storage usage percentage in a BE directory. If the storage usage (in percentage) of the BE storage directory exceeds this value and the remaining storage space is less than `storage_usage_soft_limit_reserve_bytes`, tablets cannot be cloned into this directory. +- Introduced in: - + +##### storage_usage_soft_limit_reserve_bytes + +- Default: 200 * 1024 * 1024 * 1024 +- Alias: storage_min_left_capacity_bytes +- Type: Long +- Unit: Bytes +- Is mutable: Yes +- Description: Soft limit of the remaining storage space in a BE directory. If the remaining storage space in the BE storage directory is less than this value and the storage usage (in percentage) exceeds `storage_usage_soft_limit_percent`, tablets cannot be cloned into this directory. +- Introduced in: - + +##### tablet_checker_lock_time_per_cycle_ms + +- Default: 1000 +- Type: Int +- Unit: Milliseconds +- Is mutable: Yes +- Description: The maximum lock hold time per cycle for tablet checker before releasing and reacquiring the table lock. Values less than 100 will be treated as 100. +- Introduced in: v3.5.9, v4.0.2 + +##### tablet_create_timeout_second + +- Default: 10 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The timeout duration for creating a tablet. The default value is changed from 1 to 10 from v3.1 onwards. +- Introduced in: - + +##### tablet_delete_timeout_second + +- Default: 2 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The timeout duration for deleting a tablet. +- Introduced in: - + +##### tablet_sched_balance_load_disk_safe_threshold + +- Default: 0.5 +- Alias: balance_load_disk_safe_threshold +- Type: Double +- Unit: - +- Is mutable: Yes +- Description: The percentage threshold for determining whether the disk usage of BEs is balanced. If the disk usage of all BEs is lower than this value, it is considered balanced. If the disk usage is greater than this value and the difference between the highest and lowest BE disk usage is greater than 10%, the disk usage is considered unbalanced and a tablet re-balancing is triggered. +- Introduced in: - + +##### tablet_sched_balance_load_score_threshold + +- Default: 0.1 +- Alias: balance_load_score_threshold +- Type: Double +- Unit: - +- Is mutable: Yes +- Description: The percentage threshold for determining whether the load of a BE is balanced. If a BE has a lower load than the average load of all BEs and the difference is greater than this value, this BE is in a low load state. On the contrary, if a BE has a higher load than the average load and the difference is greater than this value, this BE is in a high load state. +- Introduced in: - + +##### tablet_sched_be_down_tolerate_time_s + +- Default: 900 +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: The maximum duration the scheduler allows for a BE node to remain inactive. After the time threshold is reached, tablets on that BE node will be migrated to other active BE nodes. +- Introduced in: v2.5.7 + +##### tablet_sched_disable_balance + +- Default: false +- Alias: disable_balance +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to disable tablet balancing. `TRUE` indicates that tablet balancing is disabled. `FALSE` indicates that tablet balancing is enabled. +- Introduced in: - + +##### tablet_sched_disable_colocate_balance + +- Default: false +- Alias: disable_colocate_balance +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to disable replica balancing for Colocate Table. `TRUE` indicates replica balancing is disabled. `FALSE` indicates replica balancing is enabled. +- Introduced in: - + +##### tablet_sched_max_balancing_tablets + +- Default: 500 +- Alias: max_balancing_tablets +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of tablets that can be balanced at the same time. If this value is exceeded, tablet re-balancing will be skipped. +- Introduced in: - + +##### tablet_sched_max_clone_task_timeout_sec + +- Default: 2 * 60 * 60 +- Alias: max_clone_task_timeout_sec +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description:The maximum timeout duration for cloning a tablet. +- Introduced in: - + +##### tablet_sched_max_not_being_scheduled_interval_ms + +- Default: 15 * 60 * 1000 +- Type: Long +- Unit: Milliseconds +- Is mutable: Yes +- Description: When the tablet clone tasks are being scheduled, if a tablet has not been scheduled for the specified time in this parameter, StarRocks gives it a higher priority to schedule it as soon as possible. +- Introduced in: - + +##### tablet_sched_max_scheduling_tablets + +- Default: 10000 +- Alias: max_scheduling_tablets +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of tablets that can be scheduled at the same time. If the value is exceeded, tablet balancing and repair checks will be skipped. +- Introduced in: - + +##### tablet_sched_min_clone_task_timeout_sec + +- Default: 3 * 60 +- Alias: min_clone_task_timeout_sec +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: The minimum timeout duration for cloning a tablet. +- Introduced in: - + +##### tablet_sched_num_based_balance_threshold_ratio + +- Default: 0.5 +- Alias: - +- Type: Double +- Unit: - +- Is mutable: Yes +- Description: Doing num based balance may break the disk size balance, but the maximum gap between disks cannot exceed tablet_sched_num_based_balance_threshold_ratio * tablet_sched_balance_load_score_threshold. If there are tablets in the cluster that are constantly balancing from A to B and B to A, reduce this value. If you want the tablet distribution to be more balanced, increase this value. +- Introduced in: - 3.1 + +##### tablet_sched_repair_delay_factor_second + +- Default: 60 +- Alias: tablet_repair_delay_factor_second +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: The interval at which replicas are repaired, in seconds. +- Introduced in: - + +##### tablet_sched_slot_num_per_path + +- Default: 8 +- Alias: schedule_slot_num_per_path +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of tablet-related tasks that can run concurrently in a BE storage directory. From v2.5 onwards, the default value of this parameter is changed from `4` to `8`. +- Introduced in: - + +##### tablet_sched_storage_cooldown_second + +- Default: -1 +- Alias: storage_cooldown_second +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: The latency of automatic cooling starting from the time of table creation. The default value `-1` specifies that automatic cooling is disabled. If you want to enable automatic cooling, set this parameter to a value greater than `-1`. +- Introduced in: - + +##### tablet_stat_update_interval_second + +- Default: 300 +- Type: Int +- Unit: Seconds +- Is mutable: No +- Description: The time interval at which the FE retrieves tablet statistics from each BE. +- Introduced in: - + +### Shared-data + +##### aws_s3_access_key + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The Access Key ID used to access your S3 bucket. +- Introduced in: v3.0 + +##### aws_s3_endpoint + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The endpoint used to access your S3 bucket, for example, `https://s3.us-west-2.amazonaws.com`. +- Introduced in: v3.0 + +##### aws_s3_external_id + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The external ID of the AWS account that is used for cross-account access to your S3 bucket. +- Introduced in: v3.0 + +##### aws_s3_iam_role_arn + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The ARN of the IAM role that has privileges on your S3 bucket in which your data files are stored. +- Introduced in: v3.0 + +##### aws_s3_path + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The S3 path used to store data. It consists of the name of your S3 bucket and the sub-path (if any) under it, for example, `testbucket/subpath`. +- Introduced in: v3.0 + +##### aws_s3_region + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The region in which your S3 bucket resides, for example, `us-west-2`. +- Introduced in: v3.0 + +##### aws_s3_secret_key + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The Secret Access Key used to access your S3 bucket. +- Introduced in: v3.0 + +##### aws_s3_use_aws_sdk_default_behavior + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: No +- Description: Whether to use the default authentication credential of AWS SDK. Valid values: true and false (Default). +- Introduced in: v3.0 + +##### aws_s3_use_instance_profile + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: No +- Description: Whether to use Instance Profile and Assumed Role as credential methods for accessing S3. Valid values: true and false (Default). + - If you use IAM user-based credential (Access Key and Secret Key) to access S3, you must specify this item as `false`, and specify `aws_s3_access_key` and `aws_s3_secret_key`. + - If you use Instance Profile to access S3, you must specify this item as `true`. + - If you use Assumed Role to access S3, you must specify this item as `true`, and specify `aws_s3_iam_role_arn`. + - And if you use an external AWS account, you must also specify `aws_s3_external_id`. +- Introduced in: v3.0 + +##### azure_adls2_endpoint + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The endpoint of your Azure Data Lake Storage Gen2 Account, for example, `https://test.dfs.core.windows.net`. +- Introduced in: v3.4.1 + +##### azure_adls2_oauth2_client_id + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The Client ID of the Managed Identity used to authorize requests for your Azure Data Lake Storage Gen2. +- Introduced in: v3.4.4 + +##### azure_adls2_oauth2_tenant_id + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The Tenant ID of the Managed Identity used to authorize requests for your Azure Data Lake Storage Gen2. +- Introduced in: v3.4.4 + +##### azure_adls2_oauth2_use_managed_identity + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: No +- Description: Whether to use Managed Identity to authorize requests for your Azure Data Lake Storage Gen2. +- Introduced in: v3.4.4 + +##### azure_adls2_path + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The Azure Data Lake Storage Gen2 path used to store data. It consists of the file system name and the directory name, for example, `testfilesystem/starrocks`. +- Introduced in: v3.4.1 + +##### azure_adls2_sas_token + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The shared access signatures (SAS) used to authorize requests for your Azure Data Lake Storage Gen2. +- Introduced in: v3.4.1 + +##### azure_adls2_shared_key + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The Shared Key used to authorize requests for your Azure Data Lake Storage Gen2. +- Introduced in: v3.4.1 + +##### azure_blob_endpoint + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The endpoint of your Azure Blob Storage Account, for example, `https://test.blob.core.windows.net`. +- Introduced in: v3.1 + +##### azure_blob_path + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The Azure Blob Storage path used to store data. It consists of the name of the container within your storage account and the sub-path (if any) under the container, for example, `testcontainer/subpath`. +- Introduced in: v3.1 + +##### azure_blob_sas_token + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The shared access signatures (SAS) used to authorize requests for your Azure Blob Storage. +- Introduced in: v3.1 + +##### azure_blob_shared_key + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The Shared Key used to authorize requests for your Azure Blob Storage. +- Introduced in: v3.1 + +##### azure_use_native_sdk + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to use the native SDK to access Azure Blob Storage, thus allowing authentication with Managed Identities and Service Principals. If this item is set to `false`, only authentication with Shared Key and SAS Token is allowed. +- Introduced in: v3.4.4 + +##### cloud_native_hdfs_url + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The URL of the HDFS storage, for example, `hdfs://127.0.0.1:9000/user/xxx/starrocks/`. +- Introduced in: - + +##### cloud_native_meta_port + +- Default: 6090 +- Type: Int +- Unit: - +- Is mutable: No +- Description: FE cloud-native metadata server RPC listen port. +- Introduced in: - + +##### cloud_native_storage_type + +- Default: S3 +- Type: String +- Unit: - +- Is mutable: No +- Description: The type of object storage you use. In shared-data mode, StarRocks supports storing data in HDFS, Azure Blob (supported from v3.1.1 onwards), Azure Data Lake Storage Gen2 (supported from v3.4.1 onwards), Google Storage (with native SDK, supported from v3.5.1 onwards), and object storage systems that are compatible with the S3 protocol (such as AWS S3, and MinIO). Valid value: `S3` (Default), `HDFS`, `AZBLOB`, `ADLS2`, and `GS`. If you specify this parameter as `S3`, you must add the parameters prefixed by `aws_s3`. If you specify this parameter as `AZBLOB`, you must add the parameters prefixed by `azure_blob`. If you specify this parameter as `ADLS2`, you must add the parameters prefixed by `azure_adls2`. If you specify this parameter as `GS`, you must add the parameters prefixed by `gcp_gcs`. If you specify this parameter as `HDFS`, you only need to specify `cloud_native_hdfs_url`. +- Introduced in: - + +##### enable_load_volume_from_conf + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: No +- Description: Whether to allow StarRocks to create the built-in storage volume by using the object storage-related properties specified in the FE configuration file. The default value is changed from `true` to `false` from v3.4.1 onwards. +- Introduced in: v3.1.0 + +##### gcp_gcs_impersonation_service_account + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The Service Account that you want to impersonate if you use the impersonation-based authentication to access Google Storage. +- Introduced in: v3.5.1 + +##### gcp_gcs_path + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The Google Cloud path used to store data. It consists of the name of your Google Cloud bucket and the sub-path (if any) under it, for example, `testbucket/subpath`. +- Introduced in: v3.5.1 + +##### gcp_gcs_service_account_email + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The email address in the JSON file generated at the creation of the Service Account, for example, `user@hello.iam.gserviceaccount.com`. +- Introduced in: v3.5.1 + +##### gcp_gcs_service_account_private_key + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The Private Key in the JSON file generated at the creation of the Service Account, for example, `-----BEGIN PRIVATE KEY----xxxx-----END PRIVATE KEY-----\n`. +- Introduced in: v3.5.1 + +##### gcp_gcs_service_account_private_key_id + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The Private Key ID in the JSON file generated at the creation of the Service Account. +- Introduced in: v3.5.1 + +##### gcp_gcs_use_compute_engine_service_account + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: No +- Description: Whether to use the Service Account that is bound to your Compute Engine. +- Introduced in: v3.5.1 + +##### hdfs_file_system_expire_seconds + +- Default: 300 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: Time-to-live in seconds for an unused cached HDFS/ObjectStore FileSystem managed by HdfsFsManager. The FileSystemExpirationChecker (runs every 60s) calls each HdfsFs.isExpired(...) using this value; when expired the manager closes the underlying FileSystem and removes it from the cache. Accessor methods (for example `HdfsFs.getDFSFileSystem`, `getUserName`, `getConfiguration`) update the last-access timestamp, so expiry is based on inactivity. Lower values reduce idle resource holding but increase reopen overhead; higher values keep handles longer and may consume more resources. +- Introduced in: v3.2.0 + +##### lake_autovacuum_grace_period_minutes + +- Default: 30 +- Type: Long +- Unit: Minutes +- Is mutable: Yes +- Description: The time range for retaining historical data versions in a shared-data cluster. Historical data versions within this time range are not automatically cleaned via AutoVacuum after Compactions. You need to set this value greater than the maximum query time to avoid that the data accessed by running queries get deleted before the queries finish. The default value has been changed from `5` to `30` since v3.3.0, v3.2.5, and v3.1.10. +- Introduced in: v3.1.0 + +##### lake_autovacuum_parallel_partitions + +- Default: 8 +- Type: Int +- Unit: - +- Is mutable: No +- Description: The maximum number of partitions that can undergo AutoVacuum simultaneously in a shared-data cluster. AutoVacuum is the Garbage Collection after Compactions. +- Introduced in: v3.1.0 + +##### lake_autovacuum_partition_naptime_seconds + +- Default: 180 +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: The minimum interval between AutoVacuum operations on the same partition in a shared-data cluster. +- Introduced in: v3.1.0 + +##### lake_autovacuum_stale_partition_threshold + +- Default: 12 +- Type: Long +- Unit: Hours +- Is mutable: Yes +- Description: If a partition has no updates (loading, DELETE, or Compactions) within this time range, the system will not perform AutoVacuum on this partition. +- Introduced in: v3.1.0 + +##### lake_compaction_allow_partial_success + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: If this item is set to `true`, the system will consider the Compaction operation in a shared-data cluster as successful when one of the sub-tasks succeeds. +- Introduced in: v3.5.2 + +##### lake_compaction_disable_ids + +- Default: "" +- Type: String +- Unit: - +- Is mutable: Yes +- Description: The table or partition list of which compaction is disabled in shared-data mode. The format is `tableId1;partitionId2`, seperated by semicolon, for example, `12345;98765`. +- Introduced in: v3.4.4 + +##### lake_compaction_history_size + +- Default: 20 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The number of recent successful Compaction task records to keep in the memory of the Leader FE node in a shared-data cluster. You can view recent successful Compaction task records using the `SHOW PROC '/compactions'` command. Note that the Compaction history is stored in the FE process memory, and it will be lost if the FE process is restarted. +- Introduced in: v3.1.0 + +##### lake_compaction_max_tasks + +- Default: -1 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of concurrent Compaction tasks allowed in a shared-data cluster. Setting this item to `-1` indicates to calculate the concurrent task number in an adaptive manner. Setting this value to `0` will disable compaction. +- Introduced in: v3.1.0 + +##### lake_compaction_score_selector_min_score + +- Default: 10.0 +- Type: Double +- Unit: - +- Is mutable: Yes +- Description: The Compaction Score threshold that triggers Compaction operations in a shared-data cluster. When the Compaction Score of a partition is greater than or equal to this value, the system performs Compaction on that partition. +- Introduced in: v3.1.0 + +##### lake_compaction_score_upper_bound + +- Default: 2000 +- Type: Long +- Unit: - +- Is mutable: Yes +- Description: The upper limit of the Compaction Score for a partition in a shared-data cluster. `0` indicates no upper limit. This item only takes effect when `lake_enable_ingest_slowdown` is set to `true`. When the Compaction Score of a partition reaches or exceeds this upper limit, incoming loading tasks will be rejected. From v3.3.6 onwards, the default value is changed from `0` to `2000`. +- Introduced in: v3.2.0 + +##### lake_enable_balance_tablets_between_workers + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to balance the number of tablets among Compute Nodes during the tablet migration of cloud-native tables in a shared-data cluster. `true` indicates to balance the tablets among Compute Nodes, and `false` indicates to disabling this feature. +- Introduced in: v3.3.4 + +##### lake_enable_ingest_slowdown + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable Data Ingestion Slowdown in a shared-data cluster. When Data Ingestion Slowdown is enabled, if the Compaction Score of a partition exceeds `lake_ingest_slowdown_threshold`, loading tasks on that partition will be throttled down. This configuration only takes effect when `run_mode` is set to `shared_data`. From v3.3.6 onwards, the default value is chenged from `false` to `true`. +- Introduced in: v3.2.0 + +##### lake_ingest_slowdown_threshold + +- Default: 100 +- Type: Long +- Unit: - +- Is mutable: Yes +- Description: The Compaction Score threshold that triggers Data Ingestion Slowdown in a shared-data cluster. This configuration only takes effect when `lake_enable_ingest_slowdown` is set to `true`. +- Introduced in: v3.2.0 + +##### lake_publish_version_max_threads + +- Default: 512 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of threads for Version Publish tasks in a shared-data cluster. +- Introduced in: v3.2.0 + +##### meta_sync_force_delete_shard_meta + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to allow deleting the metadata of the shared-data cluster directly, bypassing cleaning the remote storage files. It is recommended to set this item to `true` only when there is an excessive number of shards to be cleaned, which leads to extreme memory pressure on the FE JVM. Note that the data files belonging to the shards or tablets cannot be automatically cleaned after this feature is enabled. +- Introduced in: v3.2.10, v3.3.3 + +##### run_mode + +- Default: shared_nothing +- Type: String +- Unit: - +- Is mutable: No +- Description: The running mode of the StarRocks cluster. Valid values: `shared_data` and `shared_nothing` (Default). + - `shared_data` indicates running StarRocks in shared-data mode. + - `shared_nothing` indicates running StarRocks in shared-nothing mode. + + > **CAUTION** + > + > - You cannot adopt the `shared_data` and `shared_nothing` modes simultaneously for a StarRocks cluster. Mixed deployment is not supported. + > - DO NOT change `run_mode` after the cluster is deployed. Otherwise, the cluster fails to restart. The transformation from a shared-nothing cluster to a shared-data cluster or vice versa is not supported. + +- Introduced in: - + +##### shard_group_clean_threshold_sec + +- Default: 3600 +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: The time before FE cleans the unused tablet and shard groups in a shared-data cluster. Tablets and shard groups created within this threshold will not be cleaned. +- Introduced in: - + +##### star_mgr_meta_sync_interval_sec + +- Default: 600 +- Type: Long +- Unit: Seconds +- Is mutable: No +- Description: The interval at which FE runs the periodical metadata synchronization with StarMgr in a shared-data cluster. +- Introduced in: - + +##### starmgr_grpc_server_max_worker_threads + +- Default: 1024 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of worker threads that are used by the grpc server in the FE starmgr module. +- Introduced in: v4.0.0, v3.5.8 + +##### starmgr_grpc_timeout_seconds + +- Default: 5 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: +- Introduced in: - + +### Data Lake + +##### files_enable_insert_push_down_schema + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: When enabled, the analyzer will attempt to push the target table schema into the `files()` table function for INSERT ... FROM files() operations. This only applies when the source is a FileTableFunctionRelation, the target is a native table, and the SELECT list contains corresponding slot-ref columns (or *). The analyzer will match select columns to target columns (counts must match), lock the target table briefly, and replace file-column types with deep-copied target column types for non-complex types (complex types such as parquet json -> array<varchar> are skipped). Column names from the original files table are preserved. This reduces type-mismatch and looseness from file-based type inference during ingestion. +- Introduced in: v3.4.0, v3.5.0 + +##### hdfs_read_buffer_size_kb + +- Default: 8192 +- Type: Int +- Unit: Kilobytes +- Is mutable: Yes +- Description: Size of the HDFS read buffer in kilobytes. StarRocks converts this value to bytes (`<< 10`) and uses it to initialize HDFS read buffers in `HdfsFsManager` and to populate the thrift field `hdfs_read_buffer_size_kb` sent to BE tasks (e.g., `TBrokerScanRangeParams`, `TDownloadReq`) when broker access is not used. Increasing `hdfs_read_buffer_size_kb` can improve sequential read throughput and reduce syscall overhead at the cost of higher per-stream memory usage; decreasing it reduces memory footprint but may lower IO efficiency. Consider workload (many small streams vs. few large sequential reads) when tuning. +- Introduced in: v3.2.0 + +##### hdfs_write_buffer_size_kb + +- Default: 1024 +- Type: Int +- Unit: Kilobytes +- Is mutable: Yes +- Description: Sets the HDFS write buffer size (in KB) used for direct writes to HDFS or object stores when not using a broker. The FE converts this value to bytes (`<< 10`) and initializes the local write buffer in HdfsFsManager, and it is propagated in Thrift requests (e.g., TUploadReq, TExportSink, sink options) so backends/agents use the same buffer size. Increasing this value can improve throughput for large sequential writes at the cost of more memory per writer; decreasing it reduces per-stream memory usage and may lower latency for small writes. Tune alongside `hdfs_read_buffer_size_kb` and consider available memory and concurrent writers. +- Introduced in: v3.2.0 + +##### lake_batch_publish_max_version_num + +- Default: 10 +- Type: Int +- Unit: Count +- Is mutable: Yes +- Description: Sets the upper bound on how many consecutive transaction versions may be grouped together when building a publish batch for lake (cloud‑native) tables. The value is passed to the transaction graph batching routine (see getReadyToPublishTxnListBatch) and works together with `lake_batch_publish_min_version_num` to determine the candidate range size for a TransactionStateBatch. Larger values can increase publish throughput by batching more commits, but increase the scope of an atomic publish (longer visibility latency and larger rollback surface) and may be limited at runtime when versions are not consecutive. Tune according to workload and visibility/latency requirements. +- Introduced in: v3.2.0 + +##### lake_batch_publish_min_version_num + +- Default: 1 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: Sets the minimum number of consecutive transaction versions required to form a publish batch for lake tables. DatabaseTransactionMgr.getReadyToPublishTxnListBatch passes this value to transactionGraph.getTxnsWithTxnDependencyBatch together with `lake_batch_publish_max_version_num` to select dependent transactions. A value of `1` allows single-transaction publishes (no batching). Values >1 require at least that many consecutively-versioned, single-table, non-replication transactions to be available; batching is aborted if versions are non-consecutive, a replication transaction appears, or a schema change consumes a version. Increasing this value can improve publish throughput by grouping commits but may delay publishing while waiting for enough consecutive transactions. +- Introduced in: v3.2.0 + +##### lake_enable_batch_publish_version + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: When enabled, PublishVersionDaemon batches ready transactions for the same Lake (shared-data) table/partition and publishes their versions together instead of issuing per-transaction publishes. In RunMode shared-data, the daemon calls getReadyPublishTransactionsBatch() and uses publishVersionForLakeTableBatch(...) to perform grouped publish operations (reducing RPCs and improving throughput). When disabled, the daemon falls back to per-transaction publishing via publishVersionForLakeTable(...). The implementation coordinates in-flight work using internal sets to avoid duplicate publishes when the switch is toggled and is affected by the thread pool sizing via `lake_publish_version_max_threads`. +- Introduced in: v3.2.0 + +##### lake_enable_tablet_creation_optimization + +- Default: false +- Type: boolean +- Unit: - +- Is mutable: Yes +- Description: When enabled, StarRocks optimizes tablet creation for cloud-native tables and materialized views in shared-data mode by creating a single shared tablet metadata for all tablets under a physical partition instead of distinct metadata per tablet. This reduces the number of tablet creation tasks and metadata/files produced during table creation, rollup, and schema-change jobs. The optimization is applied only for cloud-native tables/materialized views and is combined with `file_bundling` (the latter reuses the same optimization logic). Note: schema-change and rollup jobs explicitly disable the optimization for tables using `file_bundling` to avoid overwriting files with identical names. Enable cautiously — it changes the granularity of created tablet metadata and can affect how replica creation and file naming behave. +- Introduced in: v3.3.1, v3.4.0, v3.5.0 + +##### lake_use_combined_txn_log + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: When this item is set to `true`, the system allows Lake tables to use the combined transaction log path for relevant transactions. Available for shared-data clusters only. +- Introduced in: v3.3.7, v3.4.0, v3.5.0 + +##### enable_iceberg_commit_queue + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable commit queue for Iceberg tables to avoid concurrent commit conflicts. Iceberg uses optimistic concurrency control (OCC) for metadata commits. When multiple threads concurrently commit to the same table, conflicts can occur with errors like: "Cannot commit: Base metadata location is not same as the current table metadata location". When enabled, each Iceberg table has its own single-threaded executor for commit operations, ensuring that commits to the same table are serialized and preventing OCC conflicts. Different tables can commit concurrently, maintaining overall throughput. This is a system-level optimization to improve reliability and should be enabled by default. If disabled, concurrent commits may fail due to optimistic locking conflicts. +- Introduced in: v4.1.0 + +##### iceberg_commit_queue_timeout_seconds + +- Default: 300 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The timeout in seconds for waiting for an Iceberg commit operation to complete. When using the commit queue (`enable_iceberg_commit_queue=true`), each commit operation must complete within this timeout. If a commit takes longer than this timeout, it will be cancelled and an error will be raised. Factors that affect commit time include: number of data files being committed, metadata size of the table, performance of the underlying storage (e.g., S3, HDFS). +- Introduced in: v4.1.0 + +##### iceberg_commit_queue_max_size + +- Default: 1000 +- Type: Int +- Unit: Count +- Is mutable: No +- Description: The maximum number of pending commit operations per Iceberg table. When using the commit queue (`enable_iceberg_commit_queue=true`), this limits the number of commit operations that can be queued for a single table. When the limit is reached, additional commit operations will execute in the caller thread (blocking until capacity available). This configuration is read at FE startup and applies to newly created table executors. Requires FE restart to take effect. Increase this value if you expect many concurrent commits to the same table. If this value is too low, commits may block in the caller thread during high concurrency. +- Introduced in: v4.1.0 + +### Other + +##### agent_task_resend_wait_time_ms + +- Default: 5000 +- Type: Long +- Unit: Milliseconds +- Is mutable: Yes +- Description: The duration the FE must wait before it can resend an agent task. An agent task can be resent only when the gap between the task creation time and the current time exceeds the value of this parameter. This parameter is used to prevent repetitive sending of agent tasks. +- Introduced in: - + +##### allow_system_reserved_names + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to allow users to create columns whose names are initiated with `__op` and `__row`. To enable this feature, set this parameter to `TRUE`. Please note that these name formats are reserved for special purposes in StarRocks and creating such columns may result in undefined behavior. Therefore this feature is disabled by default. +- Introduced in: v3.2.0 + +##### auth_token + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The token that is used for identity authentication within the StarRocks cluster to which the FE belongs. If this parameter is left unspecified, StarRocks generates a random token for the cluster at the time when the leader FE of the cluster is started for the first time. +- Introduced in: - + +##### authentication_ldap_simple_bind_base_dn + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: Yes +- Description: The base DN, which is the point from which the LDAP server starts to search for users' authentication information. +- Introduced in: - + +##### authentication_ldap_simple_bind_root_dn + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: Yes +- Description: The administrator DN used to search for users' authentication information. +- Introduced in: - + +##### authentication_ldap_simple_bind_root_pwd + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: Yes +- Description: The password of the administrator used to search for users' authentication information. +- Introduced in: - + +##### authentication_ldap_simple_server_host + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: Yes +- Description: The host on which the LDAP server runs. +- Introduced in: - + +##### authentication_ldap_simple_server_port + +- Default: 389 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The port of the LDAP server. +- Introduced in: - + +##### authentication_ldap_simple_user_search_attr + +- Default: uid +- Type: String +- Unit: - +- Is mutable: Yes +- Description: The name of the attribute that identifies users in LDAP objects. +- Introduced in: - + +##### backup_job_default_timeout_ms + +- Default: 86400 * 1000 +- Type: Int +- Unit: Milliseconds +- Is mutable: Yes +- Description: The timeout duration of a backup job. If this value is exceeded, the backup job fails. +- Introduced in: - + +##### enable_collect_tablet_num_in_show_proc_backend_disk_path + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable the collection of tablet numbers for each disk in the `SHOW PROC /BACKENDS/{id}` command +- Introduced in: v4.0.1, v3.5.8 + +##### enable_colocate_restore + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable Backup and Restore for Colocate Tables. `true` indicates enabling Backup and Restore for Colocate Tables and `false` indicates disabling it. +- Introduced in: v3.2.10, v3.3.3 + +##### enable_materialized_view_concurrent_prepare + +- Default: true +- Type: Boolean +- Unit: +- Is mutable: Yes +- Description: Whether to prepare materialized view concurrently to improve performance. +- Introduced in: v3.4.4 + +##### enable_metric_calculator + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: No +- Description: Specifies whether to enable the feature that is used to periodically collect metrics. Valid values: `TRUE` and `FALSE`. `TRUE` specifies to enable this feature, and `FALSE` specifies to disable this feature. +- Introduced in: - + +##### enable_mv_post_image_reload_cache + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to perform reload flag check after FE loaded an image. If the check is performed for a base materialized view, it is not needed for other materialized views that related to it. +- Introduced in: v3.5.0 + +##### enable_mv_query_context_cache + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable query-level materialized view rewrite cache to improve query rewrite performance. +- Introduced in: v3.3 + +##### enable_mv_refresh_collect_profile + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable profile in refreshing materialized view by default for all materialized views. +- Introduced in: v3.3.0 + +##### enable_mv_refresh_extra_prefix_logging + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable prefixes with materialized view names in logs for better debug. +- Introduced in: v3.4.0 + +##### enable_mv_refresh_query_rewrite + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable rewrite query during materialized view refresh so that the query can use the rewritten mv directly rather than the base table to improve query performance. +- Introduced in: v3.3 + +##### enable_trace_historical_node + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to allow the system to trace the historical nodes. By setting this item to `true`, you can enable the Cache Sharing feature and allow the system to choose the right cache nodes during elastic scaling. +- Introduced in: v3.5.1 + +##### es_state_sync_interval_second + +- Default: 10 +- Type: Long +- Unit: Seconds +- Is mutable: No +- Description: The time interval at which the FE obtains Elasticsearch indexes and synchronizes the metadata of StarRocks external tables. +- Introduced in: - + +##### hive_meta_cache_refresh_interval_s + +- Default: 3600 * 2 +- Type: Long +- Unit: Seconds +- Is mutable: No +- Description: The time interval at which the cached metadata of Hive external tables is updated. +- Introduced in: - + +##### hive_meta_store_timeout_s + +- Default: 10 +- Type: Long +- Unit: Seconds +- Is mutable: No +- Description: The amount of time after which a connection to a Hive metastore times out. +- Introduced in: - + +##### jdbc_connection_idle_timeout_ms + +- Default: 600000 +- Type: Int +- Unit: Milliseconds +- Is mutable: No +- Description: The maximum amount of time after which a connection for accessing a JDBC catalog times out. Timed-out connections are considered idle. +- Introduced in: - + +##### jdbc_connection_timeout_ms + +- Default: 10000 +- Type: Long +- Unit: Milliseconds +- Is mutable: No +- Description: The timeout in milliseconds for HikariCP connection pool to acquire a connection. If a connection cannot be acquired from the pool within this time, the operation will fail. +- Introduced in: v3.5.13 + +##### jdbc_query_timeout_ms + +- Default: 30000 +- Type: Long +- Unit: Milliseconds +- Is mutable: Yes +- Description: The timeout in milliseconds for JDBC statement query execution. This timeout is applied to all SQL queries executed through JDBC catalogs (e.g., partition metadata queries). The value is converted to seconds when passed to the JDBC driver. +- Introduced in: v3.5.13 + +##### jdbc_network_timeout_ms + +- Default: 30000 +- Type: Long +- Unit: Milliseconds +- Is mutable: Yes +- Description: The timeout in milliseconds for JDBC network operations (socket read). This timeout applies to database metadata calls (e.g., getSchemas(), getTables(), getColumns()) to prevent indefinite blocking when the external database is unresponsive. +- Introduced in: v3.5.13 + +##### jdbc_connection_pool_size + +- Default: 8 +- Type: Int +- Unit: - +- Is mutable: No +- Description: The maximum capacity of the JDBC connection pool for accessing JDBC catalogs. +- Introduced in: - + +##### jdbc_meta_default_cache_enable + +- Default: false +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: The default value for whether the JDBC Catalog metadata cache is enabled. When set to True, newly created JDBC Catalogs will default to metadata caching enabled. +- Introduced in: - + +##### jdbc_meta_default_cache_expire_sec + +- Default: 600 +- Type: Long +- Unit: Seconds +- Is mutable: Yes +- Description: The default expiration time for the JDBC Catalog metadata cache. When `jdbc_meta_default_cache_enable` is set to true, newly created JDBC Catalogs will default to setting the expiration time of the metadata cache. +- Introduced in: - + +##### jdbc_minimum_idle_connections + +- Default: 1 +- Type: Int +- Unit: - +- Is mutable: No +- Description: The minimum number of idle connections in the JDBC connection pool for accessing JDBC catalogs. +- Introduced in: - + +##### jwt_jwks_url + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The URL to the JSON Web Key Set (JWKS) service or the path to the public key local file under the `fe/conf` directory. +- Introduced in: v3.5.0 + +##### jwt_principal_field + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The string used to identify the field that indicates the subject (`sub`) in the JWT. The default value is `sub`. The value of this field must be identical with the username for logging in to StarRocks. +- Introduced in: v3.5.0 + +##### jwt_required_audience + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The list of strings used to identify the audience (`aud`) in the JWT. The JWT is considered valid only if one of the values in the list match the JWT audience. +- Introduced in: v3.5.0 + +##### jwt_required_issuer + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The list of strings used to identify the issuers (`iss`) in the JWT. The JWT is considered valid only if one of the values in the list match the JWT issuer. +- Introduced in: v3.5.0 + +##### locale + +- Default: zh_CN.UTF-8 +- Type: String +- Unit: - +- Is mutable: No +- Description: The character set that is used by the FE. +- Introduced in: - + +##### max_agent_task_threads_num + +- Default: 4096 +- Type: Int +- Unit: - +- Is mutable: No +- Description: The maximum number of threads that are allowed in the agent task thread pool. +- Introduced in: - + +##### max_download_task_per_be + +- Default: 0 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: In each RESTORE operation, the maximum number of download tasks StarRocks assigned to a BE node. When this item is set to less than or equal to 0, no limit is imposed on the task number. +- Introduced in: v3.1.0 + +##### max_mv_check_base_table_change_retry_times + +- Default: 10 +- Type: - +- Unit: - +- Is mutable: Yes +- Description: The maximum retry times for detecting base table change when refreshing materialized views. +- Introduced in: v3.3.0 + +##### max_mv_refresh_failure_retry_times + +- Default: 1 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum retry times when materialized view fails to refresh. +- Introduced in: v3.3.0 + +##### max_mv_refresh_try_lock_failure_retry_times + +- Default: 3 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum retry times of try lock when materialized view fails to refresh. +- Introduced in: v3.3.0 + +##### max_small_file_number + +- Default: 100 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of small files that can be stored on an FE directory. +- Introduced in: - + +##### max_small_file_size_bytes + +- Default: 1024 * 1024 +- Type: Int +- Unit: Bytes +- Is mutable: Yes +- Description: The maximum size of a small file. +- Introduced in: - + +##### max_upload_task_per_be + +- Default: 0 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: In each BACKUP operation, the maximum number of upload tasks StarRocks assigned to a BE node. When this item is set to less than or equal to 0, no limit is imposed on the task number. +- Introduced in: v3.1.0 + +##### mv_create_partition_batch_interval_ms + +- Default: 1000 +- Type: Int +- Unit: ms +- Is mutable: Yes +- Description: During materialized view refresh, if multiple partitions need to be created in bulk, the system divides them into batches of 64 partitions each. To reduce the risk of failures caused by frequent partition creation, a default interval (in milliseconds) is set between each batch to control the creation frequency. +- Introduced in: v3.3 + +##### mv_plan_cache_max_size + +- Default: 1000 +- Type: Long +- Unit: +- Is mutable: Yes +- Description: The maximum size of materialized view plan cache (which is used for materialized view rewrite). If there are many materialized views used for transparent query rewrite, you may increase this value. +- Introduced in: v3.2 + +##### mv_plan_cache_thread_pool_size + +- Default: 3 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The default thread pool size of materialized view plan cache (which is used for materialized view rewrite). +- Introduced in: v3.2 + +##### mv_refresh_default_planner_optimize_timeout + +- Default: 30000 +- Type: - +- Unit: - +- Is mutable: Yes +- Description: The default timeout for the planning phase of the optimizer when refresh materialized views. +- Introduced in: v3.3.0 + +##### mv_refresh_fail_on_filter_data + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Mv refresh fails if there is filtered data in refreshing, true by default, otherwise return success by ignoring the filtered data. +- Introduced in: - + +##### mv_refresh_try_lock_timeout_ms + +- Default: 30000 +- Type: Int +- Unit: Milliseconds +- Is mutable: Yes +- Description: The default try lock timeout for materialized view refresh to try the DB lock of its base table/materialized view. +- Introduced in: v3.3.0 + +##### oauth2_auth_server_url + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The authorization URL. The URL to which the users’ browser will be redirected in order to begin the OAuth 2.0 authorization process. +- Introduced in: v3.5.0 + +##### oauth2_client_id + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The public identifier of the StarRocks client. +- Introduced in: v3.5.0 + +##### oauth2_client_secret + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The secret used to authorize StarRocks client with the authorization server. +- Introduced in: v3.5.0 + +##### oauth2_jwks_url + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The URL to the JSON Web Key Set (JWKS) service or the path to the local file under the `conf` directory. +- Introduced in: v3.5.0 + +##### oauth2_principal_field + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The string used to identify the field that indicates the subject (`sub`) in the JWT. The default value is `sub`. The value of this field must be identical with the username for logging in to StarRocks. +- Introduced in: v3.5.0 + +##### oauth2_redirect_url + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The URL to which the users’ browser will be redirected after the OAuth 2.0 authentication succeeds. The authorization code will be sent to this URL. In most cases, it need to be configured as `http://:/api/oauth2`. +- Introduced in: v3.5.0 + +##### oauth2_required_audience + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The list of strings used to identify the audience (`aud`) in the JWT. The JWT is considered valid only if one of the values in the list match the JWT audience. +- Introduced in: v3.5.0 + +##### oauth2_required_issuer + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The list of strings used to identify the issuers (`iss`) in the JWT. The JWT is considered valid only if one of the values in the list match the JWT issuer. +- Introduced in: v3.5.0 + +##### oauth2_token_server_url + +- Default: Empty string +- Type: String +- Unit: - +- Is mutable: No +- Description: The URL of the endpoint on the authorization server from which StarRocks obtains the access token. +- Introduced in: v3.5.0 + +##### plugin_dir + +- Default: System.getenv("STARROCKS_HOME") + "/plugins" +- Type: String +- Unit: - +- Is mutable: No +- Description: The directory that stores plugin installation packages. +- Introduced in: - + +##### plugin_enable + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether plugins can be installed on FEs. Plugins can be installed or uninstalled only on the Leader FE. +- Introduced in: - + +##### proc_profile_jstack_depth + +- Default: 128 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: Maximum Java stack depth when the system collects CPU and memory profiles. This value controls how many Java stack frames are captured for each sampled stack: larger values increase trace detail and output size and may add profiling overhead, while smaller values reduce details. This setting is used when the profiler is started for both CPU and memory profiling, so adjust it to balance diagnostic needs and performance impact. +- Introduced in: - + +##### proc_profile_mem_enable + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to enable collection of process memory allocation profiles. When this item is set to `true`, the system generates an HTML profile named `mem-profile-.html` under `sys_log_dir/proc_profile`, sleeps for `proc_profile_collect_time_s` seconds while sampling, and uses `proc_profile_jstack_depth` for Java stack depth. Generated files are compressed and purged according to `proc_profile_file_retained_days` and `proc_profile_file_retained_size_bytes`. The native extraction path uses `STARROCKS_HOME_DIR` to avoid `/tmp` noexec issues. This item is intended for troubleshooting memory-allocation hotspots. Enabling it increases CPU, I/O and disk usage and may produce large files. +- Introduced in: v3.2.12 + +##### query_detail_explain_level + +- Default: COSTS +- Type: String +- Unit: - +- Is mutable: true +- Description: The detail level of query plan returned by the EXPLAIN statement. Valid values: COSTS, NORMAL, VERBOSE. +- Introduced in: v3.2.12, v3.3.5 + +##### replication_interval_ms + +- Default: 100 +- Type: Int +- Unit: - +- Is mutable: No +- Description: The minimum time interval at which the replication tasks are scheduled. +- Introduced in: v3.3.5 + +##### replication_max_parallel_data_size_mb + +- Default: 1048576 +- Type: Int +- Unit: MB +- Is mutable: Yes +- Description: The maximum size of data allowed for concurrent synchronization. +- Introduced in: v3.3.5 + +##### replication_max_parallel_replica_count + +- Default: 10240 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of tablet replicas allowed for concurrent synchronization. +- Introduced in: v3.3.5 + +##### replication_max_parallel_table_count + +- Default: 100 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: The maximum number of concurrent data synchronization tasks allowed. StarRocks creates one synchronization task for each table. +- Introduced in: v3.3.5 + +##### replication_transaction_timeout_sec + +- Default: 86400 +- Type: Int +- Unit: Seconds +- Is mutable: Yes +- Description: The timeout duration for synchronization tasks. +- Introduced in: v3.3.5 + +##### skip_whole_phase_lock_mv_limit + +- Default: 5 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: Controls when StarRocks applies the "non-lock" optimization for tables that have related materialized views. When this item is set to less than 0, the system always applies non-lock optimization and does not copy related materialized views for queries (FE memory usage and metadata copy/lock contention is reduced but risk of metadata concurrency issues can be increased). When it is set to 0, non-lock optimization is disable (the system always use the safe, copy-and-lock path). When it is set to greater than 0, non-lock optimization is applied only for tables whose number of related materialized views is less than or equal to the configured threshold. Additionally, when the value is greater than and equal to 0, the planner records query OLAP tables into the optimizer context to enable materialized view-related rewrite paths; when it is less than 0, this step is skipped. +- Introduced in: v3.2.1 + +##### small_file_dir + +- Default: StarRocksFE.STARROCKS_HOME_DIR + "/small_files" +- Type: String +- Unit: - +- Is mutable: No +- Description: The root directory of small files. +- Introduced in: - + +##### task_runs_max_history_number + +- Default: 10000 +- Type: Int +- Unit: - +- Is mutable: Yes +- Description: Maximum number of task run records to retain in memory and to use as a default LIMIT when querying archived task-run history. When `enable_task_history_archive` is false, this value bounds in-memory history: Force GC trims older entries so only the newest `task_runs_max_history_number` remain. When archive history is queried (and no explicit LIMIT is provided), `TaskRunHistoryTable.lookup` uses `"ORDER BY create_time DESC LIMIT "` if this value is greater than 0. Note: setting this to 0 disables the query-side LIMIT (no cap) but will cause in-memory history to be truncated to zero (unless archiving is enabled). +- Introduced in: v3.2.0 + +##### tmp_dir + +- Default: StarRocksFE.STARROCKS_HOME_DIR + "/temp_dir" +- Type: String +- Unit: - +- Is mutable: No +- Description: The directory that stores temporary files such as files generated during backup and restore procedures. After these procedures finish, the generated temporary files are deleted. +- Introduced in: - + +##### transform_type_prefer_string_for_varchar + +- Default: true +- Type: Boolean +- Unit: - +- Is mutable: Yes +- Description: Whether to prefer string type for fixed length varchar columns in materialized view creation and CTAS operations. +- Introduced in: v4.0.0 + + + + diff --git a/docs/ja/FE_configuration.md b/docs/ja/FE_configuration.md new file mode 100644 index 00000000..995e220d --- /dev/null +++ b/docs/ja/FE_configuration.md @@ -0,0 +1,3994 @@ +--- +displayed_sidebar: docs +--- + +import FEConfigMethod from '../../_assets/commonMarkdown/FE_config_method.mdx' + +import AdminSetFrontendNote from '../../_assets/commonMarkdown/FE_config_note.mdx' + +import StaticFEConfigNote from '../../_assets/commonMarkdown/StaticFE_config_note.mdx' + +import EditionSpecificFEItem from '../../_assets/commonMarkdown/Edition_Specific_FE_Item.mdx' + +# FE の設定 + + +## FE の設定項目の表示 + +FE の起動後、MySQL クライアントで `ADMIN SHOW FRONTEND CONFIG` コマンドを実行して、パラメータ設定を確認できます。特定の設定の構成を照会する場合は、次のコマンドを実行します。 + +```SQL +ADMIN SHOW FRONTEND CONFIG [LIKE "pattern"]; +``` + +返されるフィールドの詳細については、[ADMIN SHOW CONFIG](../../sql-reference/sql-statements/cluster-management/config_vars/ADMIN_SHOW_CONFIG.md) を参照してください。 + +:::note +クラスタ管理関連のコマンドを実行するには、管理者権限が必要です。 +::: +## FE のパラメータを設定する +### FE の動的パラメータを設定する + +[ADMIN SET FRONTEND CONFIG](../../sql-reference/sql-statements/cluster-management/config_vars/ADMIN_SET_CONFIG.md) を使用して、FE の動的パラメータの設定や変更ができます。 + +```SQL +ADMIN SET FRONTEND CONFIG ("key" = "value"); +``` + + +### FE の静的パラメータを設定する + + +## FE パラメータについて +### ロギング +##### audit_log_delete_age + +- デフォルト値: 30d +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: 監査ログファイルの保持期間。 デフォルト値 `30d` は、各監査ログファイルを30日間保持できることを指定します。 StarRocks は各監査ログファイルをチェックし、30日前に生成されたファイルを削除します。 +- 導入バージョン: - +##### audit_log_dir + +- デフォルト値: StarRocksFE.STARROCKS_HOME_DIR + "/log" +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: 監査ログファイルを保存するディレクトリ。 +- 導入バージョン: - +##### audit_log_enable_compress + +- デフォルト値: false +- タイプ: Boolean +- 単位: N/A +- 変更可能か: No +- 説明: trueの場合、生成されたLog4j2設定は、ローテーションされた監査ログのファイル名(fe.audit.log.*)に".gz"の接尾辞を追加し、Log4j2がロールオーバー時に圧縮された(.gz)アーカイブ監査ログファイルを生成するようにします。この設定は、FEの起動時にLog4jConfig.initLoggingで読み込まれ、監査ログのRollingFileアペンダーに適用されます。アクティブな監査ログではなく、ローテーション/アーカイブされたファイルにのみ影響します。値は起動時に初期化されるため、変更を有効にするにはFEの再起動が必要です。audit logのローテーション設定(audit_log_dir、audit_log_roll_interval、audit_roll_maxsize、audit_log_roll_num)と組み合わせて使用​​します。 +- 導入バージョン: 3.2.12 +##### audit_log_json_format + +- デフォルト: false +- タイプ: Boolean +- 単位: N/A +- 変更可能: Yes +- 説明: trueの場合、FE の監査イベントは、デフォルトのパイプで区切られた「key=value」文字列の代わりに、構造化された JSON(アノテーション付きの AuditEvent フィールドの Map をシリアライズする Jackson ObjectMapper)として出力されます。この設定は、AuditLogBuilder によって処理されるすべての組み込み監査シンクに影響します。接続監査、クエリ監査、big-query 監査(イベントが条件を満たす場合、big-query のしきい値フィールドが JSON に追加されます)、および slow-audit の出力です。big-query のしきい値用にアノテーションが付けられたフィールドと「features」フィールドは、特別に扱われます(通常の監査エントリからは除外されます。big-query または機能ログに該当するものとして含まれます)。これを有効にすると、ログコレクターまたは SIEM 用にログを機械で解析できるようになります。ログ形式が変更され、従来のパイプで区切られた形式を想定する既存のパーサーの更新が必要になる場合があることに注意してください。 +- 導入バージョン: 3.2.7 +##### audit_log_modules + +- デフォルト値: slow_query, query +- タイプ: String[] +- 単位: - +- 変更可能: いいえ +- 説明: StarRocks が監査ログエントリを生成するモジュール。 デフォルトでは、StarRocks は `slow_query` モジュールと `query` モジュールの監査ログを生成します。 `connection` モジュールは v3.0 以降でサポートされています。 モジュール名はカンマ (,) とスペースで区切ります。 +- 導入: - +##### audit_log_roll_interval + +- デフォルト値: DAY +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: StarRocks が監査ログのエントリをローテーションする時間間隔。 有効な値: `DAY` および `HOUR`。 + - このパラメータが `DAY` に設定されている場合、`yyyyMMdd` 形式のサフィックスが監査ログファイルの名前に追加されます。 + - このパラメータが `HOUR` に設定されている場合、`yyyyMMddHH` 形式のサフィックスが監査ログファイルの名前に追加されます。 +- 導入: - +##### audit_log_roll_num + +- デフォルト値: 90 +- タイプ: Int +- 単位: - +- 変更可能: No +- 説明: `audit_log_roll_interval` パラメータで指定された各保持期間内に保持できる監査ログファイルの最大数。 +- 導入: - +##### bdbje_log_level + +- デフォルト: INFO +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: StarRocks で Berkeley DB Java Edition (BDB JE) が使用するログレベルを制御します。BDB 環境の初期化中に、BDBEnvironment.initConfigs() はこの値を `com.sleepycat.je` パッケージの Java ロガーと BDB JE 環境ファイルログレベル (EnvironmentConfig.FILE_LOGGING_LEVEL) に適用します。SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST、ALL、OFF などの標準の java.util.logging.Level 名を受け入れます。ALL に設定すると、すべてのログメッセージが有効になります。冗長性を高めると、ログ量が増加し、ディスク I/O とパフォーマンスに影響を与える可能性があります。この値は BDB 環境の初期化時に読み取られるため、環境の (再) 初期化後にのみ有効になります。 +- 導入バージョン: v3.2.0 +##### big_query_log_delete_age + +- デフォルト値: 7d +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: FE の大規模クエリログファイル (`fe.big_query.log.*`) が自動削除されるまでの保持期間を制御します。この値は、Log4j の削除ポリシーに IfLastModified の経過時間として渡されます。つまり、最後に変更された時刻がこの値よりも古いローテーションされた大規模クエリログは削除されます。サフィックスとして `d` (日)、`h` (時間)、`m` (分)、`s` (秒) がサポートされています。例: `7d` (7 日)、`10h` (10 時間)、`60m` (60 分)、`120s` (120 秒)。この項目は、`big_query_log_roll_interval` および `big_query_log_roll_num` と連携して、どのファイルを保持または削除するかを決定します。 +- 導入バージョン: v3.2.0 +##### big_query_log_dir + +- デフォルト値: `Config.STARROCKS_HOME_DIR + "/log"` +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: FE が大規模クエリダンプログ(`fe.big_query.log.*`)を書き込むディレクトリ。Log4j の設定は、このパスを使用して `fe.big_query.log` とそのローテーションされたファイル用の RollingFile appender を作成します。ローテーションと保持は、`big_query_log_roll_interval`(時間ベースのサフィックス)、`log_roll_size_mb`(サイズトリガー)、`big_query_log_roll_num`(最大ファイル数)、および `big_query_log_delete_age`(経過時間ベースの削除)によって管理されます。大規模クエリの記録は、`big_query_log_cpu_second_threshold`、`big_query_log_scan_rows_threshold`、または `big_query_log_scan_bytes_threshold` などのユーザー定義のしきい値を超えるクエリに対して記録されます。どのモジュールがこのファイルにログを記録するかを制御するには、`big_query_log_modules` を使用します。 +- 導入バージョン: v3.2.0 +##### big_query_log_modules + +- デフォルト値: `{"query"}` +- タイプ: String[] +- 単位: - +- 変更可能か: いいえ +- 説明: モジュールごとの大規模クエリのログ記録を有効にするモジュール名のサフィックスのリスト。一般的な値は、論理コンポーネント名です。たとえば、デフォルトの `query` は `big_query.query` を生成します。 +- 導入バージョン: v3.2.0 +##### big_query_log_roll_interval + +- デフォルト: `"DAY"` +- タイプ: String +- 単位: - +- 変更可能: いいえ +- 説明: `big_query` ログアペンダーのローリングファイル名のdateコンポーネントを構築するために使用される時間間隔を指定します。有効な値(大文字と小文字を区別しない)は、`DAY`(デフォルト)と`HOUR`です。`DAY`は日単位のパターン(`"%d{yyyyMMdd}"`)を生成し、`HOUR`は時間単位のパターン(`"%d{yyyyMMddHH}"`)を生成します。この値は、サイズベースのロールオーバー(`big_query_roll_maxsize`)およびインデックスベースのロールオーバー(`big_query_log_roll_num`)と組み合わされて、RollingFile filePatternを形成します。無効な値を指定すると、ログ構成の生成が失敗し(IOException)、ログの初期化または再構成が妨げられる可能性があります。`big_query_log_dir`、`big_query_roll_maxsize`、`big_query_log_roll_num`、および`big_query_log_delete_age`と一緒に使用します。 +- 導入バージョン: v3.2.0 +##### big_query_log_roll_num + +- デフォルト値: 10 +- タイプ: Int +- 単位: - +- 変更可能か: いいえ +- 説明: `big_query_log_roll_interval` ごとに保持する、ローテーションされた FE big query ログファイルの最大数。この値は、`fe.big_query.log` の RollingFile appender の DefaultRolloverStrategy `max` 属性にバインドされています。ログがローテーションされると (時間または `log_roll_size_mb` によって)、StarRocks は最大 `big_query_log_roll_num` 個のインデックス付きファイル (filePattern はタイムサフィックスとインデックスを使用) を保持します。この数よりも古いファイルは、ローリングによって削除される可能性があり、`big_query_log_delete_age` は最終更新日時の経過時間によってファイルを追加で削除できます。 +- 導入バージョン: v3.2.0 +##### dump_log_delete_age + +- デフォルト値: 7d +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: ダンプログファイルの保持期間。デフォルト値 `7d` は、各ダンプログファイルを7日間保持できることを指定します。 StarRocks は各ダンプログファイルをチェックし、7日前に生成されたファイルを削除します。 +- 導入: - +##### dump_log_dir + +- デフォルト値: StarRocksFE.STARROCKS_HOME_DIR + "/log" +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: ダンプログファイルを保存するディレクトリ。 +- 導入バージョン: - +##### dump_log_modules + +- デフォルト: query +- タイプ: String[] +- 単位: - +- 変更可能: No +- 説明: StarRocks がダンプログエントリを生成するモジュール。 デフォルトでは、StarRocks は query モジュールのダンプログを生成します。 モジュール名はカンマ (,) とスペースで区切ります。 +- 導入: - +##### dump_log_roll_interval + +- デフォルト: DAY +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: StarRocks がダンプログエントリをローテーションする時間間隔。有効な値: `DAY` と `HOUR`。 + - このパラメータが `DAY` に設定されている場合、`yyyyMMdd` 形式のサフィックスがダンプログファイルの名前に追加されます。 + - このパラメータが `HOUR` に設定されている場合、`yyyyMMddHH` 形式のサフィックスがダンプログファイルの名前に追加されます。 +- 導入: - +##### dump_log_roll_num + +- デフォルト: 10 +- タイプ: Int +- 単位: - +- 変更可能か: いいえ +- 説明: `dump_log_roll_interval` パラメータで指定された各保持期間内に保持できるダンプログファイルの最大数。 +- 導入: - +##### edit_log_write_slow_log_threshold_ms + +- デフォルト値: 2000 +- タイプ: Int +- 単位: ミリ秒 +- 変更可能: はい +- 説明: JournalWriter が遅い edit-log バッチ書き込みを検出し、ログに記録するために使用する閾値(ミリ秒単位)。バッチコミット後、バッチの実行時間がこの値を超えると、JournalWriter はバッチサイズ、実行時間、現在のジャーナルキューサイズとともに WARN を出力します(レート制限は約2秒に1回)。この設定は、FE の leader における潜在的な IO またはレプリケーションの遅延に関するログ/アラートのみを制御します。コミットやロールの動作は変更しません(`edit_log_roll_num` およびコミット関連の設定を参照)。この閾値に関係なく、メトリックの更新は引き続き行われます。 +- 導入バージョン: v3.2.3 +##### enable_audit_sql + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: No +- 説明: この項目が `true` に設定されている場合、FE監査サブシステムは、ConnectProcessorによって処理されたステートメントのSQLテキストをFE監査ログ ( `fe.audit.log` ) に記録します。保存されるステートメントは、他の制御に従います。暗号化されたステートメントは編集され ( `AuditEncryptionChecker` ) 、 `enable_sql_desensitize_in_log` が設定されている場合は、機密性の高い認証情報が編集または非表示になる可能性があり、ダイジェストの記録は `enable_sql_digest` によって制御されます。 `false` に設定すると、ConnectProcessorは監査イベント内のステートメントテキストを "?" に置き換えます。他の監査フィールド (ユーザー、ホスト、期間、ステータス、 `qe_slow_log_ms` によるスロークエリの検出、およびメトリクス) は引き続き記録されます。SQL監査を有効にすると、フォレンジックとトラブルシューティングの可視性が向上しますが、機密性の高いSQLコンテンツが公開され、ログの量とI/Oが増加する可能性があります。無効にすると、監査ログでステートメント全体の可視性が失われる代わりに、プライバシーが向上します。 +- 導入: - +##### enable_profile_log + +- デフォルト値: true +- 型: Boolean +- 単位: - +- 変更可能か: No +- 説明: プロファイルログを有効にするかどうか。この機能を有効にすると、FE はクエリごとのプロファイルログ(`ProfileManager` によって生成されたシリアライズされた `queryDetail` JSON)をプロファイルログシンクに書き込みます。このロギングは、`enable_collect_query_detail_info` も有効になっている場合にのみ実行されます。`enable_profile_log_compress` が有効になっている場合、JSON はロギング前に gzip 圧縮されることがあります。プロファイルログファイルは、`profile_log_dir`、`profile_log_roll_num`、`profile_log_roll_interval` によって管理され、`profile_log_delete_age`(`7d`、`10h`、`60m`、`120s` などの形式をサポート)に従ってローテーション/削除されます。この機能を無効にすると、プロファイルログの書き込みが停止します(ディスク I/O、圧縮 CPU、およびストレージの使用量が削減されます)。 +- 導入バージョン: v3.2.5 +##### enable_qe_slow_log + +- デフォルト値: true +- タイプ: Boolean +- 単位: N/A +- 変更可能: Yes +- 説明: 有効にすると、FE 組み込みの監査プラグイン (AuditLogBuilder) は、測定された実行時間 ("Time" フィールド) が qe_slow_log_ms で設定されたしきい値を超えるクエリイベントを、スロークエリ監査ログ (AuditLog.getSlowAudit) に書き込みます。無効にすると、これらのスロークエリのエントリは抑制されます (通常のクエリと接続の監査ログは影響を受けません)。スロー監査エントリは、グローバルな audit_log_json_format 設定 (JSON 対プレーン文字列) に従います。このフラグを使用して、通常監査ログとは独立してスロークエリ監査ボリュームの生成を制御します。qe_slow_log_ms が低い場合、またはワークロードが多数の長時間実行クエリを生成する場合、オフにするとログ I/O が削減される可能性があります。 +- 導入バージョン: 3.2.11 +##### enable_sql_desensitize_in_log + +- デフォルト: false +- タイプ: Boolean +- 単位: - +- 変更可能: いいえ +- 説明: この項目が `true` に設定されている場合、システムは機密性の高い SQL コンテンツを、ログおよびクエリ詳細レコードに書き込まれる前に、置換または非表示にします。この構成を尊重するコードパスには、ConnectProcessor.formatStmt (監査ログ)、StmtExecutor.addRunningQueryDetail (クエリ詳細)、および SimpleExecutor.formatSQL (内部 executor ログ) が含まれます。この機能を有効にすると、無効な SQL は固定の非機密化されたメッセージに置き換えられ、認証情報 (ユーザー/パスワード) は非表示になり、SQL フォーマッタはサニタイズされた表現を生成する必要があります (ダイジェストスタイルの出力を有効にすることもできます)。これにより、監査/内部ログにおける機密性の高いリテラルおよび認証情報の漏洩が軽減されますが、ログおよびクエリ詳細には元の完全な SQL テキストが含まれなくなります (再生またはデバッグに影響を与える可能性があります)。 +- 導入: - +##### internal_log_delete_age + +- デフォルト値: 7d +- タイプ: String +- 単位: - +- 変更可能: いいえ +- 説明: FE の内部ログファイル ( `internal_log_dir` に書き込まれる) の保持期間を指定します。値は期間文字列です。サポートされているサフィックス: `d` (日)、 `h` (時間)、 `m` (分)、 `s` (秒)。例: `7d` (7 日)、 `10h` (10 時間)、 `60m` (60 分)、 `120s` (120 秒)。この項目は、ローリングファイル削除ポリシーで使用される `` 述語として log4j 構成に代入されます。最終更新時刻がこの期間より前のファイルは、ログのローリング中に削除されます。この値を大きくすると、ディスク容量をより早く解放できます。小さくすると、内部マテリアライズドビューまたは統計ログをより長く保持できます。 +- 導入バージョン: v3.2.4 +##### internal_log_dir + +- デフォルト値: `Config.STARROCKS_HOME_DIR + "/log"` +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: FE ロギングサブシステムが内部ログ (`fe.internal.log`) の保存に使用するディレクトリ。この構成は Log4j の構成に組み込まれ、InternalFile appender が内部ログ/マテリアライズドビュー/統計ログを書き込む場所、および `internal.` の下のモジュールごとのロガーがファイルを配置する場所を決定します。ディレクトリが存在し、書き込み可能であり、十分なディスク容量があることを確認してください。このディレクトリ内のファイルのログローテーションと保持は、`log_roll_size_mb`、`internal_log_roll_num`、`internal_log_delete_age`、および `internal_log_roll_interval` によって制御されます。`sys_log_to_console` が有効になっている場合、内部ログはこのディレクトリではなくコンソールに書き込まれることがあります。 +- 導入バージョン: v3.2.4 +##### internal_log_json_format + +- デフォルト: false +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: この項目が `true` に設定されている場合、内部統計/監査エントリは、コンパクトな JSON オブジェクトとして統計監査ロガーに書き込まれます。 JSON には、キー "executeType" (InternalType: QUERY または DML)、"queryId"、"sql"、および "time" (経過ミリ秒) が含まれています。 `false` に設定されている場合、同じ情報がフォーマットされた1行のテキストとしてログに記録されます ("statistic execute: ... | QueryId: [...] | SQL: ...")。 JSON を有効にすると、機械での解析とログプロセッサとの統合が向上しますが、生の SQL テキストがログに含まれるため、機密情報が公開されたり、ログサイズが大きくなる可能性があります。 +- 導入: - +##### internal_log_modules + +- デフォルト: `{"base", "statistic"}` +- タイプ: String[] +- 単位: - +- 変更可能: いいえ +- 説明: 専用の内部ログを受け取るモジュール識別子のリスト。エントリXごとに、Log4jはレベルINFOおよびadditivity="false"で`internal.<X>`という名前のロガーを作成します。これらのロガーは、内部アペンダー(`fe.internal.log`に書き込まれる)または`sys_log_to_console`が有効になっている場合はコンソールにルーティングされます。必要に応じて短い名前またはパッケージフラグメントを使用してください。正確なロガー名は`internal.` + 設定された文字列になります。内部ログファイルのローテーションと保持は、`internal_log_dir`、`internal_log_roll_num`、`internal_log_delete_age`、`internal_log_roll_interval`、および`log_roll_size_mb`に従います。モジュールを追加すると、そのランタイムメッセージが内部ロガーストリームに分離され、デバッグと監査が容易になります。 +- 導入バージョン: v3.2.4 +##### internal_log_roll_interval + +- デフォルト: DAY +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: FE 内部ログアペンダーの時間ベースのロール間隔を制御します。使用できる値(大文字と小文字は区別されません)は、`HOUR` と `DAY` です。`HOUR` は時間単位のファイルパターン(`"%d{yyyyMMddHH}"`)を生成し、`DAY` は日単位のファイルパターン(`"%d{yyyyMMdd}"`)を生成します。これらは、ローテーションされた `fe.internal.log` ファイルに名前を付けるために RollingFile TimeBasedTriggeringPolicy によって使用されます。無効な値を指定すると、初期化が失敗します(アクティブな Log4j 構成を構築する際に IOException がスローされます)。ロールの動作は、`internal_log_dir`、`internal_roll_maxsize`、`internal_log_roll_num`、`internal_log_delete_age` などの関連設定にも依存します。 +- 導入バージョン: v3.2.4 +##### internal_log_roll_num + +- デフォルト値: 90 +- タイプ: Int +- 単位: - +- 変更可能か: No +- 説明: 内部アペンダー (`fe.internal.log`) 用に保持する、ローリングされた内部 FE ログファイルの最大数。この値は、Log4j の DefaultRolloverStrategy の `max` 属性として使用されます。ローリングが発生すると、StarRocks は最大 `internal_log_roll_num` 個のアーカイブファイルを保持し、古いファイルを削除します (これは `internal_log_delete_age` にも左右されます)。値を小さくするとディスク使用量が削減されますが、ログの履歴が短くなります。値を大きくすると、より多くの履歴内部ログが保持されます。この項目は、`internal_log_dir`、`internal_log_roll_interval`、および `internal_roll_maxsize` と連携して動作します。 +- 導入バージョン: v3.2.4 +##### log_cleaner_audit_log_min_retention_days + +- デフォルト値: 3 +- タイプ: Int +- 単位: 日 +- 変更可能: はい +- 説明: 監査ログファイルの最小保持日数。 これより新しい監査ログファイルは、ディスク使用量が多くても削除されません。 これは、コンプライアンスおよびトラブルシューティングの目的で監査ログが確実に保持されるようにするためです。 +- 導入: - +##### log_cleaner_check_interval_second + +- デフォルト: 300 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: ディスク使用量を確認し、ログをクリーンアップする間隔(秒単位)。 クリーナーは、各ログディレクトリのディスク使用量を定期的に確認し、必要に応じてクリーンアップをトリガーします。 デフォルトは300秒(5分)です。 +- 導入: - +##### log_cleaner_disk_usage_target + +- デフォルト値: 60 +- タイプ: Int +- 単位: パーセント +- 変更可能: はい +- 説明: ログクリーンアップ後の目標ディスク使用量(パーセント)。 ディスク使用量がこのしきい値を下回るまで、ログのクリーンアップが継続されます。 クリーナーは、目標に達するまで最も古いログファイルを1つずつ削除します。 +- 導入バージョン: - +##### log_cleaner_disk_usage_threshold + +- デフォルト: 80 +- タイプ: Int +- 単位: パーセンテージ +- 変更可能: はい +- 説明: ログのクリーンアップをトリガーするディスク使用率のしきい値(パーセンテージ)。 ディスク使用率がこのしきい値を超えると、ログのクリーンアップが開始されます。 クリーナーは、設定された各ログディレクトリを個別にチェックし、このしきい値を超えるディレクトリを処理します。 +- 導入バージョン: - +##### log_cleaner_disk_util_based_enable + +- デフォルト値: false +- 型: Boolean +- 単位: - +- 変更可能か: Yes +- 説明: ディスク使用量に基づいて自動ログクリーンを有効にします。 有効にすると、ディスク使用量がしきい値を超えた場合にログがクリーンされます。 ログクリーナーは FE ノード上でバックグラウンドデーモンとして実行され、ログファイルの蓄積によるディスク容量の枯渇を防ぎます。 +- 導入バージョン: - +##### log_plan_cancelled_by_crash_be + +- デフォルト値: true +- タイプ: boolean +- 単位: - +- 変更可能: Yes +- 説明: BE のクラッシュまたは RPC 例外が原因でクエリがキャンセルされた場合に、クエリ実行プランのログ記録を有効にするかどうかを指定します。この機能を有効にすると、BE のクラッシュまたは `RpcException` が原因でクエリがキャンセルされた場合、StarRocks はクエリ実行プラン(`TExplainLevel.COSTS`)を WARN エントリとしてログに記録します。ログエントリには、QueryId、SQL、および COSTS プランが含まれます。ExecuteExceptionHandler パスでは、例外スタックトレースもログに記録されます。`enable_collect_query_detail_info` が有効になっている場合(プランはクエリ詳細に保存されます)、ログ記録はスキップされます。コードパスでは、クエリ詳細が null であることを確認することでチェックが実行されます。ExecuteExceptionHandler では、プランは最初のリトライでのみログに記録されることに注意してください(`retryTime == 0`)。これを有効にすると、完全な COSTS プランが大きくなる可能性があるため、ログの量が増加する可能性があります。 +- 導入バージョン: v3.2.0 +##### log_register_and_unregister_query_id + +- デフォルト値: false +- 型: Boolean +- 単位: - +- 変更可能: Yes +- 説明: FE が QeProcessorImpl からのクエリ登録および登録解除メッセージ (例: `"register query id = {}"` および `"deregister query id = {}"`) をログに記録することを許可するかどうか。ログは、クエリが非 null の ConnectContext を持ち、コマンドが `COM_STMT_EXECUTE` でないか、セッション変数 `isAuditExecuteStmt()` が true の場合にのみ出力されます。これらのメッセージはすべてのクエリライフサイクルイベントに対して書き込まれるため、この機能を有効にすると、ログの量が多くなり、高い同時実行環境ではスループットのボトルネックになる可能性があります。デバッグまたは監査のために有効にし、ログのオーバーヘッドを削減してパフォーマンスを向上させるために無効にします。 +- 導入: v3.3.0, v3.4.0, v3.5.0 +##### log_roll_size_mb + +- デフォルト値: 1024 +- タイプ: Int +- 単位: MB +- 変更可能か: いいえ +- 説明: システムログファイルまたは監査ログファイルの最大サイズ。 +- 導入バージョン: - +##### proc_profile_file_retained_days + +- デフォルト: 1 +- タイプ: Int +- 単位: 日 +- 変更可能: Yes +- 説明: `sys_log_dir/proc_profile` に生成されたプロセスプロファイリングファイル(CPUとメモリ)を保持する日数。 ProcProfileCollector は、現在の時刻から `proc_profile_file_retained_days` 日を引いたカットオフを計算し (yyyyMMdd-HHmmss の形式)、タイムスタンプ部分がそのカットオフよりも辞書式順序で早いプロファイルファイルを削除します (つまり、timePart.compareTo(timeToDelete) < 0)。ファイルの削除は、`proc_profile_file_retained_size_bytes` によって制御されるサイズベースのカットオフも考慮します。プロファイルファイルは、プレフィックス `cpu-profile-` および `mem-profile-` を使用し、収集後に圧縮されます。 +- 導入バージョン: v3.2.12 +##### proc_profile_file_retained_size_bytes + +- デフォルト値: 2L * 1024 * 1024 * 1024 (2147483648) +- タイプ: Long +- 単位: Bytes +- 変更可能: Yes +- 説明: CPUとメモリのプロファイルファイル(`cpu-profile-` と `mem-profile-` のプレフィックスが付いたファイル)の、プロファイルディレクトリに保持する最大合計バイト数。 有効なプロファイルファイルの合計が `proc_profile_file_retained_size_bytes` を超えると、コレクターは残りの合計サイズが `proc_profile_file_retained_size_bytes` 以下になるまで、最も古いプロファイルファイルを削除します。 `proc_profile_file_retained_days` より古いファイルも、サイズに関係なく削除されます。 この設定は、プロファイルアーカイブのディスク使用量を制御し、`proc_profile_file_retained_days` と連携して削除順序と保持期間を決定します。 +- 導入バージョン: v3.2.12 +##### profile_log_delete_age + +- デフォルト: 1d +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: FE プロファイルログファイルの削除対象となるまでの保持期間を制御します。この値は、Log4j の `<IfLastModified age="..."/>` ポリシーに(`Log4jConfig` 経由で)挿入され、`profile_log_roll_interval` や `profile_log_roll_num` などのローテーション設定とともに適用されます。サポートされているサフィックス: `d` (日)、`h` (時間)、`m` (分)、`s` (秒)。例: `7d` (7 日)、`10h` (10 時間)、`60m` (60 分)、`120s` (120 秒)。 +- 導入バージョン: v3.2.5 +##### profile_log_dir + +- デフォルト値: `Config.STARROCKS_HOME_DIR + "/log"` +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: FE プロファイルログが書き込まれるディレクトリ。 Log4jConfig はこの値を使用して、プロファイル関連のアペンダーを配置します (このディレクトリに `fe.profile.log` や `fe.features.log` などのファイルを作成します)。これらのファイルのローテーションと保持は、`profile_log_roll_size_mb` 、 `profile_log_roll_num` 、および `profile_log_delete_age` によって管理されます。タイムスタンプのサフィックス形式は `profile_log_roll_interval` によって制御されます (DAY または HOUR をサポート)。デフォルトのディレクトリは `STARROCKS_HOME_DIR` の下にあるため、FE プロセスがこのディレクトリに対する書き込みおよびローテーション/削除の権限を持っていることを確認してください。 +- 導入バージョン: v3.2.5 +##### profile_log_roll_interval + +- デフォルト: DAY +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: プロファイルログのファイル名のdate部分を生成するために使用される時間の粒度を制御します。有効な値(大文字と小文字を区別しない)は、`HOUR` と `DAY` です。`HOUR` は `"%d{yyyyMMddHH}"` (毎時の時間バケット)のパターンを生成し、`DAY` は `"%d{yyyyMMdd}"` (毎日の時間バケット)を生成します。この値は、Log4j構成の `profile_file_pattern` を計算するときに使用され、ロールオーバーファイル名の時間ベースのコンポーネントにのみ影響します。サイズベースのロールオーバーは `profile_log_roll_size_mb` によって、保持は `profile_log_roll_num` / `profile_log_delete_age` によって制御されます。無効な値を指定すると、ログ初期化中に IOException が発生します(エラーメッセージ: `"profile_log_roll_interval config error: "`)。高ボリュームのプロファイリングの場合は、1時間あたりのファイルサイズを制限するために `HOUR` を選択し、毎日の集計の場合は `DAY` を選択します。 +- 導入バージョン: v3.2.5 +##### profile_log_roll_num + +- デフォルト値: 5 +- タイプ: Int +- 単位: - +- 変更可能か: いいえ +- 説明: プロファイルロガーのために、Log4j の DefaultRolloverStrategy によって保持される、ローテーションされたプロファイルログファイルの最大数を指定します。この値は、`${profile_log_roll_num}` としてロギング XML に挿入されます (例: `<DefaultRolloverStrategy max="${profile_log_roll_num}" fileIndex="min">`)。ローテーションは `profile_log_roll_size_mb` または `profile_log_roll_interval` によってトリガーされます。ローテーションが発生すると、Log4j は最大でこれらのインデックス付きファイルを保持し、古いインデックスファイルは削除対象となります。ディスク上の実際の保持期間は、`profile_log_delete_age` と `profile_log_dir` の場所にも影響されます。値を小さくするとディスク使用量が削減されますが、保持される履歴が制限されます。値を大きくすると、より多くの履歴プロファイルログが保持されます。 +- 導入バージョン: v3.2.5 +##### profile_log_roll_size_mb + +- デフォルト値: 1024 +- タイプ: Int +- 単位: MB +- 変更可能: いいえ +- 説明: FE のプロファイルログファイルのサイズに基づいたロールオーバーをトリガーするサイズ閾値(メガバイト単位)を設定します。この値は、`ProfileFile` appender の Log4j RollingFile SizeBasedTriggeringPolicy によって使用されます。プロファイルログが `profile_log_roll_size_mb` を超えると、ローテーションされます。ローテーションは、`profile_log_roll_interval` に達したときにも時間によって発生する可能性があります。いずれかの条件がロールオーバーをトリガーします。`profile_log_roll_num` および `profile_log_delete_age` と組み合わせることで、この項目は保持される過去のプロファイルファイルの数と、古いファイルが削除されるタイミングを制御します。ローテーションされたファイルの圧縮は、`enable_profile_log_compress` によって制御されます。 +- 導入バージョン: v3.2.5 +##### qe_slow_log_ms + +- デフォルト値: 5000 +- タイプ: Long +- 単位: ミリ秒 +- 変更可能: はい +- 説明: クエリが遅いかどうかを判断するために使用される閾値。クエリの応答時間がこの閾値を超えると、**fe.audit.log** に遅いクエリとして記録されます。 +- 導入バージョン: - +##### slow_lock_log_every_ms + +- デフォルト値: 3000L +- タイプ: Long +- 単位: ミリ秒 +- 変更可能: はい +- 説明: 同じ SlowLockLogStats インスタンスに対して、次の「slow lock」警告を発するまでの最小間隔(ミリ秒単位)。 LockUtils は、ロックの待機時間が slow_lock_threshold_ms を超えた後にこの値をチェックし、最後に記録された slow-lock イベントから slow_lock_log_every_ms ミリ秒が経過するまで、追加の警告を抑制します。 競合が長引く場合は値を大きくしてログ量を減らし、より頻繁な診断が必要な場合は値を小さくします。 変更は、後続のチェックのために実行時に有効になります。 +- 導入バージョン: v3.2.0 +##### slow_lock_print_stack + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: `logSlowLockTrace` によって出力される slow-lock 警告の JSON ペイロードに、LockManager が所有スレッドの完全なスタックトレースを含めることを許可するかどうか (`start=0` および `max=Short.MAX_VALUE` で `LogUtil.getStackTraceToJsonArray` を使用して "stack" 配列が作成されます)。この構成は、ロックの取得が `slow_lock_threshold_ms` で構成されたしきい値を超えた場合に表示されるロック所有者の追加のスタック情報のみを制御します。この機能を有効にすると、ロックを保持している正確なスレッドスタックが得られるため、デバッグに役立ちます。無効にすると、ログの量と、同時実行性の高い環境でスタックトレースをキャプチャしてシリアライズすることによって発生する CPU/メモリのオーバーヘッドが削減されます。 +- 導入バージョン: v3.3.16, v3.4.5, v3.5.1 +##### slow_lock_threshold_ms + +- デフォルト値: 3000L +- タイプ: long +- 単位: ミリ秒 +- 変更可能: はい +- 説明: ロック操作または保持されているロックを「遅い」と分類するために使用される閾値(ミリ秒単位)。ロックの経過待機時間または保持時間がこの値を超えると、StarRocks は(コンテキストに応じて)診断ログを発行し、スタックトレースまたは待機者/所有者情報を含み、LockManager ではこの遅延後にデッドロック検出を開始します。LockUtils(遅いロックのロギング)、QueryableReentrantReadWriteLock(遅いリーダーのフィルタリング)、LockManager(デッドロック検出の遅延と遅いロックのトレース)、LockChecker(定期的な遅いロックの検出)、およびその他の呼び出し元(DiskAndTabletLoadReBalancer のロギングなど)で使用されます。値を小さくすると、感度とロギング/診断のオーバーヘッドが増加します。0 または負に設定すると、初期の待機ベースのデッドロック検出遅延の動作が無効になります。slow_lock_log_every_ms、slow_lock_print_stack、および slow_lock_stack_trace_reserve_levels と共に調整してください。 +- 導入バージョン: 3.2.0 +##### sys_log_delete_age + +- デフォルト: 7d +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: システムログファイルの保持期間。デフォルト値 `7d` は、各システムログファイルを7日間保持できることを指定します。 StarRocks は各システムログファイルをチェックし、7日前に生成されたものを削除します。 +- 導入: - +##### sys_log_dir + +- デフォルト: StarRocksFE.STARROCKS_HOME_DIR + "/log" +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: システムログファイルを格納するディレクトリ。 +- 導入: - +##### sys_log_enable_compress + +- デフォルト: false +- タイプ: boolean +- 単位: - +- 変更可能: No +- 説明: この項目が `true` に設定されている場合、システムはローテーションされたシステムログのファイル名に ".gz" の接尾辞を追加します。これにより、Log4j は gzip 圧縮されたローテーションされた FE システムログを生成します (例: fe.log.*)。この値は、Log4j の構成生成 (Log4jConfig.initLogging / generateActiveLog4jXmlConfig) 中に読み取られ、RollingFile filePattern で使用される `sys_file_postfix` プロパティを制御します。この機能を有効にすると、保持されるログのディスク使用量が削減されますが、ロールオーバー中の CPU および I/O が増加し、ログを読み取るツールまたはスクリプトが .gz ファイルを処理できるように、ログのファイル名が変更されます。監査ログは圧縮に別の構成を使用することに注意してください。つまり、`audit_log_enable_compress` です。 +- 導入バージョン: v3.2.12 +##### sys_log_format + +- デフォルト: "plaintext" +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: FE ログに使用される Log4j レイアウトを選択します。有効な値: `"plaintext"` (デフォルト) および `"json"`。値は大文字と小文字を区別しません。`"plaintext"` は、人間が判読できるタイムスタンプ、レベル、スレッド、class.method:line、および WARN/ERROR のスタックトレースで PatternLayout を構成します。`"json"` は JsonTemplateLayout を構成し、ログアグリゲーター (ELK、Splunk) に適した構造化 JSON イベント (UTC タイムスタンプ、レベル、スレッド ID/名前、ソースファイル/メソッド/行、メッセージ、例外 stackTrace) を出力します。JSON 出力は、最大文字列長に関して `sys_log_json_max_string_length` および `sys_log_json_profile_max_string_length` に準拠します。 +- 導入バージョン: v3.2.10 +##### sys_log_json_max_string_length + +- デフォルト: 1048576 +- タイプ: Int +- 単位: Bytes +- 変更可能: いいえ +- 説明: JSON形式のシステムログに使用される JsonTemplateLayout の "maxStringLength" の値を設定します。 `sys_log_format` が `"json"` に設定されている場合、文字列値のフィールド(例えば "message" や文字列化された例外スタックトレース)の長さがこの制限を超えると切り捨てられます。この値は、`Log4jConfig.generateActiveLog4jXmlConfig()` で生成された Log4j XML に挿入され、default、warning、audit、dump、bigquery のレイアウトに適用されます。 profile レイアウトは別の構成 (`sys_log_json_profile_max_string_length`) を使用します。この値を下げるとログサイズは小さくなりますが、有用な情報が切り捨てられる可能性があります。 +- 導入バージョン: 3.2.11 +##### sys_log_json_profile_max_string_length + +- デフォルト値: 104857600 (100 MB) +- タイプ: Int +- 単位: バイト +- 変更可能か: いいえ +- 説明: `sys_log_format` が "json" の場合、プロファイル(および関連機能)ログアペンダーの JsonTemplateLayout の maxStringLength を設定します。JSON 形式のプロファイルログの文字列フィールド値は、このバイト長に切り捨てられます。文字列以外のフィールドは影響を受けません。この項目は Log4jConfig `JsonTemplateLayout maxStringLength` で適用され、`plaintext` ロギングが使用されている場合は無視されます。必要なメッセージ全体を格納できる十分な大きさの値を維持してください。ただし、値を大きくするとログサイズと I/O が増加することに注意してください。 +- 導入バージョン: v3.2.11 +##### sys_log_level + +- デフォルト値: INFO +- 型: String +- 単位: - +- 変更可能か: いいえ +- 説明: システムログのエントリが分類される重要度レベル。有効な値: `INFO`、`WARN`、`ERROR`、および `FATAL`。 +- 導入バージョン: - +##### sys_log_roll_interval + +- デフォルト値: DAY +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: StarRocks がシステムログのエントリをローテーションする時間間隔。 有効な値: `DAY` および `HOUR`。 + - このパラメータが `DAY` に設定されている場合、`yyyyMMdd` 形式のサフィックスがシステムログファイルの名前に追加されます。 + - このパラメータが `HOUR` に設定されている場合、`yyyyMMddHH` 形式のサフィックスがシステムログファイルの名前に追加されます。 +- 導入: - +##### sys_log_roll_num + +- デフォルト値: 10 +- タイプ: Int +- 単位: - +- 変更可能か: No +- 説明: `sys_log_roll_interval` パラメータで指定された各保持期間内に保持できるシステムログファイルの最大数。 +- 導入: - +##### sys_log_to_console + +- デフォルト値: false (環境変数 `SYS_LOG_TO_CONSOLE` が "1" に設定されていない限り) +- タイプ: Boolean +- 単位: - +- 変更可能か: いいえ +- 説明: この項目が `true` に設定されている場合、システムは Log4j がすべてのログをファイルベースのアペンダーではなく、コンソール (ConsoleErr appender) に送信するように設定します。この値は、アクティブな Log4j XML 構成を生成する際に読み取られます (これは、ルートロガーとモジュールごとのロガーアペンダーの選択に影響します)。その値は、プロセス起動時に `SYS_LOG_TO_CONSOLE` 環境変数から取得されます。実行時に変更しても効果はありません。この構成は、stdout/stderr ログ収集がログファイルの書き込みよりも優先されるコンテナ化された環境または CI 環境で一般的に使用されます。 +- 導入バージョン: v3.2.0 +##### sys_log_verbose_modules + +- デフォルト: 空文字列 +- タイプ: String[] +- 単位: - +- 変更可能か: いいえ +- 説明: StarRocks がシステムログを生成するモジュール。このパラメータが `org.apache.starrocks.catalog` に設定されている場合、StarRocks は catalog モジュールに対してのみシステムログを生成します。モジュール名はカンマ (,) とスペースで区切ります。 +- 導入: - +##### sys_log_warn_modules + +- デフォルト値: {} +- 型: String[] +- 単位: - +- 変更可能: いいえ +- 説明: システムが起動時に WARN レベルのロガーとして構成し、警告アペンダー (SysWF) (`fe.warn.log` ファイル) にルーティングする、ロガー名またはパッケージプレフィックスのリスト。エントリは、生成された Log4j 構成 (org.apache.kafka、org.apache.hudi、org.apache.hadoop.io.compress などの組み込みの警告モジュールと並んで) に挿入され、`` のようなロガー要素を生成します。ノイズの多い INFO/DEBUG 出力を通常のログに抑制し、警告を個別にキャプチャできるように、完全修飾されたパッケージおよびクラスのプレフィックス (たとえば、"com.example.lib") を推奨します。 +- 導入バージョン: v3.2.13 +### サーバー +##### brpc_idle_wait_max_time + +- デフォルト値: 10000 +- タイプ: Int +- 単位: ms +- 変更可能か: いいえ +- 説明: アイドル状態の際に、bRPC クライアントが待機する最大時間。 +- 導入バージョン: - +##### brpc_inner_reuse_pool + +- デフォルト値: true +- 型: boolean +- 単位: - +- 変更可能か: No +- 説明: 基盤となるBRPCクライアントが、接続/チャネルのために内部の共有再利用プールを使用するかどうかを制御します。 StarRocks は、RpcClientOptions を構築する際に(`rpcOptions.setInnerResuePool(...)` を介して)BrpcProxy で `brpc_inner_reuse_pool` を読み取ります。有効(true)にすると、RPCクライアントは内部プールを再利用して、呼び出しごとの接続作成を減らし、FE と BE 間、または LakeService RPC の接続のチャーン、メモリ、およびファイル記述子の使用量を削減します。無効(false)にすると、クライアントはより分離されたプールを作成する可能性があります(リソース使用量の増加を犠牲にして、同時実行の分離を高めます)。この値を変更するには、プロセスを再起動して有効にする必要があります。 +- 導入バージョン: v3.3.11, v3.4.1, v3.5.0 +##### brpc_min_evictable_idle_time_ms + +- デフォルト値: 120000 +- タイプ: Int +- 単位: ミリ秒 +- 変更可能か: いいえ +- 説明: アイドル状態のBRPC接続が、接続プール内で削除対象となるまでの最小待機時間(ミリ秒)。 `BrpcProxy` が使用する RpcClientOptions に適用されます (RpcClientOptions.setMinEvictableIdleTime 経由)。この値を大きくすると、アイドル状態の接続がより長く維持され(再接続のチャーンを削減)、小さくすると、未使用のソケットがより早く解放されます(リソース使用量を削減)。接続の再利用、プールの増加、および削除の動作のバランスを取るために、 `brpc_connection_pool_size` および `brpc_idle_wait_max_time` と共に調整してください。 +- 導入バージョン: v3.3.11, v3.4.1, v3.5.0 +##### brpc_reuse_addr + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能か: No +- 説明: trueの場合、StarRocks はソケットオプションを設定して、brpc RpcClient (RpcClientOptions.setReuseAddress 経由) によって作成されたクライアントソケットのローカルアドレスの再利用を許可します。 これを有効にすると、バインドの失敗が減少し、ソケットが閉じられた後、ローカルポートの再バインドが高速化されます。これは、高レートの接続チャーンや迅速な再起動に役立ちます。 falseの場合、アドレス/ポートの再利用は無効になり、意図しないポート共有の可能性を減らすことができますが、一時的なバインドエラーが増加する可能性があります。 このオプションは、クライアントソケットの再バインドと再利用の速度に影響するため、`brpc_connection_pool_size` および `brpc_short_connection` によって構成された接続動作と相互作用します。 +- 導入バージョン: v3.3.11, v3.4.1, v3.5.0 +##### cluster_name + +- デフォルト値: StarRocks Cluster +- タイプ: String +- 単位: - +- 変更可能か: いいえ +- 説明: FE が属する StarRocks クラスタの名前。クラスタ名は、Web ページの `Title` に表示されます。 +- 導入: - +##### dns_cache_ttl_seconds + +- デフォルト: 60 +- タイプ: Int +- 単位: 秒 +- 変更可能: いいえ +- 説明: DNSルックアップが成功した場合のDNSキャッシュのTTL(Time-To-Live、生存時間)を秒単位で指定します。これは、JVMがDNSルックアップの結果をキャッシュする時間を制御するJavaのセキュリティプロパティ `networkaddress.cache.ttl` を設定します。この項目を `-1` に設定すると、システムは常に情報をキャッシュし、 `0` に設定するとキャッシュを無効にします。これは、Kubernetes デプロイメントや動的DNSの使用など、IPアドレスが頻繁に変更される環境で特に役立ちます。 +- 導入バージョン: v3.5.11, v4.0.4 +##### enable_http_async_handler + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: システムがHTTPリクエストを非同期で処理できるようにするかどうかを指定します。 この機能を有効にすると、Netty workerスレッドが受信したHTTPリクエストは、HTTPサーバーのブロックを回避するために、サービスロジック処理用の別のスレッドプールに送信されます。 無効にすると、Netty workerがサービスロジックを処理します。 +- 導入バージョン: 4.0.0 +##### enable_http_validate_headers + +- デフォルト: false +- タイプ: Boolean +- 単位: - +- 変更可能: No +- 説明: Netty の HttpServerCodec が厳密な HTTP ヘッダーの検証を実行するかどうかを制御します。この値は、`HttpServer` で HTTP パイプラインが初期化される際に HttpServerCodec に渡されます (UseLocations を参照)。新しい Netty バージョンでは、より厳密なヘッダー規則が適用されるため (https://github.com/netty/netty/pull/12760 )、下位互換性のためにデフォルトは false です。RFC 準拠のヘッダーチェックを適用するには、true に設定します。これにより、レガシークライアントまたはプロキシからの不正なリクエストや非準拠のリクエストが拒否される可能性があります。変更を有効にするには、HTTP サーバーの再起動が必要です。 +- 導入バージョン: v3.3.0, v3.4.0, v3.5.0 +##### enable_https + +- デフォルト: false +- タイプ: Boolean +- 単位: - +- 変更可能か: No +- 説明: FE ノードで HTTP サーバーと並行して HTTPS サーバーを有効にするかどうか。 +- 導入バージョン: v4.0 +##### frontend_address + +- デフォルト値: 0.0.0.0 +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: FE ノードの IP アドレス。 +- 導入: - +##### http_async_threads_num + +- デフォルト値: 4096 +- タイプ: Int +- 単位: - +- 変更可能か: はい +- 説明: 非同期HTTPリクエスト処理用のスレッドプールのサイズ。エイリアスは `max_http_sql_service_task_threads_num` です。 +- 導入バージョン: 4.0.0 +##### http_backlog_num + +- デフォルト値: 1024 +- タイプ: Int +- 単位: - +- 変更可能か: いいえ +- 説明: FE ノードの HTTP サーバーによって保持されるバックログキューの長さ。 +- 導入: - +##### http_max_chunk_size + +- デフォルト値: 8192 +- タイプ: Int +- 単位: バイト +- 変更可能か: いいえ +- 説明: FE HTTPサーバー内のNettyのHttpServerCodecによって処理される、単一のHTTPチャンクの最大許容サイズ(バイト単位)を設定します。これはHttpServerCodecへの3番目の引数として渡され、チャンク転送またはストリーミングのリクエスト/レスポンス中のチャンクの長さを制限します。受信チャンクがこの値を超えると、Nettyはフレームサイズ超過エラー(例:TooLongFrameException)を発生させ、リクエストが拒否される可能性があります。正当な大きなチャンクのアップロードのためにこの値を大きくしてください。メモリ負荷とDoS攻撃の表面積を減らすために、小さく保ってください。この設定は、`http_max_initial_line_length`、`http_max_header_size`、および`enable_http_validate_headers`とともに使用されます。 +- 導入バージョン: v3.2.0 +##### http_max_header_size + +- デフォルト: 32768 +- タイプ: Int +- 単位: バイト +- 変更可能か: いいえ +- 説明: Netty の `HttpServerCodec` によって解析される HTTP リクエストヘッダーブロックで許可される最大サイズ(バイト単位)。 StarRocks はこの値を `HttpServerCodec` に(`Config.http_max_header_size` として)渡します。受信リクエストのヘッダー(名前と値の組み合わせ)がこの制限を超えると、コーデックはリクエストを拒否し(デコーダー例外)、接続/リクエストは失敗します。クライアントが正当に非常に大きなヘッダー(大きな Cookie または多数のカスタムヘッダー)を送信する場合にのみ増やしてください。値を大きくすると、接続ごとのメモリ使用量が増加します。 `http_max_initial_line_length` および `http_max_chunk_size` と組み合わせて調整してください。変更には FE の再起動が必要です。 +- 導入バージョン: v3.2.0 +##### http_max_initial_line_length + +- デフォルト値: 4096 +- タイプ: Int +- 単位: バイト +- 変更可能か: いいえ +- 説明: HttpServer で使用される Netty の `HttpServerCodec` によって受け入れられる、HTTP 初期リクエスト行(メソッド + リクエストターゲット + HTTP バージョン)の最大許容長(バイト単位)を設定します。この値は Netty のデコーダーに渡され、初期行がこれより長いリクエストは拒否されます (TooLongFrameException)。非常に長いリクエスト URI をサポートする必要がある場合にのみ、この値を大きくしてください。値を大きくすると、メモリ使用量が増加し、不正な形式のリクエストやリクエストの悪用に対する脆弱性が高まる可能性があります。`http_max_header_size` および `http_max_chunk_size` と合わせて調整してください。 +- 導入バージョン: v3.2.0 +##### http_port + +- デフォルト値: 8030 +- タイプ: Int +- 単位: - +- 変更可能かどうか: いいえ +- 説明: FE ノード内の HTTP サーバーがリッスンするポート。 +- 導入: - +##### http_web_page_display_hardware + +- デフォルト: true +- タイプ: Boolean +- 単位: - +- 変更可能: はい +- 説明: trueの場合、HTTPインデックスページ(/index)に、oshiライブラリを介して入力されたハードウェア情報セクション(CPU、メモリ、プロセス、ディスク、ファイルシステム、ネットワークなど)が含まれます。oshiは、システムユーティリティを呼び出したり、システムファイルを間接的に読み取ったりする場合があります(たとえば、`getent passwd`などのコマンドを実行できます)。これにより、機密性の高いシステムデータが表面化する可能性があります。より厳格なセキュリティが必要な場合、またはホスト上でこれらの間接的なコマンドの実行を回避したい場合は、この構成をfalseに設定して、Web UIでのハードウェア詳細の収集と表示を無効にします。 +- 導入バージョン: v3.2.0 +##### http_worker_threads_num + +- デフォルト: 0 +- タイプ: Int +- 単位: - +- 変更可能: いいえ +- 説明: HTTPリクエストを処理するために、HTTPサーバーが使用するワーカースレッドの数。 負の値または0の場合、スレッド数はCPUコア数の2倍になります。 +- 導入バージョン: v2.5.18, v3.0.10, v3.1.7, v3.2.2 +##### https_port + +- デフォルト値: 8443 +- タイプ: Int +- 単位: - +- 変更可能かどうか: いいえ +- 説明: FE ノードの HTTPS サーバーがリッスンするポート。 +- 導入バージョン: v4.0 +##### max_mysql_service_task_threads_num + +- デフォルト値: 4096 +- タイプ: Int +- 単位: - +- 変更可能か: いいえ +- 説明: FE ノード内の MySQL サーバーがタスクを処理するために実行できるスレッドの最大数。 +- 導入バージョン: - +##### max_task_runs_threads_num + +- デフォルト値: 512 +- タイプ: Int +- 単位: スレッド +- 変更可能か: いいえ +- 説明: タスク実行executorスレッドプール内の最大スレッド数を制御します。この値は、同時タスク実行の上限です。この値を大きくすると並行性が向上しますが、CPU、メモリ、ネットワークの使用量も増加します。一方、この値を小さくすると、タスクのバックログが発生し、レイテンシが高くなる可能性があります。予想される同時実行スケジュールジョブと利用可能なシステムリソースに応じて、この値を調整してください。 +- 導入バージョン: v3.2.0 +##### memory_tracker_enable + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: FE のメモリトラッカーサブシステムを有効にします。 `memory_tracker_enable` が `true` に設定されている場合、 `MemoryUsageTracker` は登録されたメタデータモジュールを定期的にスキャンし、インメモリの `MemoryUsageTracker.MEMORY_USAGE` マップを更新し、合計をログに記録し、 `MetricRepo` がメトリクス出力でメモリ使用量とオブジェクト数のゲージを公開するようにします。サンプリング間隔を制御するには、 `memory_tracker_interval_seconds` を使用します。この機能を有効にすると、メモリ消費の監視とデバッグに役立ちますが、CPU と I/O のオーバーヘッド、および追加のメトリックカーディナリティが発生します。 +- 導入バージョン: v3.2.4 +##### memory_tracker_interval_seconds + +- デフォルト: 60 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: FE の `MemoryUsageTracker` デーモンが FE プロセスと登録された `MemoryTrackable` モジュールのメモリ使用量をポーリングして記録する間隔(秒単位)。 `memory_tracker_enable` が `true` に設定されている場合、トラッカーはこの間隔で実行され、 `MEMORY_USAGE` を更新し、集計された JVM と追跡対象モジュールの使用状況をログに記録します。 +- 導入バージョン: v3.2.4 +##### mysql_nio_backlog_num + +- デフォルト値: 1024 +- タイプ: Int +- 単位: - +- 変更可能か: いいえ +- 説明: FE ノード内の MySQL サーバーによって保持されるバックログキューの長さ。 +- 導入: - +##### mysql_server_version + +- デフォルト値: 8.0.33 +- タイプ: String +- 単位: - +- 変更可能か: Yes +- 説明: クライアントに返される MySQL サーバーのバージョンです。このパラメータを変更すると、以下の状況におけるバージョン情報に影響します。 + 1. `select version();` + 2. ハンドシェイクパケットのバージョン + 3. グローバル変数 `version` の値 (`show variables like 'version';`) +- 導入バージョン: - +##### mysql_service_io_threads_num + +- デフォルト値: 4 +- タイプ: Int +- 単位: - +- 変更可能: いいえ +- 説明: FE ノード内の MySQL サーバーが I/O イベントを処理するために実行できるスレッドの最大数。 +- 導入: - +##### mysql_service_kill_after_disconnect + +- デフォルト値: true +- 型: Boolean +- 単位: - +- 変更可能: No +- 説明: MySQL の TCP 接続が閉じられた(読み取り時に EOF)ことを検出した際に、サーバーがセッションをどのように処理するかを制御します。 `true` に設定すると、サーバーはその接続で実行中のクエリを直ちに強制終了し、即座にクリーンアップを実行します。 `false` の場合、サーバーは切断時に実行中のクエリを強制終了せず、保留中のリクエストタスクがない場合にのみクリーンアップを実行し、クライアントが切断された後も長時間実行されるクエリが続行できるようにします。 注: TCP keep-alive を示唆する短いコメントがありますが、このパラメータは特に切断後の強制終了動作を制御し、孤立したクエリを終了させるか(信頼性の低い/ロードバランシングされたクライアントの背後で推奨)、完了させるかを決定して設定する必要があります。 +- 導入: - +##### mysql_service_nio_enable_keep_alive + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能か: No +- 説明: MySQL接続に対してTCP Keep-Aliveを有効にします。ロードバランサーの背後にある長時間アイドル状態の接続に役立ちます。 +- 導入バージョン: - +##### net_use_ipv6_when_priority_networks_empty + +- デフォルト値: false +- 型: Boolean +- 単位: - +- 変更可能か: No +- 説明: `priority_networks` が指定されていない場合に、IPv6 アドレスを優先的に使用するかどうかを制御するブール値です。 `true` は、ノードをホストするサーバーが IPv4 と IPv6 の両方のアドレスを持ち、`priority_networks` が指定されていない場合に、システムが IPv6 アドレスを優先的に使用することを許可することを示します。 +- 導入バージョン: v3.3.0 +##### priority_networks + +- デフォルト値: 空の文字列 +- 型: String +- 単位: - +- 変更可能か: いいえ +- 説明: 複数のIPアドレスを持つサーバーの選択戦略を宣言します。 このパラメータで指定されたリストに一致するIPアドレスは、最大で1つでなければならないことに注意してください。 このパラメータの値は、10.10.10.0/24のように、CIDR表記でセミコロン(;)で区切られたエントリで構成されるリストです。 このリストのエントリに一致するIPアドレスがない場合、サーバーの利用可能なIPアドレスがランダムに選択されます。 v3.3.0以降、StarRocks は IPv6 に基づくデプロイをサポートしています。 サーバーが IPv4 と IPv6 の両方のアドレスを持ち、このパラメータが指定されていない場合、システムはデフォルトで IPv4 アドレスを使用します。 `net_use_ipv6_when_priority_networks_empty` を `true` に設定することで、この動作を変更できます。 +- 導入バージョン: - +##### proc_profile_cpu_enable + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: この項目が `true` に設定されている場合、バックグラウンドの `ProcProfileCollector` は `AsyncProfiler` を使用して CPU プロファイルを収集し、HTML レポートを `sys_log_dir/proc_profile` に書き込みます。各収集の実行では、`proc_profile_collect_time_s` で設定された期間 CPU スタックを記録し、Java スタックの深さには `proc_profile_jstack_depth` を使用します。生成されたプロファイルは圧縮され、古いファイルは `proc_profile_file_retained_days` および `proc_profile_file_retained_size_bytes` に従って削除されます。`AsyncProfiler` にはネイティブライブラリ(`libasyncProfiler.so`)が必要です。`one.profiler.extractPath` は `/tmp` での noexec の問題を回避するために `STARROCKS_HOME_DIR/bin` に設定されています。 +- 導入バージョン: v3.2.12 +##### qe_max_connection + +- デフォルト値: 4096 +- タイプ: Int +- 単位: - +- 変更可能か: いいえ +- 説明: すべてのユーザーが FE ノードに確立できる接続の最大数。v3.1.12 および v3.2.7 以降、デフォルト値は `1024` から `4096` に変更されました。 +- 導入バージョン: - +##### query_port + +- デフォルト値: 9030 +- タイプ: Int +- 単位: - +- 変更可能かどうか: いいえ +- 説明: FE ノード内の MySQL サーバーがリッスンするポート。 +- 導入: - +##### rpc_port + +- デフォルト: 9020 +- タイプ: Int +- 単位: - +- 変更可能: いいえ +- 説明: FE ノード内の Thrift サーバーがリッスンするポート。 +- 導入: - +##### slow_lock_stack_trace_reserve_levels + +- デフォルト値: 15 +- タイプ: Int +- 単位: - +- 変更可能か: Yes +- 説明: StarRocks が低速または保留中のロックに関するロックデバッグ情報をダンプする際に、キャプチャおよび出力されるスタックトレースフレームの数を制御します。この値は、排他ロックの所有者、現在のスレッド、および最古/共有のリーダーに対してJSONを生成する際に、`QueryableReentrantReadWriteLock` によって `LogUtil.getStackTraceToJsonArray` に渡されます。この値を大きくすると、JSONペイロードが大きくなり、スタックキャプチャのCPU/メモリがわずかに増加しますが、低速ロックまたはデッドロックの問題を診断するためのコンテキストが増えます。値を小さくすると、オーバーヘッドが軽減されます。注: リーダーエントリは、低速ロックのみをログに記録する場合、`slow_lock_threshold_ms` でフィルタリングできます。 +- 導入バージョン: v3.4.0, v3.5.0 +##### ssl_cipher_blacklist + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能: いいえ +- 説明: カンマ区切りのリスト。IANA名でSSL暗号スイートをブラックリストに登録するための正規表現をサポートします。ホワイトリストとブラックリストの両方が設定されている場合、ブラックリストが優先されます。 +- 導入バージョン: v4.0 +##### ssl_cipher_whitelist + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能: いいえ +- 説明: カンマ区切りのリスト。IANA名でSSL暗号スイートをホワイトリストに登録するための正規表現をサポートします。ホワイトリストとブラックリストの両方が設定されている場合、ブラックリストが優先されます。 +- 導入: v4.0 +##### task_runs_concurrency + +- デフォルト値: 4 +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: 同時実行される TaskRun インスタンスのグローバル制限です。 `TaskRunScheduler` は、現在の実行数が `task_runs_concurrency` 以上の場合、新しい実行のスケジュールを停止します。したがって、この値はスケジューラ全体での TaskRun の並列実行を制限します。また、TaskRun ごとのパーティションリフレッシュの粒度を計算するために `MVPCTRefreshPartitioner` によっても使用されます。値を大きくすると、並列性とリソース使用量が増加します。値を小さくすると、同時実行性が低下し、実行ごとのパーティションリフレッシュが大きくなります。スケジューリングを意図的に無効にしない限り、0 または負に設定しないでください。0(または負)にすると、`TaskRunScheduler` による新しい TaskRun のスケジュールが効果的に防止されます。 +- 導入バージョン: v3.2.0 +##### task_runs_queue_length + +- デフォルト値: 500 +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: 保留キューに保持される、保留中の TaskRun アイテムの最大数を制限します。`TaskRunManager` は現在の保留数をチェックし、有効な保留中の TaskRun 数が `task_runs_queue_length` 以上の場合、新しいサブミッションを拒否します。マージ/承認された TaskRun が追加される前にも、同じ制限が再チェックされます。この値を調整して、メモリとスケジューリングのバックログのバランスを取ります。拒否を避けるために、大規模なバースト的なワークロードの場合は高く設定し、メモリを制限して保留中のバックログを減らすには低く設定します。 +- 導入バージョン: v3.2.0 +##### thrift_backlog_num + +- デフォルト値: 1024 +- タイプ: Int +- 単位: - +- 変更可能か: いいえ +- 説明: FE ノード内の Thrift サーバーによって保持されるバックログキューの長さ。 +- 導入: - +##### thrift_client_timeout_ms + +- デフォルト値: 5000 +- タイプ: Int +- 単位: ミリ秒 +- 変更可能か: いいえ +- 説明: アイドル状態のクライアント接続がタイムアウトするまでの時間。 +- 導入: - +##### thrift_rpc_max_body_size + +- デフォルト値: -1 +- タイプ: Int +- 単位: Bytes +- 変更可能か: No +- 説明: サーバーのThriftプロトコルを構築する際に使用される、許可されるThrift RPCメッセージボディの最大サイズ(バイト単位)を制御します(`ThriftServer` で `TBinaryProtocol.Factory` に渡されます)。 `-1` の値は制限を無効にします(無制限)。正の値を設定すると上限が適用され、これより大きいメッセージはThriftレイヤーによって拒否されます。これにより、メモリ使用量を制限し、サイズの大きいリクエストやDoSのリスクを軽減できます。正当なリクエストが拒否されないように、予想されるペイロード(大きな構造体やバッチデータ)に対して十分に大きなサイズに設定してください。 +- 導入バージョン: v3.2.0 +##### thrift_server_max_worker_threads + +- デフォルト値: 4096 +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: FE ノードの Thrift サーバーでサポートされるワーカースレッドの最大数。 +- 導入バージョン: - +##### thrift_server_queue_size + +- デフォルト値: 4096 +- タイプ: Int +- 単位: - +- 変更可能か: いいえ +- 説明: リクエストが保留されているキューの長さ。 thrift サーバーで処理されているスレッド数が `thrift_server_max_worker_threads` で指定された値を超えると、新しいリクエストが保留キューに追加されます。 +- 導入バージョン: - +### メタデータとクラスタ管理 +##### alter_max_worker_queue_size + +- デフォルト値: 4096 +- タイプ: Int +- 単位: Tasks +- 変更可能か: No +- 説明: alterサブシステムで使用される内部ワーカースレッドプールキューの容量を制御します。これは、`AlterHandler`の`ThreadPoolManager.newDaemonCacheThreadPool`に`alter_max_worker_threads`とともに渡されます。保留中のalterタスクの数が`alter_max_worker_queue_size`を超えると、新しいサブミッションは拒否され、`RejectedExecutionException`がスローされる可能性があります(`AlterHandler.handleFinishAlterTask`を参照)。この値を調整して、メモリ使用量と、同時実行alterタスクに許可するバックログの量を調整します。 +- 導入バージョン: v3.2.0 +##### alter_max_worker_threads + +- デフォルト値: 4 +- タイプ: Int +- 単位: スレッド +- 変更可能か: No +- 説明: AlterHandler のスレッドプールにおけるワーカースレッドの最大数を設定します。AlterHandler は、この値で executor を構築し、alter 関連のタスク(例えば、`AlterReplicaTask` を handleFinishAlterTask 経由で送信するなど)を実行および完了します。この値は、alter 操作の同時実行数を制限します。値を上げると並行性とリソース使用量が増加し、下げると同時実行される alter の数が制限され、ボトルネックになる可能性があります。executor は `alter_max_worker_queue_size` と共に作成され、ハンドラースケジューリングは `alter_scheduler_interval_millisecond` を使用します。 +- 導入バージョン: v3.2.0 +##### automated_cluster_snapshot_interval_seconds + +- デフォルト値: 600 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: 自動クラスタースナップショットタスクがトリガーされる間隔。 +- 導入バージョン: v3.4.2 +##### background_refresh_metadata_interval_millis + +- デフォルト値: 600000 +- タイプ: Int +- 単位: ミリ秒 +- 変更可能: はい +- 説明: 連続する2回の Hive メタデータキャッシュのリフレッシュ間隔。 +- 導入バージョン: v2.5.5 +##### background_refresh_metadata_time_secs_since_last_access_secs + +- デフォルト値: 3600 * 24 +- タイプ: Long +- 単位: 秒 +- 変更可能: はい +- 説明: Hive メタデータキャッシュのリフレッシュタスクの有効期限です。アクセスされた Hive catalog について、指定された時間以上アクセスされない場合、StarRocks はキャッシュされたメタデータのリフレッシュを停止します。アクセスされていない Hive catalog については、StarRocks はキャッシュされたメタデータのリフレッシュを行いません。 +- 導入バージョン: v2.5.5 +##### bdbje_cleaner_threads + +- デフォルト値: 1 +- タイプ: Int +- 単位: - +- 変更可能か: いいえ +- 説明: StarRocks ジャーナルで使用される Berkeley DB Java Edition (JE) 環境のバックグラウンドクリーナースレッドの数。この値は、`BDBEnvironment.initConfigs` の環境初期化中に読み取られ、`Config.bdbje_cleaner_threads` を使用して `EnvironmentConfig.CLEANER_THREADS` に適用されます。これは、JE ログのクリーンアップと領域再利用の並行性を制御します。値を大きくすると、フォアグラウンド操作との CPU および I/O 干渉が増加しますが、クリーンアップを高速化できます。変更は、BDB 環境が(再)初期化された場合にのみ有効になるため、新しい値を適用するには frontend の再起動が必要です。 +- 導入バージョン: v3.2.0 +##### bdbje_heartbeat_timeout_second + +- デフォルト値: 30 +- タイプ: Int +- 単位: 秒 +- 変更可能か: いいえ +- 説明: StarRocks クラスタ内の leader 、 follower 、 observer FE 間のハートビートがタイムアウトするまでの時間。 +- 導入: - +##### bdbje_lock_timeout_second + +- デフォルト: 1 +- タイプ: Int +- 単位: 秒 +- 変更可能: いいえ +- 説明: BDB JEベースのFEにおけるロックがタイムアウトするまでの時間。 +- 導入: - +##### bdbje_replay_cost_percent + +- デフォルト: 150 +- タイプ: Int +- 単位: パーセント +- 変更可能: いいえ +- 説明: BDB JE ログからトランザクションをリプレイするコストを、(パーセントで)ネットワーク経由でのリストアと比較して設定します。この値は、基盤となる JE レプリケーションパラメータ `REPLAY_COST_PERCENT` に提供され、通常は 100 より大きく、リプレイの方がネットワークリストアよりもコストがかかることを示します。潜在的なリプレイのためにクリーンアップされたログファイルを保持するかどうかを決定する際、システムはリプレイコストにログサイズを掛けたものと、ネットワークリストアのコストを比較します。ネットワークリストアの方が効率的であると判断された場合、ファイルは削除されます。値が 0 の場合、このコスト比較に基づく保持は無効になります。`REP_STREAM_TIMEOUT` 内のレプリカに必要なログファイル、またはアクティブなレプリケーションに必要なログファイルは常に保持されます。 +- 導入バージョン: v3.2.0 +##### bdbje_replica_ack_timeout_second + +- デフォルト値: 10 +- タイプ: Int +- 単位: 秒 +- 変更可能か: いいえ +- 説明: メタデータが leader FE から follower FE に書き込まれる際に、指定された数の follower FE からの ACK メッセージを leader FE が待機できる最大時間。単位は秒です。大量のメタデータが書き込まれる場合、follower FE が ACK メッセージを leader FE に返すまでに長い時間がかかり、ACK タイムアウトが発生します。この状況では、メタデータの書き込みが失敗し、FE プロセスが終了します。この状況を防ぐために、このパラメータの値を大きくすることをお勧めします。 +- 導入バージョン: - +##### bdbje_reserved_disk_size + +- デフォルト値: 512 * 1024 * 1024 (536870912) +- タイプ: Long +- 単位: バイト +- 変更可否: 不可 +- 説明: Berkeley DB JE が「保護されていない」(削除可能な)ログ/データファイルとして予約するバイト数を制限します。 StarRocks はこの値を `BDBEnvironment` の `EnvironmentConfig.RESERVED_DISK` を介して JE に渡します。 JE の組み込みのデフォルトは 0 (無制限) です。 StarRocks のデフォルト (512 MiB) は、JE が保護されていないファイルのために過剰なディスク容量を予約するのを防ぎ、古いファイルの安全なクリーンアップを可能にします。 ディスク容量が限られているシステムでは、この値を調整してください。値を小さくすると、JE はより多くのファイルをより早く解放でき、値を大きくすると、JE はより多くの予約領域を保持できます。変更を有効にするには、プロセスを再起動する必要があります。 +- 導入バージョン: v3.2.0 +##### bdbje_reset_election_group + +- デフォルト値: false +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: BDBJEレプリケーション グループをリセットするかどうか。このパラメータが `TRUE` に設定されている場合、FEはBDBJEレプリケーション グループをリセットし (つまり、選択可能なすべてのFEノードの情報を削除し)、leader FEとして起動します。リセット後、このFEはクラスタ内の唯一のメンバーとなり、他のFEは `ALTER SYSTEM ADD/DROP FOLLOWER/OBSERVER 'xxx'` を使用してこのクラスタに再参加できます。この設定は、ほとんどのfollower FEのデータが破損したためにleader FEを選出できない場合にのみ使用してください。`reset_election_group` は `metadata_failure_recovery` の代わりに使用されます。 +- 導入: - +##### black_host_connect_failures_within_time + +- デフォルト値: 5 +- タイプ: Int +- 単位: - +- 変更可能: Yes +- 説明: ブラックリストに登録されたBEノードで許可される接続失敗の閾値。 BEノードがBEブラックリストに自動的に追加された場合、StarRocks はその接続性を評価し、BEブラックリストから削除できるかどうかを判断します。 `black_host_history_sec` 内で、ブラックリストに登録されたBEノードの接続失敗回数が `black_host_connect_failures_within_time` で設定された閾値よりも少ない場合にのみ、BEブラックリストから削除できます。 +- 導入バージョン: v3.3.0 +##### black_host_history_sec + +- デフォルト値: 2 * 60 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: BE ブラックリスト内の BE ノードの過去の接続失敗を保持する時間。 BE ノードが BE ブラックリストに自動的に追加された場合、StarRocks はその接続性を評価し、BE ブラックリストから削除できるかどうかを判断します。 `black_host_history_sec` 内で、ブラックリストに登録された BE ノードの接続失敗回数が `black_host_connect_failures_within_time` で設定されたしきい値よりも少ない場合にのみ、BE ブラックリストから削除できます。 +- 導入バージョン: v3.3.0 +##### brpc_connection_pool_size + +- デフォルト値: 16 +- タイプ: Int +- 単位: コネクション数 +- 変更可能か: いいえ +- 説明: FE の BrpcProxy が使用する、エンドポイントごとのプールされた BRPC コネクションの最大数。この値は `setMaxTotoal` および `setMaxIdleSize` を介して RpcClientOptions に適用されるため、各リクエストはプールからコネクションを借りる必要があるため、同時発信 BRPC リクエストを直接制限します。同時実行性の高いシナリオでは、リクエストのキューイングを避けるためにこの値を増やしてください。値を増やすと、ソケットとメモリの使用量が増加し、リモートサーバーの負荷が増加する可能性があります。チューニングする際は、`brpc_idle_wait_max_time`、`brpc_short_connection`、`brpc_inner_reuse_pool`、`brpc_reuse_addr`、`brpc_min_evictable_idle_time_ms` などの関連設定を検討してください。この値を変更してもホットリロードはできず、再起動が必要です。 +- 導入バージョン: v3.2.0 +##### brpc_short_connection + +- デフォルト値: false +- タイプ: boolean +- 単位: - +- 変更可能か: いいえ +- 説明: 基盤となるbrpcのRpcClientが短命な接続を使用するかどうかを制御します。有効 (`true`) にすると、RpcClientOptions.setShortConnectionが設定され、リクエスト完了後に接続が閉じられます。これにより、接続設定のオーバーヘッドが増加し、レイテンシーが増加する代わりに、長寿命のソケットの数が削減されます。無効 (`false`、デフォルト) にすると、永続的な接続と接続プーリングが使用されます。このオプションを有効にすると、接続プール動作に影響するため、`brpc_connection_pool_size`、`brpc_idle_wait_max_time`、`brpc_min_evictable_idle_time_ms`、`brpc_reuse_addr`、および`brpc_inner_reuse_pool`と合わせて検討する必要があります。一般的な高スループットのデプロイメントでは無効のままにしておきます。ソケットの寿命を制限する場合、またはネットワークポリシーで短期間の接続が必要な場合にのみ有効にします。 +- 導入バージョン: v3.3.11, v3.4.1, v3.5.0 +##### catalog_try_lock_timeout_ms + +- デフォルト値: 5000 +- タイプ: Long +- 単位: ミリ秒 +- 変更可能か: はい +- 説明: グローバルロックを取得するためのタイムアウト時間。 +- 導入バージョン: - +##### checkpoint_only_on_leader + +- デフォルト値: false +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: `true` の場合、CheckpointController は leader FE のみをチェックポイントワーカーとして選択します。`false` の場合、コントローラーは任意の frontend を選択でき、ヒープ使用率が低いノードを優先します。`false` の場合、ワーカーは最近の失敗時間と `heapUsedPercent` (leader は選択を避けるために無限の使用量として扱われます) でソートされます。クラスタースナップショットメタデータを必要とする操作の場合、コントローラーはこのフラグに関係なく、すでに leader の選択を強制しています。`true` を有効にすると、チェックポイントの作業が leader に集中します (よりシンプルですが、leader の CPU/メモリとネットワーク負荷が増加します)。`false` のままにすると、チェックポイントの負荷が負荷の少ない FE に分散されます。この設定は、ワーカーの選択と、`checkpoint_timeout_seconds` などのタイムアウトや、`thrift_rpc_timeout_ms` などの RPC 設定との相互作用に影響します。 +- 導入バージョン: v3.4.0, v3.5.0 +##### checkpoint_timeout_seconds + +- デフォルト値: 24 * 3600 +- タイプ: Long +- 単位: 秒 +- 変更可能: はい +- 説明: leader の CheckpointController がチェックポイントワーカーがチェックポイントを完了するのを待つ最大時間(秒単位)。コントローラはこの値をナノ秒に変換し、ワーカーの結果キューをポーリングします。このタイムアウト内に正常な完了が受信されない場合、チェックポイントは失敗として扱われ、createImage は失敗を返します。この値を大きくすると、実行時間の長いチェックポイントに対応できますが、障害検出とそれに続くイメージの伝播が遅れます。値を小さくすると、より迅速なフェイルオーバー/再試行が可能になりますが、低速なワーカーに対して誤ったタイムアウトが発生する可能性があります。この設定は、チェックポイントの作成中の `CheckpointController` での待機期間のみを制御し、ワーカーの内部チェックポイントの動作は変更しません。 +- 導入バージョン: v3.4.0, v3.5.0 +##### db_used_data_quota_update_interval_secs + +- デフォルト: 300 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: データベースの使用済みデータクォータが更新される間隔。 StarRocks は、ストレージ消費量を追跡するために、すべてのデータベースの使用済みデータクォータを定期的に更新します。この値は、クォータの適用とメトリクスの収集に使用されます。システム負荷の過剰を防ぐため、許可される最小間隔は 30 秒です。 30 未満の値は拒否されます。 +- 導入: - +##### drop_backend_after_decommission + +- デフォルト値: true +- 型: Boolean +- 単位: - +- 変更可能か: Yes +- 説明: BE の廃止後に BE を削除するかどうか。 `TRUE` は、BE が廃止された直後に削除されることを示します。 `FALSE` は、BE が廃止された後に削除されないことを示します。 +- 導入: - +##### edit_log_port + +- デフォルト値: 9010 +- タイプ: Int +- 単位: - +- 変更可能かどうか: いいえ +- 説明: クラスタ内の Leader 、 Follower 、 Observer FE 間の通信に使用されるポートです。 +- 導入バージョン: - +##### edit_log_roll_num + +- デフォルト値: 50000 +- タイプ: Int +- 単位: - +- 変更可能か: Yes +- 説明: メタデータログエントリがログファイルに書き込まれる前に書き込むことができる、メタデータログエントリの最大数。このパラメータは、ログファイルのサイズを制御するために使用されます。新しいログファイルはBDBJEデータベースに書き込まれます。 +- 導入バージョン: - +##### edit_log_type + +- デフォルト: BDB +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: 生成できるエディットログのタイプ。値を `BDB` に設定します。 +- 導入: - +##### enable_background_refresh_connector_metadata + +- デフォルト値: v3.0 以降では true 、v2.5 では false +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: Hive メタデータキャッシュの定期的なリフレッシュを有効にするかどうか。 有効にすると、StarRocks は Hive クラスタのメタストア (Hive Metastore または AWS Glue) をポーリングし、頻繁にアクセスされる Hive catalog のキャッシュされたメタデータをリフレッシュして、データの変更を認識します。 `true` は Hive メタデータキャッシュのリフレッシュを有効にすることを示し、 `false` は無効にすることを示します。 +- 導入バージョン: v2.5.5 +##### enable_collect_query_detail_info + +- デフォルト: false +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: クエリのプロファイルを収集するかどうか。このパラメータが `TRUE` に設定されている場合、システムはクエリのプロファイルを収集します。このパラメータが `FALSE` に設定されている場合、システムはクエリのプロファイルを収集しません。 +- 導入: - +##### enable_create_partial_partition_in_batch + +- デフォルト値: false +- 型: boolean +- 単位: - +- 変更可能か: Yes +- 説明: この項目が `false` (デフォルト) に設定されている場合、StarRocks は、バッチで作成されたレンジパーティションが標準の時間単位の境界に揃うように強制します。ギャップの作成を避けるために、非整列の範囲は拒否されます。この項目を `true` に設定すると、その整列チェックが無効になり、部分的な (非標準の) パーティションをバッチで作成できるようになります。これにより、ギャップや誤ったパーティション範囲が生じる可能性があります。部分的なバッチパーティションが意図的に必要な場合、および関連するリスクを受け入れる場合にのみ、`true` に設定する必要があります。 +- 導入バージョン: v3.2.0 +##### enable_internal_sql + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能か: No +- 説明: この項目が `true` に設定されている場合、内部コンポーネント (例えば、SimpleExecutor) によって実行される内部 SQL ステートメントは保持され、内部監査またはログメッセージに書き込まれます (また、`enable_sql_desensitize_in_log` が設定されている場合は、さらに非公開化できます)。`false` に設定されている場合、内部 SQL テキストは抑制されます。フォーマットコード (SimpleExecutor.formatSQL) は "?" を返し、実際のステートメントは内部監査またはログメッセージに出力されません。この構成は、内部ステートメントの実行セマンティクスを変更するものではなく、プライバシーまたはセキュリティのために内部 SQL のロギングと可視性を制御するだけです。 +- 導入バージョン: - +##### enable_legacy_compatibility_for_replication + +- デフォルト値: false +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: レプリケーションのために Legacy Compatibility を有効にするかどうかを指定します。 StarRocks は古いバージョンと新しいバージョンで動作が異なる場合があり、クロス クラスタ間でのデータ移行時に問題が発生する可能性があります。したがって、データ移行を行う前にターゲット クラスタで Legacy Compatibility を有効にし、データ移行が完了したら無効にする必要があります。 `true` は、このモードを有効にすることを示します。 +- 導入バージョン: v3.1.10, v3.2.6 +##### enable_show_materialized_views_include_all_task_runs + +- デフォルト: true +- タイプ: Boolean +- 単位: - +- 変更可能: はい +- 説明: `SHOW MATERIALIZED VIEWS` コマンドに TaskRun がどのように返されるかを制御します。この項目が `false` に設定されている場合、StarRocks はタスクごとに最新の TaskRun のみを返します (互換性のためのレガシーな動作)。`true` (デフォルト) に設定されている場合、`TaskManager` は、同じ開始 TaskRun ID を共有する場合 (例えば、同じジョブに属する場合) にのみ、同じタスクの追加の TaskRun を含めることがあります。これにより、無関係な重複実行が表示されるのを防ぎながら、1 つのジョブに関連付けられた複数のステータスを表示できます。この項目を `false` に設定すると、単一の実行出力を復元したり、デバッグと監視のために複数実行ジョブの履歴を表示したりできます。 +- 導入: v3.3.0, v3.4.0, v3.5.0 +##### enable_statistics_collect_profile + +- デフォルト: false +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: 統計クエリのプロファイルを生成するかどうか。この項目を `true` に設定すると、StarRocks がシステム統計に関するクエリのクエリプロファイルを生成できるようになります。 +- 導入: v3.1.5 +##### enable_table_name_case_insensitive + +- デフォルト: false +- タイプ: Boolean +- 単位: - +- 変更可能か: No +- 説明: catalog 名、データベース名、テーブル名、ビュー名、およびマテリアライズドビュー名の大文字と小文字を区別しない処理を有効にするかどうか。現在、テーブル名は大文字と小文字が区別されるのがデフォルトです。 + - この機能を有効にすると、関連するすべての名前が小文字で保存され、これらの名前を含むすべての SQL コマンドは自動的に小文字に変換されます。 + - この機能は、クラスタの作成時にのみ有効にできます。**クラスタの起動後、この構成の値は、いかなる手段によっても変更できません**。変更しようとするとエラーが発生します。FE は、この構成項目の値がクラスタの初回起動時と一致しないことを検出すると、起動に失敗します。 + - 現在、この機能は JDBC catalog およびテーブル名をサポートしていません。JDBC または ODBC データソースで大文字と小文字を区別しない処理を実行する場合は、この機能を有効にしないでください。 +- 導入: v4.0 +##### enable_task_history_archive + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: 有効にすると、完了したタスク実行レコードは永続的なタスク実行履歴テーブルにアーカイブされ、編集ログに記録されるため、(`lookupHistory`、`lookupHistoryByTaskNames`、`lookupLastJobOfTasks`などの)検索にはアーカイブされた結果が含まれます。アーカイブは FE leader によって実行され、単体テスト中(`FeConstants.runningUnitTest`)はスキップされます。有効にすると、インメモリの有効期限と強制 GC パスはバイパスされるため(コードは `removeExpiredRuns` および `forceGC` から早期に返されます)、保持/削除は `task_runs_ttl_second` および `task_runs_max_history_number` の代わりに永続的なアーカイブによって処理されます。無効にすると、履歴はメモリに残り、これらの構成によってプルーニングされます。 +- 導入バージョン: v3.3.1, v3.4.0, v3.5.0 +##### enable_task_run_fe_evaluation + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: 有効にすると、FE はシステムテーブル `task_runs` に対して、`TaskRunsSystemTable.supportFeEvaluation` 内でローカル評価を実行します。 FE 側の評価は、カラムと定数を比較する連言等価述語に対してのみ許可され、カラム `QUERY_ID` と `TASK_NAME` に限定されます。これを有効にすると、広範なスキャンや追加のリモート処理を回避することで、対象を絞ったルックアップのパフォーマンスが向上します。無効にすると、プランナーは `task_runs` の FE 評価をスキップするため、述語のプルーニングが減少し、それらのフィルターのクエリレイテンシーに影響を与える可能性があります。 +- 導入バージョン: v3.3.13, v3.4.3, v3.5.0 +##### heartbeat_mgr_blocking_queue_size + +- デフォルト値: 1024 +- タイプ: Int +- 単位: - +- 変更可能か: いいえ +- 説明: Heartbeat Managerによって実行されるハートビートタスクを格納するブロッキングキューのサイズ。 +- 導入: - +##### heartbeat_mgr_threads_num + +- デフォルト値: 8 +- タイプ: Int +- 単位: - +- 変更可能か: No +- 説明: Heartbeat Manager が heartbeat タスクを実行するために実行できるスレッド数。 +- 導入バージョン: - +##### ignore_materialized_view_error + +- デフォルト値: false +- 型: Boolean +- 単位: - +- 変更可能か: Yes +- 説明: マテリアライズドビューのエラーによって発生するメタデータ例外を FE が無視するかどうか。マテリアライズドビューのエラーによって FE の起動に失敗する場合、このパラメータを `true` に設定すると、FE は例外を無視できます。 +- 導入バージョン: v2.5.10 +##### ignore_meta_check + +- デフォルト: false +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: Leader FE 以外の FE が、Leader FE からのメタデータのギャップを無視するかどうか。 値が TRUE の場合、Leader FE 以外の FE は Leader FE からのメタデータのギャップを無視し、データ読み取りサービスを提供し続けます。 このパラメータは、Leader FE を長期間停止した場合でも、継続的なデータ読み取りサービスを保証します。 値が FALSE の場合、Leader FE 以外の FE は Leader FE からのメタデータのギャップを無視せず、データ読み取りサービスの提供を停止します。 +- 導入: - +##### ignore_task_run_history_replay_error + +- デフォルト値: false +- タイプ: Boolean +- 単位: - +- 変更可能: はい +- 説明: StarRocks が `information_schema.task_runs` の TaskRun の履歴行をデシリアライズする際、破損または無効な JSON 行があると、通常、デシリアライズは警告をログに記録し、RuntimeException をスローします。この項目が `true` に設定されている場合、システムはデシリアライズエラーをキャッチし、不正な形式のレコードをスキップし、クエリを失敗させる代わりに残りの行の処理を続行します。これにより、`information_schema.task_runs` クエリは `_statistics_.task_run_history` テーブル内の不正なエントリを許容できるようになります。有効にすると、明示的なエラーを表示する代わりに、破損した履歴レコードがサイレントに削除される(潜在的なデータ損失)ことに注意してください。 +- 導入バージョン: v3.3.3, v3.4.0, v3.5.0 +##### lock_checker_interval_second + +- デフォルト値: 30 +- タイプ: long +- 単位: 秒 +- 変更可能: はい +- 説明: LockChecker FE デーモン("deadlock-checker"という名前)の実行間隔(秒単位)。このデーモンは、デッドロックの検出と低速ロックのスキャンを実行します。設定された値に1000を掛けて、タイマーをミリ秒単位で設定します。この値を小さくすると、検出の遅延は減少しますが、スケジューリングとCPUのオーバーヘッドが増加します。大きくすると、オーバーヘッドは減少しますが、検出と低速ロックのレポートが遅れます。デーモンは実行ごとに間隔をリセットするため、変更は実行時に有効になります。この設定は、`lock_checker_enable_deadlock_check`(デッドロックチェックを有効にする)および `slow_lock_threshold_ms`(低速ロックの定義)と連携します。 +- 導入バージョン: v3.2.0 +##### master_sync_policy + +- デフォルト: SYNC +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: leader FE がログをディスクにフラッシュする際のポリシー。このパラメータは、現在の FE が leader FE である場合にのみ有効です。有効な値は次のとおりです。 + - `SYNC`: トランザクションがコミットされると、ログエントリが生成され、同時にディスクにフラッシュされます。 + - `NO_SYNC`: トランザクションがコミットされる際に、ログエントリの生成とフラッシュが同時に行われません。 + - `WRITE_NO_SYNC`: トランザクションがコミットされると、ログエントリは同時に生成されますが、ディスクにはフラッシュされません。 + + フォロワーFEを1つだけデプロイしている場合は、このパラメータを `SYNC` に設定することをお勧めします。3つ以上のフォロワーFEをデプロイしている場合は、このパラメータと `replica_sync_policy` の両方を `WRITE_NO_SYNC` に設定することをお勧めします。 + +- 導入: - +##### max_bdbje_clock_delta_ms + +- デフォルト値: 5000 +- タイプ: Long +- 単位: ミリ秒 +- 変更可能か: いいえ +- 説明: StarRocks クラスタ内の leader FE と follower FE または observer FE 間で許容される最大のクロックオフセットです。 +- 導入バージョン: - +##### meta_delay_toleration_second + +- デフォルト値: 300 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: follower FE および observer FE 上のメタデータが、 leader FE 上のメタデータから遅れることのできる最大時間。単位は秒です。この時間を超えると、 leader でない FE はサービスの提供を停止します。 +- 導入: - +##### meta_dir + +- デフォルト値: StarRocksFE.STARROCKS_HOME_DIR + "/meta" +- タイプ: String +- 単位: - +- 変更可能か: いいえ +- 説明: メタデータを格納するディレクトリ。 +- 導入: - +##### metadata_ignore_unknown_operation_type + +- デフォルト値: false +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: 不明なログIDを無視するかどうか。 FEがロールバックされると、以前のバージョンのFEは一部のログIDを認識できない場合があります。 値が `TRUE` の場合、FEは不明なログIDを無視します。 値が `FALSE` の場合、FEは終了します。 +- 導入バージョン: - +##### profile_info_format + +- デフォルト値: default +- 型: String +- 単位: - +- 変更可能: Yes +- 説明: システムによって出力される Profile の形式です。有効な値は、`default` と `json` です。`default` に設定すると、Profile はデフォルトの形式になります。`json` に設定すると、システムは Profile を JSON 形式で出力します。 +- 導入: v2.5 +##### replica_ack_policy + +- デフォルト: SIMPLE_MAJORITY +- タイプ: String +- 単位: - +- 変更可能: いいえ +- 説明: ログエントリが有効と見なされるためのポリシー。デフォルト値の `SIMPLE_MAJORITY` は、過半数の follower FE が ACK メッセージを返した場合に、ログエントリが有効と見なされることを指定します。 +- 導入: - +##### replica_sync_policy + +- デフォルト: SYNC +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: follower FE がログをディスクにフラッシュする際のポリシー。このパラメータは、現在の FE が follower FE である場合にのみ有効です。有効な値: + - `SYNC`: トランザクションがコミットされると、ログエントリが生成され、同時にディスクにフラッシュされます。 + - `NO_SYNC`: トランザクションがコミットされる際に、ログエントリの生成とフラッシュが同時に行われません。 + - `WRITE_NO_SYNC`: トランザクションがコミットされると、ログエントリは同時に生成されますが、ディスクにはフラッシュされません。 +- 導入: - +##### start_with_incomplete_meta + +- デフォルト値: false +- タイプ: boolean +- 単位: - +- 変更可能: いいえ +- 説明: trueの場合、イメージデータは存在するが、Berkeley DB JE (BDB) ログファイルがないか破損している場合に、FE は起動を許可します。 `MetaHelper.checkMetaDir()` は、このフラグを使用して、対応する BDB ログなしでイメージから起動するのを防ぐ安全チェックをバイパスします。この方法で起動すると、古いまたは一貫性のないメタデータが生成される可能性があり、緊急リカバリにのみ使用する必要があります。 `RestoreClusterSnapshotMgr` は、クラスタースナップショットを復元する際に、このフラグを一時的に true に設定し、ロールバックします。また、このコンポーネントは、復元中に `bdbje_reset_election_group` を切り替えます。通常操作では有効にしないでください。破損した BDB データからリカバリする場合、またはイメージベースのスナップショットを明示的に復元する場合にのみ有効にしてください。 +- 導入バージョン: v3.2.0 +##### table_keeper_interval_second + +- デフォルト値: 30 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: TableKeeper デーモンの実行間隔(秒単位)。TableKeeperDaemon はこの値(1000倍)を使用して内部タイマーを設定し、履歴テーブルの存在、正しいテーブルプロパティ(レプリケーション数)、およびパーティション TTL の更新を保証する keeper タスクを定期的に実行します。このデーモンは leader ノードでのみ動作し、`table_keeper_interval_second` が変更されると setInterval を介してランタイム間隔を更新します。スケジュール頻度と負荷を減らすには値を大きくし、欠落または古い履歴テーブルへの対応を速めるには値を小さくします。 +- 導入バージョン: v3.3.1, v3.4.0, v3.5.0 +##### task_runs_ttl_second + +- デフォルト値: 7 * 24 * 3600 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: タスク実行履歴の Time-To-Live (TTL) を制御します。この値を小さくすると、履歴の保持期間が短くなり、メモリ/ディスクの使用量が削減されます。大きくすると、履歴の保持期間が長くなりますが、リソースの使用量が増加します。予測可能な保持とストレージの動作のために、`task_runs_max_history_number` および `enable_task_history_archive` と共に調整してください。 +- 導入バージョン: v3.2.0 +##### task_ttl_second + +- デフォルト: 24 * 3600 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: タスクのTime-to-live (TTL)。手動タスク(スケジュールが設定されていない場合)、TaskBuilderはこの値を使用してタスクの `expireTime` を計算します(`expireTime = now + task_ttl_second * 1000L`)。TaskRunは、実行のタイムアウトを計算する際に、この値を上限としても使用します。有効な実行タイムアウトは `min(task_runs_timeout_second, task_runs_ttl_second, task_ttl_second)` です。この値を調整すると、手動で作成されたタスクが有効な状態を維持する期間が変わり、タスク実行の最大許容実行時間を間接的に制限できます。 +- 導入バージョン: v3.2.0 +##### thrift_rpc_retry_times + +- デフォルト: 3 +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: Thrift RPC コールが試行する合計回数を制御します。この値は、`ThriftRPCRequestExecutor` (および `NodeMgr` や `VariableMgr` などの呼び出し元) によって、再試行のループ回数として使用されます。つまり、値が 3 の場合、最初の試行を含めて最大 3 回の試行が可能です。`TTransportException` が発生した場合、executor は接続を再開し、この回数まで再試行します。原因が `SocketTimeoutException` である場合、または再開に失敗した場合は再試行しません。各試行は、`thrift_rpc_timeout_ms` で設定された試行ごとのタイムアウトに従います。この値を大きくすると、一時的な接続障害に対する耐性が向上しますが、全体的な RPC レイテンシとリソース使用量が増加する可能性があります。 +- 導入バージョン: v3.2.0 +##### thrift_rpc_strict_mode + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: No +- 説明: Thriftサーバーで使用される TBinaryProtocol の "strict read" モードを制御します。この値は、Thrift サーバースタックの org.apache.thrift.protocol.TBinaryProtocol.Factory への最初の引数として渡され、受信する Thrift メッセージの解析および検証方法に影響します。`true` (デフォルト) の場合、サーバーは厳密な Thrift エンコーディング/バージョンチェックを実施し、設定された `thrift_rpc_max_body_size` の制限を適用します。`false` の場合、サーバーは非 strict (レガシー/寛容) なメッセージ形式を受け入れます。これにより、古いクライアントとの互換性が向上する可能性がありますが、一部のプロトコル検証をバイパスする可能性があります。これは変更不可能であり、相互運用性と解析の安全性に影響するため、実行中のクラスタでこれを変更する場合は注意が必要です。 +- 導入バージョン: v3.2.0 +##### thrift_rpc_timeout_ms + +- デフォルト値: 10000 +- タイプ: Int +- 単位: ミリ秒 +- 変更可能: はい +- 説明: Thrift RPC呼び出しのデフォルトネットワーク/ソケットタイムアウトとして使用されるタイムアウト(ミリ秒単位)。これは、フロントエンドおよびバックエンドプールで使用される `ThriftConnectionPool` でThriftクライアントを作成する際にTSocketに渡され、`ConfigBase` 、`LeaderOpExecutor` 、`GlobalStateMgr` 、`NodeMgr` 、`VariableMgr` 、および `CheckpointWorker` などの場所でRPC呼び出しタイムアウトを計算する際に、操作の実行タイムアウトに追加されます(例:ExecTimeout*1000 + `thrift_rpc_timeout_ms`)。この値を大きくすると、RPC呼び出しはより長いネットワークまたはリモート処理の遅延を許容できます。値を小さくすると、低速なネットワークでのフェイルオーバーが速くなります。この値を変更すると、Thrift RPCを実行するFEコードパス全体で、接続の作成とリクエストの締め切りに影響します。 +- 導入バージョン: v3.2.0 +##### txn_latency_metric_report_groups + +- デフォルト値: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能: はい +- 説明: レポートするトランザクションレイテンシーメトリックグループのカンマ区切りリスト。 ロードタイプは、監視のために論理グループに分類されます。 グループが有効になっている場合、その名前は「type」ラベルとしてトランザクションメトリックに追加されます。 有効な値: `stream_load` 、 `routine_load` 、 `broker_load` 、 `insert` 、および `compaction` (共有データクラスタでのみ利用可能)。 例: `"stream_load,routine_load"` 。 +- 導入バージョン: v4.0 +##### txn_rollback_limit + +- デフォルト値: 100 +- タイプ: Int +- 単位: - +- 変更可能か: いいえ +- 説明: ロールバックできるトランザクションの最大数。 +- 導入バージョン: - +### ユーザー、ロール、および権限 +##### enable_task_info_mask_credential + +- デフォルト: true +- タイプ: Boolean +- 単位: - +- 変更可能: はい +- 説明: trueの場合、StarRocks は、`information_schema.tasks` および `information_schema.task_runs` でタスク SQL 定義から認証情報を削除します。これは、`SqlCredentialRedactor.redact` を `DEFINITION` 列に適用することによって行われます。`information_schema.task_runs` では、定義がタスク実行ステータスから取得されたか、または空の場合にタスク定義ルックアップから取得されたかに関係なく、同じ編集が適用されます。falseの場合、生のタスク定義が返されます(認証情報が公開される可能性があります)。マスキングは CPU/文字列処理の作業であり、タスクまたは task_runs の数が多い場合は時間がかかる可能性があります。編集されていない定義が必要で、セキュリティリスクを受け入れる場合にのみ無効にしてください。 +- 導入バージョン: v3.5.6 +##### privilege_max_role_depth + +- デフォルト値: 16 +- タイプ: Int +- 単位: +- 変更可能: はい +- 説明: ロールの最大のロール深度(継承レベル)です。 +- 導入バージョン: v3.0.0 +##### privilege_max_total_roles_per_user + +- デフォルト値: 64 +- タイプ: Int +- 単位: +- 変更可能: はい +- 説明: ユーザーが持つことができるロールの最大数。 +- 導入バージョン: v3.0.0 +### クエリエンジン +##### brpc_send_plan_fragment_timeout_ms + +- デフォルト値: 60000 +- タイプ: Int +- 単位: ミリ秒 +- 変更可能: はい +- 説明: プランフラグメントを送信する前に BRPC TalkTimeoutController に適用されるタイムアウト(ミリ秒単位)。 `BackendServiceClient.sendPlanFragmentAsync` は、バックエンドの `execPlanFragmentAsync` を呼び出す前にこの値を設定します。これは、アイドル状態の接続を接続プールから借りる際、および送信を実行中に BRPC が待機する時間を制御します。これを超過すると、RPC は失敗し、メソッドの再試行ロジックがトリガーされる可能性があります。競合下で迅速に失敗させるにはこの値を小さくし、一時的なプール枯渇や低速ネットワークを許容するには大きくします。ただし、非常に大きな値は障害検出を遅らせ、リクエストスレッドをブロックする可能性があるため、注意が必要です。 +- 導入バージョン: v3.3.11, v3.4.1, v3.5.0 +##### connector_table_query_trigger_analyze_large_table_interval + +- デフォルト値: 12 * 3600 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: 大規模テーブルのクエリトリガーANALYZEタスクの間隔。 +- 初出バージョン: v3.4.0 +##### connector_table_query_trigger_analyze_max_pending_task_num + +- デフォルト値: 100 +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: FE 上で Pending 状態になっている、クエリトリガーの ANALYZE タスクの最大数。 +- 導入バージョン: v3.4.0 +##### connector_table_query_trigger_analyze_max_running_task_num + +- デフォルト値: 2 +- タイプ: Int +- 単位: - +- 変更可能か: Yes +- 説明: FE 上で Running 状態にある、クエリトリガーの ANALYZE タスクの最大数。 +- 導入バージョン: v3.4.0 +##### connector_table_query_trigger_analyze_small_table_interval + +- デフォルト値: 2 * 3600 +- タイプ: Int +- 単位: Second +- 変更可能: はい +- 説明: 小さいテーブルのクエリトリガーANALYZEタスクの間隔。 +- 導入バージョン: v3.4.0 +##### connector_table_query_trigger_analyze_small_table_rows + +- デフォルト値: 10000000 +- タイプ: Int +- 単位: - +- 変更可能か: はい +- 説明: クエリトリガーANALYZEタスクにおいて、テーブルが小さいテーブルであるかどうかを判断するための閾値。 +- 導入バージョン: v3.4.0 +##### connector_table_query_trigger_task_schedule_interval + +- デフォルト値: 30 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: スケジューラースレッドがクエリトリガーのバックグラウンドタスクをスケジュールする間隔。この項目は、v3.4.0 で導入された `connector_table_query_trigger_analyze_schedule_interval` を置き換えるためのものです。ここで、バックグラウンドタスクとは、v3.4 の `ANALYZE` タスク、および v3.4 以降のバージョンの低基数カラムの辞書の収集タスクを指します。 +- 導入バージョン: v3.4.2 +##### create_table_max_serial_replicas + +- デフォルト値: 128 +- タイプ: Int +- 単位: - +- 変更可能か: はい +- 説明: シリアルに作成するレプリカの最大数。実際のレプリカ数がこの値を超えると、レプリカは同時に作成されます。テーブルの作成に時間がかかる場合は、この値を小さくしてみてください。 +- 導入バージョン: - +##### default_mv_partition_refresh_number + +- デフォルト: 1 +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: マテリアライズドビューのリフレッシュが複数のパーティションに及ぶ場合、このパラメータは、デフォルトで1つのバッチでリフレッシュされるパーティションの数を制御します。 +バージョン3.3.0以降、メモリ不足(OOM)の問題を回避するために、システムはデフォルトで一度に1つのパーティションをリフレッシュします。以前のバージョンでは、デフォルトですべてのパーティションが一度にリフレッシュされていたため、メモリの枯渇やタスクの失敗につながる可能性がありました。ただし、マテリアライズドビューのリフレッシュが多数のパーティションに及ぶ場合、一度に1つのパーティションのみをリフレッシュすると、スケジューリングのオーバーヘッドが過剰になり、全体的なリフレッシュ時間が長くなり、多数のリフレッシュレコードが発生する可能性があることに注意してください。このような場合は、このパラメータを適切に調整して、リフレッシュ効率を向上させ、スケジューリングコストを削減することをお勧めします。 +- 導入: v3.3.0 +##### default_mv_refresh_immediate + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: 非同期マテリアライズドビューの作成直後にリフレッシュするかどうか。この項目が `true` に設定されている場合、新しく作成されたマテリアライズドビューはすぐにリフレッシュされます。 +- 導入バージョン: v3.2.3 +##### dynamic_partition_check_interval_seconds + +- デフォルト値: 600 +- タイプ: Long +- 単位: 秒 +- 変更可能か: はい +- 説明: 新しいデータがチェックされる間隔。新しいデータが検出されると、StarRocks は自動的にそのデータのパーティションを作成します。 +- 導入: - +##### dynamic_partition_enable + +- デフォルト値: true +- 型: Boolean +- 単位: - +- 変更可能か: Yes +- 説明: 動的パーティション化機能を有効にするかどうか。この機能を有効にすると、StarRocks は新しいデータのパーティションを動的に作成し、期限切れのパーティションを自動的に削除して、データの鮮度を確保します。 +- 導入バージョン: - +##### enable_active_materialized_view_schema_strict_check + +- デフォルト値: true +- 型: Boolean +- 単位: - +- 変更可能: はい +- 説明: 非アクティブなマテリアライズドビューをアクティブ化する際に、データ型の長さの一貫性を厳密にチェックするかどうか。この項目が `false` に設定されている場合、ベーステーブルでデータ型の長さが変更されていても、マテリアライズドビューのアクティブ化には影響しません。 +- 導入バージョン: v3.3.4 +##### enable_auto_collect_array_ndv + +- デフォルト値: false +- 型: Boolean +- 単位: - +- 変更可能: Yes +- 説明: ARRAY 型の NDV 情報を自動的に収集するかどうかを指定します。 +- 導入バージョン: v4.0 +##### enable_backup_materialized_view + +- デフォルト値: false +- 型: Boolean +- 単位: - +- 変更可能か: Yes +- 説明: 特定のデータベースをバックアップまたはリストアする際に、非同期マテリアライズドビューの BACKUP および RESTORE を有効にするかどうか。この項目が `false` に設定されている場合、StarRocks は非同期マテリアライズドビューのバックアップをスキップします。 +- 初出: v3.2.0 +##### enable_collect_full_statistic + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: はい +- 説明: 自動的な完全統計収集を有効にするかどうか。この機能はデフォルトで有効になっています。 +- 導入バージョン: - +##### enable_colocate_mv_index + +- デフォルト値: true +- 型: Boolean +- 単位: - +- 変更可能か: はい +- 説明: 同期マテリアライズドビューを作成する際に、同期マテリアライズドビューのインデックスをベーステーブルと同一場所に配置するかどうかを設定します。この項目を `true` に設定すると、tablet sink が同期マテリアライズドビューの書き込みパフォーマンスを向上させます。 +- 導入バージョン: v3.2.0 +##### enable_decimal_v3 + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能か: Yes +- 説明: DECIMAL V3データ型をサポートするかどうか。 +- 導入バージョン: - +##### enable_experimental_mv + +- デフォルト: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: 非同期マテリアライズドビュー機能を有効にするかどうか。 TRUE は、この機能が有効になっていることを示します。 v2.5.2 以降、この機能はデフォルトで有効になっています。 v2.5.2 より前のバージョンでは、この機能はデフォルトで無効になっています。 +- 導入バージョン: v2.4 +##### enable_local_replica_selection + +- デフォルト値: false +- 型: Boolean +- 単位: - +- 変更可能: Yes +- 説明: クエリのためにローカルレプリカを選択するかどうかを指定します。 ローカルレプリカは、ネットワーク転送コストを削減します。 このパラメータがTRUEに設定されている場合、CBO は現在のFEと同じIPアドレスを持つBE上のtabletレプリカを優先的に選択します。 このパラメータが`FALSE`に設定されている場合、ローカルレプリカと非ローカルレプリカの両方を選択できます。 +- 導入: - +##### enable_manual_collect_array_ndv + +- デフォルト値: false +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: ARRAY 型の NDV 情報を手動で収集するかどうかを指定します。 +- 導入バージョン: v4.0 +##### enable_materialized_view + +- デフォルト値: true +- 型: Boolean +- 単位: - +- 変更可能かどうか: Yes +- 説明: マテリアライズドビューの作成を有効にするかどうか。 +- 導入バージョン: - +##### enable_materialized_view_external_table_precise_refresh + +- デフォルト値: true +- 型: Boolean +- 単位: - +- 変更可能: Yes +- 説明: ベーステーブルが外部テーブル(クラウドネイティブではないテーブル)の場合に、マテリアライズドビューのリフレッシュに対する内部最適化を有効にするには、この項目を `true` に設定します。有効にすると、マテリアライズドビューのリフレッシュプロセッサは候補パーティションを計算し、すべてのパーティションではなく、影響を受けるベーステーブルのパーティションのみをリフレッシュするため、I/O とリフレッシュのコストが削減されます。外部テーブルのフルパーティションリフレッシュを強制するには、`false` に設定します。 +- 初出: v3.2.9 +##### enable_materialized_view_metrics_collect + +- デフォルト値: true +- 型: Boolean +- 単位: - +- 変更可能: Yes +- 説明: デフォルトで非同期マテリアライズドビューの監視メトリクスを収集するかどうかを指定します。 +- 導入バージョン: v3.1.11, v3.2.5 +##### enable_materialized_view_spill + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: マテリアライズドビューのリフレッシュタスクで、中間結果のディスクへのスピルを有効にするかどうかを指定します。 +- 導入バージョン: v3.1.1 +##### enable_materialized_view_text_based_rewrite + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: テキストベースのクエリの書き換えをデフォルトで有効にするかどうか。この項目が `true` に設定されている場合、システムは非同期マテリアライズドビューの作成中に抽象構文ツリーを構築します。 +- 導入バージョン: v3.2.5 +##### enable_mv_automatic_active_check + +- デフォルト値: true +- 型: Boolean +- 単位: - +- 変更可能: Yes +- 説明: ベーステーブル(ビュー)が Schema Change を行ったか、削除されて再作成されたために非アクティブに設定された非同期マテリアライズドビューを、システムが自動的にチェックして再アクティブ化するかどうかを設定します。この機能は、ユーザーが手動で非アクティブに設定したマテリアライズドビューを再アクティブ化しないことに注意してください。 +- 導入バージョン: v3.1.6 +##### enable_mv_automatic_repairing_for_broken_base_tables + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: この項目が `true` に設定されている場合、ベースの外部テーブルが削除されて再作成されたり、テーブル識別子が変更されたりすると、StarRocks はマテリアライズドビューのベーステーブルのメタデータを自動的に修復しようとします。修復フローは、マテリアライズドビューのベーステーブル情報を更新し、外部テーブルのパーティションのパーティションレベルの修復情報を収集し、`autoRefreshPartitionsLimit` を尊重しながら、非同期自動リフレッシュマテリアライズドビューのパーティションリフレッシュの決定を促進できます。現在、自動修復は Hive 外部テーブルをサポートしています。サポートされていないテーブルタイプの場合、マテリアライズドビューは非アクティブに設定され、修復例外が発生します。パーティション情報の収集はノンブロッキングであり、エラーはログに記録されます。 +- 導入バージョン: v3.3.19, v3.4.8, v3.5.6 +##### enable_predicate_columns_collection + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能かどうか: はい +- 説明: 述語列の収集を有効にするかどうか。無効にすると、クエリ最適化中に述語列は記録されません。 +- 導入: - +##### enable_query_queue_v2 + +- デフォルト値: true +- タイプ: boolean +- 単位: - +- 変更可能: No +- 説明: trueの場合、FE のスロットベースのクエリスケジューラを Query Queue V2 に切り替えます。このフラグは、スロットマネージャーとトラッカー (例: `BaseSlotManager.isEnableQueryQueueV2` および `SlotTracker#createSlotSelectionStrategy`) によって読み取られ、従来の戦略の代わりに `SlotSelectionStrategyV2` を選択します。`query_queue_v2_xxx` の構成オプションと `QueryQueueOptions` は、このフラグが有効になっている場合にのみ有効になります。v4.1 以降、デフォルト値は `false` から `true` に変更されました。 +- 導入バージョン: v3.3.4, v3.4.0, v3.5.0 +##### enable_sql_blacklist + +- デフォルト: false +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: SQLクエリのブラックリストチェックを有効にするかどうか。この機能を有効にすると、ブラックリストにあるクエリは実行できません。 +- 導入バージョン: - +##### enable_statistic_collect + +- デフォルト値: true +- 型: Boolean +- 単位: - +- 変更可能か: Yes +- 説明: CBO のための統計情報を収集するかどうか。この機能はデフォルトで有効になっています。 +- 導入バージョン: - +##### enable_statistic_collect_on_first_load + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: データロード操作によってトリガーされる、自動統計収集とメンテナンスを制御します。これには以下が含まれます。 + - データが最初にパーティションにロードされる際の統計収集(パーティションのバージョンが2の場合)。 + - 複数パーティションテーブルの空のパーティションにデータがロードされる際の統計収集。 + - INSERT OVERWRITE 操作における統計のコピーと更新。 + + **統計収集タイプの決定ポリシー:** + + - INSERT OVERWRITEの場合: `deltaRatio = |targetRows - sourceRows| / (sourceRows + 1)` + - `deltaRatio < statistic_sample_collect_ratio_threshold_of_first_load` (デフォルト: 0.1) の場合、統計収集は実行されません。既存の統計のみがコピーされます。 + - それ以外の場合、`targetRows > statistic_sample_collect_rows` (デフォルト: 200000) であれば、SAMPLE 統計収集が使用されます。 + - それ以外の場合は、FULL 統計収集が使用されます。 + + - 最初のロードの場合: `deltaRatio = loadRows / (totalRows + 1)` + - `deltaRatio < statistic_sample_collect_ratio_threshold_of_first_load` (デフォルト: 0.1) の場合、統計収集は実行されません。 + - それ以外の場合、`loadRows > statistic_sample_collect_rows` (デフォルト: 200000) であれば、SAMPLE 統計収集が使用されます。 + - それ以外の場合は、FULL 統計収集が使用されます。 + + **同期の振る舞い:** + + - DMLステートメント (INSERT INTO/INSERT OVERWRITE) の場合: テーブルロックを伴う同期モード。ロード操作は、統計収集が完了するまで待機します (最大 `semi_sync_collect_statistic_await_seconds`)。 + - Stream Load および Broker Load の場合: ロックなしの非同期モード。統計収集は、ロード操作をブロックせずにバックグラウンドで実行されます。 + + :::note + この構成を無効にすると、INSERT OVERWRITE の統計メンテナンスを含む、ロードによってトリガーされるすべての統計操作が防止され、テーブルに統計がなくなる可能性があります。新しいテーブルが頻繁に作成され、データが頻繁にロードされる場合、この機能を有効にすると、メモリと CPU のオーバーヘッドが増加します。 + ::: + +- 初出: v3.1 +##### enable_statistic_collect_on_update + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: UPDATEステートメントが自動統計収集をトリガーするかどうかを制御します。 有効にすると、テーブルデータを変更するUPDATE操作は、`enable_statistic_collect_on_first_load`によって制御されるのと同じデータ取り込みベースの統計フレームワークを介して、統計収集をスケジュールできます。 この構成を無効にすると、UPDATEステートメントの統計収集はスキップされますが、ロードによってトリガーされる統計収集の動作は変更されません。 +- 導入バージョン: v3.5.11, v4.0.4 +##### enable_udf + +- デフォルト値: false +- 型: Boolean +- 単位: - +- 変更可能か: No +- 説明: UDF を有効にするかどうか。 +- 導入: - +##### expr_children_limit + +- デフォルト値: 10000 +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: 式に許可される子式の最大数。 +- 導入: - +##### histogram_buckets_size + +- デフォルト値: 64 +- タイプ: Long +- 単位: - +- 変更可能: はい +- 説明: ヒストグラムのデフォルトのバケット数。 +- 導入バージョン: - +##### histogram_max_sample_row_count + +- デフォルト値: 10000000 +- タイプ: Long +- 単位: - +- 変更可能: はい +- 説明: ヒストグラムのために収集する行の最大数。 +- 導入バージョン: - +##### histogram_mcv_size + +- デフォルト値: 100 +- タイプ: Long +- 単位: - +- 変更可能: はい +- 説明: ヒストグラムの最頻値 (MCV) の数。 +- 導入: - +##### histogram_sample_ratio + +- デフォルト: 0.1 +- タイプ: Double +- 単位: - +- 変更可能: Yes +- 説明: ヒストグラムのサンプリング比率。 +- 導入: - +##### http_slow_request_threshold_ms + +- デフォルト値: 5000 +- タイプ: Int +- 単位: ミリ秒 +- 変更可能: はい +- 説明: HTTPリクエストの応答時間が、このパラメータで指定された値を超えた場合、このリクエストを追跡するためのログが生成されます。 +- 導入バージョン: v2.5.15, v3.1.5 +##### lock_checker_enable_deadlock_check + +- デフォルト: false +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: 有効にすると、LockChecker スレッドは ThreadMXBean.findDeadlockedThreads() を使用して JVM レベルのデッドロック検出を実行し、問題のあるスレッドのスタックトレースをログに記録します。このチェックは LockChecker デーモン (頻度は `lock_checker_interval_second` で制御) 内で実行され、詳細なスタック情報をログに書き込みます。これは CPU および I/O を大量に消費する可能性があります。このオプションは、ライブまたは再現可能なデッドロックの問題のトラブルシューティングでのみ有効にしてください。通常の操作で有効にしておくと、オーバーヘッドとログ量が増加する可能性があります。 +- 導入: v3.2.0 +##### low_cardinality_threshold + +- デフォルト値: 255 +- タイプ: Int +- 単位: - +- 変更可能か: いいえ +- 説明: 低基数辞書の閾値。 +- 導入バージョン: v3.5.0 +##### materialized_view_min_refresh_interval + +- デフォルト値: 60 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: 非同期マテリアライズドビューのスケジュールで許可される最小リフレッシュ間隔(秒単位)。時間ベースの間隔でマテリアライズドビューを作成する場合、間隔は秒に変換され、この値よりも小さくすることはできません。そうでない場合、CREATE/ALTER 操作は DDL エラーで失敗します。この値が 0 より大きい場合、チェックが適用されます。制限を無効にするには、0 または負の値に設定します。これにより、過度に頻繁なリフレッシュによる過剰な TaskManager のスケジューリングや FE のメモリ/CPU 使用率の増加を防ぎます。この項目は EVENT_TRIGGERED リフレッシュには適用されません。 +- 導入バージョン: v3.3.0, v3.4.0, v3.5.0 +##### materialized_view_refresh_ascending + +- デフォルト値: false +- 型: Boolean +- 単位: - +- 変更可能: はい +- 説明: この項目が `true` に設定されている場合、マテリアライズドビューのパーティションリフレッシュは、パーティションキーの昇順(最も古いものから最も新しいものへ)でパーティションを反復処理します。`false` (デフォルト)に設定されている場合、システムは降順(最も新しいものから最も古いものへ)で反復処理します。StarRocks は、パーティションリフレッシュの制限が適用される場合に処理するパーティションを選択し、後続の TaskRun 実行のために次の開始/終了パーティション境界を計算するために、リストおよびレンジパーティション化されたマテリアライズドビューリフレッシュロジックの両方でこの項目を使用します。この項目を変更すると、最初にリフレッシュされるパーティションと、次のパーティション範囲の導出方法が変わります。レンジパーティション化されたマテリアライズドビューの場合、スケジューラは新しい開始/終了を検証し、変更によって境界が繰り返される(デッドループ)場合はエラーを発生させるため、この項目は慎重に設定してください。 +- 導入バージョン: v3.3.1, v3.4.0, v3.5.0 +##### max_allowed_in_element_num_of_delete + +- デフォルト値: 10000 +- タイプ: Int +- 単位: - +- 変更可能か: Yes +- 説明: DELETE ステートメントの IN 述語で許可される要素の最大数。 +- 導入バージョン: - +##### max_create_table_timeout_second + +- デフォルト値: 600 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: テーブル作成の最大タイムアウト時間。 +- 導入: - +##### max_distribution_pruner_recursion_depth + +- デフォルト値: 100 +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: パーティションプルーナーで許可される再帰の最大深度。再帰深度を大きくすると、より多くの要素をプルーニングできますが、CPU 消費量も増加します。 +- 導入: - +##### max_partitions_in_one_batch + +- デフォルト値: 4096 +- タイプ: Long +- 単位: - +- 変更可能か: Yes +- 説明: パーティションを一括作成する際に作成できるパーティションの最大数。 +- 導入バージョン: - +##### max_planner_scalar_rewrite_num + +- デフォルト値: 100000 +- タイプ: Long +- 単位: - +- 変更可能か: Yes +- 説明: オプティマイザがスカラー演算子を書き換えることができる最大回数。 +- 導入: - +##### max_query_queue_history_slots_number + +- デフォルト: 0 +- タイプ: Int +- 単位: Slots +- 変更可能: Yes +- 説明: 監視と可観測性のために、クエリキューごとに保持される最近リリースされた(履歴)割り当て済みスロットの数を制御します。`max_query_queue_history_slots_number` が 0 より大きい値に設定されている場合、BaseSlotTracker は、上限を超えた場合に最も古いものを削除しながら、最大でその数の最新にリリースされた LogicalSlot エントリをインメモリキューに保持します。これを有効にすると、getSlots() にこれらの履歴エントリ(最新のものから順)が含まれるようになり、BaseSlotTracker がより豊富な ExtraMessage データのために ConnectContext にスロットを登録しようとし、LogicalSlot.ConnectContextListener がクエリ終了メタデータを履歴スロットにアタッチできるようになります。`max_query_queue_history_slots_number` が 0 以下の場合、履歴メカニズムは無効になります(余分なメモリは使用されません)。可観測性とメモリオーバーヘッドのバランスを取るために、適切な値を使用してください。 +- 導入バージョン: v3.5.0 +##### max_query_retry_time + +- デフォルト値: 2 +- タイプ: Int +- 単位: - +- 変更可能: Yes +- 説明: FE でのクエリ再試行の最大回数。 +- 導入バージョン: - +##### max_running_rollup_job_num_per_table + +- デフォルト: 1 +- タイプ: Int +- 単位: - +- 変更可能: Yes +- 説明: 1つのテーブルに対して並行して実行できるrollupジョブの最大数。 +- 導入: - +##### max_scalar_operator_flat_children + +- デフォルト値:10000 +- タイプ:Int +- 単位:- +- 変更可能かどうか:はい +- 説明:ScalarOperator のフラットな子の最大数。この制限を設定することで、オプティマイザが過剰なメモリを使用するのを防ぐことができます。 +- 導入バージョン:- +##### max_scalar_operator_optimize_depth + +- デフォルト値:256 +- タイプ:Int +- 単位:- +- 変更可能かどうか:はい +- 説明:ScalarOperator の最適化が適用できる最大の深さです。 +- 導入バージョン:- +##### mv_active_checker_interval_seconds + +- デフォルト値: 60 +- タイプ: Long +- 単位: 秒 +- 変更可能: はい +- 説明: バックグラウンドの active_checker スレッドが有効になっている場合、システムはスキーマ変更やベーステーブル (またはビュー) の再構築によって Inactive になったマテリアライズドビューを定期的に検出し、自動的に再アクティブ化します。このパラメータは、チェッカースレッドのスケジュール間隔を秒単位で制御します。デフォルト値はシステム定義です。 +- 導入バージョン: v3.1.6 +##### mv_rewrite_consider_data_layout_mode + +- デフォルト: `enable` +- タイプ: String +- 単位: - +- 変更可能: Yes +- 説明: マテリアライズドビューの書き換えにおいて、最適なマテリアライズドビューを選択する際に、ベーステーブルのデータレイアウトを考慮するかどうかを制御します。有効な値は以下のとおりです。 + - `disable`: 候補となるマテリアライズドビューを選択する際に、データレイアウトの基準を一切使用しません。 + - `enable`: クエリがレイアウトに依存すると認識された場合にのみ、データレイアウトの基準を使用します。 + - `force`: 最適なマテリアライズドビューを選択する際に、常にデータレイアウトの基準を適用します。 + この項目を変更すると、`BestMvSelector` の動作に影響し、物理レイアウトがプランの正確性またはパフォーマンスに影響するかどうかに応じて、書き換えの適用性を向上または拡大できます。 +- 導入: - +##### publish_version_interval_ms + +- デフォルト値: 10 +- タイプ: Int +- 単位: ミリ秒 +- 変更可能か: いいえ +- 説明: リリース検証タスクが発行される時間間隔。 +- 導入バージョン: - +##### query_queue_slots_estimator_strategy + +- デフォルト値: MAX +- タイプ: String +- 単位: - +- 変更可能: Yes +- 説明: `enable_query_queue_v2` が true の場合に、キューベースのクエリに使用されるスロット見積もり戦略を選択します。有効な値は、MBE (memory-based)、PBE (parallelism-based)、MAX (MBE と PBE の最大値を使用)、MIN (MBE と PBE の最小値を使用) です。MBE は、予測されるメモリまたはプランコストを、スロットあたりのメモリターゲットで割った値からスロットを見積もり、`totalSlots` によって上限が設定されます。PBE は、フラグメントの並行性 (スキャン範囲のカウントまたはカーディナリティ / rows-per-slot) と CPU コストベースの計算 (スロットあたりの CPU コストを使用) からスロットを導き出し、結果を [numSlots/2, numSlots] の範囲内に制限します。MAX と MIN は、それぞれ最大値または最小値を取ることによって、MBE と PBE を組み合わせます。設定された値が無効な場合、デフォルト値 (`MAX`) が使用されます。 +- 導入バージョン: v3.5.0 +##### query_queue_v2_concurrency_level + +- デフォルト値: 4 +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: システムの総クエリスロットを計算する際に使用される論理的な並行性「レイヤー」の数を制御します。共有なしモードでは、総スロット数 = `query_queue_v2_concurrency_level` * BE の数 * BE あたりのコア数 (BackendResourceStat から算出) となります。マルチウェアハウスモードでは、実効並行性は max(1, `query_queue_v2_concurrency_level` / 4) にスケールダウンされます。設定値が正でない場合は、`4` として扱われます。この値を変更すると、totalSlots (したがって同時クエリ容量) が増減し、スロットごとのリソースに影響します。memBytesPerSlot は、ワーカーごとのメモリを (ワーカーごとのコア数 * 並行性) で割ることによって算出され、CPU アカウンティングでは `query_queue_v2_cpu_costs_per_slot` が使用されます。クラスタサイズに比例して設定してください。非常に大きな値を設定すると、スロットごとのメモリが減少し、リソースの断片化が発生する可能性があります。 +- 導入バージョン: v3.3.4, v3.4.0, v3.5.0 +##### query_queue_v2_cpu_costs_per_slot + +- デフォルト値: 1000000000 +- タイプ: Long +- 単位: planner CPU cost units +- 変更可能: Yes +- 説明: クエリがプランナのCPUコストから必要とするスロット数を推定するために使用される、スロットあたりのCPUコストの閾値。スケジューラは、スロットをinteger(plan_cpu_costs / `query_queue_v2_cpu_costs_per_slot`)として計算し、その結果を[1, totalSlots]の範囲にクランプします(totalSlotsはクエリキューV2 `V2` パラメータから導出されます)。V2コードは、非正の設定を1に正規化するため(Math.max(1, value))、非正の値は事実上 `1` になります。この値を大きくすると、クエリごとに割り当てられるスロットが減り(より少ない、大きなスロットのクエリが優先されます)、小さくすると、クエリごとのスロットが増えます。並列処理とリソースの粒度を制御するために、`query_queue_v2_num_rows_per_slot` および同時実行設定とともに調整してください。 +- 導入バージョン: v3.3.4, v3.4.0, v3.5.0 +##### query_queue_v2_num_rows_per_slot + +- デフォルト値: 4096 +- タイプ: Int +- 単位: 行 +- 変更可能か: はい +- 説明: クエリごとのスロット数を推定する際に、単一のスケジューリングスロットに割り当てるソース行レコードの目標数。StarRocks は、estimated_slots = (Source Node のカーディナリティ) / `query_queue_v2_num_rows_per_slot` を計算し、その結果を [1, totalSlots] の範囲にクランプし、計算値が非正の場合は最小値 1 を適用します。totalSlots は、利用可能なリソース (おおよそ DOP * `query_queue_v2_concurrency_level` * number_of_workers/BE) から導出されるため、クラスタ/コア数に依存します。この値を大きくすると、スロット数 (各スロットが処理する行数) が減少し、スケジューリングのオーバーヘッドが軽減されます。小さくすると、リソース制限まで並列処理が増加します (より多くの、より小さなスロット)。 +- 導入バージョン: v3.3.4, v3.4.0, v3.5.0 +##### query_queue_v2_schedule_strategy + +- デフォルト: SWRR +- タイプ: String +- 単位: - +- 変更可能: Yes +- 説明: Query Queue V2 が保留中のクエリを順序付けるために使用するスケジューリングポリシーを選択します。サポートされている値(大文字と小文字を区別しない)は、`SWRR`(Smooth Weighted Round Robin)です。これはデフォルトであり、公平な重み付け共有を必要とする混合/ハイブリッドワークロードに適しています。もう一つは `SJF`(Short Job First + Aging)です。これは、短期ジョブを優先し、エージングを使用して starvation を回避します。値は大文字と小文字を区別しない enum ルックアップで解析されます。認識されない値はエラーとしてログに記録され、デフォルトのポリシーが使用されます。この構成は、Query Queue V2 が有効になっている場合にのみ動作に影響し、`query_queue_v2_concurrency_level` などの V2 サイズ設定と相互作用します。 +- 導入バージョン: v3.3.12, v3.4.2, v3.5.0 +##### semi_sync_collect_statistic_await_seconds + +- デフォルト値: 30 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: DML操作 (INSERT INTO および INSERT OVERWRITE ステートメント) 中の準同期統計収集の最大待機時間。 Stream Load および Broker Load は非同期モードを使用するため、この構成の影響を受けません。統計収集時間がこの値を超えると、ロード操作は収集の完了を待たずに続行されます。この構成は、`enable_statistic_collect_on_first_load` と連携して動作します。 +- 導入バージョン: v3.1 +##### slow_query_analyze_threshold + +- デフォルト: 5 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: クエリフィードバックの分析をトリガーするクエリの実行時間のしきい値。 +- 導入: v3.4.0 +##### statistic_analyze_status_keep_second + +- デフォルト値: 3 * 24 * 3600 +- タイプ: Long +- 単位: 秒 +- 変更可能か: はい +- 説明: 収集タスクの履歴を保持する期間。デフォルト値は3日間です。 +- 導入: - +##### statistic_auto_analyze_end_time + +- デフォルト値: 23:59:59 +- タイプ: String +- 単位: - +- 変更可能: Yes +- 説明: 自動収集の終了時刻。有効な値の範囲: `00:00:00` - `23:59:59`。 +- 導入バージョン: - +##### statistic_auto_analyze_start_time + +- デフォルト値: 00:00:00 +- タイプ: String +- 単位: - +- 変更可能: Yes +- 説明: 自動収集の開始時間。有効な値の範囲: `00:00:00` - `23:59:59`。 +- 導入バージョン: - +##### statistic_auto_collect_ratio + +- デフォルト値: 0.8 +- タイプ: Double +- 単位: - +- 変更可能: はい +- 説明: 自動収集の統計が健全かどうかを判断するための閾値です。統計の健全性がこの閾値を下回ると、自動収集がトリガーされます。 +- 導入バージョン: - +##### statistic_auto_collect_small_table_rows + +- デフォルト値: 10000000 +- タイプ: Long +- 単位: - +- 変更可能か: Yes +- 説明: 自動収集時に、外部データソース (Hive、Iceberg、Hudi) のテーブルが小さいテーブルであるかどうかを判断するための閾値。テーブルの行数がこの値より少ない場合、テーブルは小さいテーブルと見なされます。 +- 導入バージョン: v3.2 +##### statistic_cache_columns + +- デフォルト値: 100000 +- タイプ: Long +- 単位: - +- 変更可能か: いいえ +- 説明: 統計テーブルにキャッシュできる行数。 +- 導入バージョン: - +##### statistic_cache_thread_pool_size + +- デフォルト値: 10 +- タイプ: Int +- 単位: - +- 変更可能か: No +- 説明: 統計キャッシュのリフレッシュに使用されるスレッドプールのサイズ。 +- 導入バージョン: - +##### statistic_collect_interval_sec + +- デフォルト値: 5 * 60 +- タイプ: Long +- 単位: 秒 +- 変更可能: はい +- 説明: 自動収集中のデータ更新をチェックする間隔。 +- 導入: - +##### statistic_max_full_collect_data_size + +- デフォルト値: 100 * 1024 * 1024 * 1024 +- タイプ: Long +- 単位: バイト +- 変更可能: はい +- 説明: 統計の自動収集のためのデータサイズ閾値。合計サイズがこの値を超えると、完全な収集の代わりにサンプル収集が実行されます。 +- 導入バージョン: - +##### statistic_sample_collect_rows + +- デフォルト値: 200000 +- タイプ: Long +- 単位: - +- 変更可能: Yes +- 説明: データロード時に統計情報を収集する際、SAMPLE 統計情報の収集と FULL 統計情報の収集を切り替えるための行数しきい値です。ロードまたは変更された行数がこのしきい値 (デフォルト 200,000) を超える場合、SAMPLE 統計情報の収集が使用されます。それ以外の場合は、FULL 統計情報の収集が使用されます。この設定は、`enable_statistic_collect_on_first_load` および `statistic_sample_collect_ratio_threshold_of_first_load` と組み合わせて使用します。 +- 導入バージョン: - +##### statistic_update_interval_sec + +- デフォルト値: 24 * 60 * 60 +- タイプ: Long +- 単位: 秒 +- 変更可能: はい +- 説明: 統計情報のキャッシュが更新される間隔。 +- 導入バージョン: - +##### task_check_interval_second + +- デフォルト値: 60 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: タスクのバックグラウンドジョブの実行間隔。GlobalStateMgr はこの値を使用して TaskCleaner FrontendDaemon をスケジュールし、`doTaskBackgroundJob()` を呼び出します。この値に 1000 を掛けて、デーモンの間隔をミリ秒単位で設定します。値を小さくすると、バックグラウンドメンテナンス(タスクのクリーンアップ、チェック)の実行頻度が高まり、反応が速くなりますが、CPU/IO のオーバーヘッドが増加します。値を大きくすると、オーバーヘッドは減少しますが、クリーンアップと古いタスクの検出が遅れます。メンテナンスの応答性とリソース使用率のバランスを取るために、この値を調整してください。 +- 導入バージョン: v3.2.0 +##### task_min_schedule_interval_s + +- デフォルト値: 10 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: SQLレイヤーによってチェックされるタスクスケジュールの、許可される最小スケジュール間隔(秒単位)。タスクが送信されると、TaskAnalyzer はスケジュール期間を秒に変換し、期間が `task_min_schedule_interval_s` より小さい場合、ERR_INVALID_PARAMETER で送信を拒否します。これにより、実行頻度が高すぎるタスクの作成を防ぎ、スケジューラを高頻度タスクから保護します。スケジュールに明示的な開始時間がない場合、TaskAnalyzer は開始時間を現在のエポック秒に設定します。 +- 導入バージョン: v3.3.0, v3.4.0, v3.5.0 +##### task_runs_timeout_second + +- デフォルト値: 4 * 3600 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: TaskRun のデフォルトの実行タイムアウト(秒単位)。 この項目は、TaskRun の実行時にベースラインのタイムアウトとして使用されます。 タスク実行のプロパティに、正の整数値を持つセッション変数 `query_timeout` または `insert_timeout` が含まれている場合、ランタイムはそのセッションタイムアウトと `task_runs_timeout_second` のうち大きい方の値を使用します。 その後、有効なタイムアウトは、設定された `task_runs_ttl_second` および `task_ttl_second` を超えないように制限されます。 この項目を設定して、タスクの実行時間を制限します。 非常に大きな値は、タスク/タスク実行の TTL 設定によってクリップされる場合があります。 +- 導入: - +### ロードとアンロード +##### broker_load_default_timeout_second + +- デフォルト値: 14400 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: Broker Load ジョブのタイムアウト期間。 +- 導入: - +##### desired_max_waiting_jobs + +- デフォルト: 1024 +- タイプ: Int +- 単位: - +- 変更可能: Yes +- 説明: FE における保留中のジョブの最大数。この数は、テーブル作成、データロード、スキーマ変更ジョブなど、すべてのジョブを指します。FE 内の保留中のジョブ数がこの値に達すると、FE は新しいロードリクエストを拒否します。このパラメータは、非同期ロードにのみ適用されます。v2.5 以降、デフォルト値は 100 から 1024 に変更されました。 +- 導入バージョン: - +##### disable_load_job + +- デフォルト: false +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: クラスタでエラーが発生した場合に、ロードを無効にするかどうか。これにより、クラスタエラーによる損失を防ぎます。デフォルト値は `FALSE` で、ロードが無効にならないことを示します。`TRUE` は、ロードが無効になり、クラスタが読み取り専用状態になることを示します。 +- 導入: - +##### empty_load_as_error + +- デフォルト値: true +- 型: Boolean +- 単位: - +- 変更可能か: Yes +- 説明: データがロードされない場合に、エラーメッセージ「all partitions have no load data」を返すかどうか。有効な値は次のとおりです。 + - `true`: データがロードされない場合、システムは失敗メッセージを表示し、エラー「all partitions have no load data」を返します。 + - `false`: データがロードされない場合、システムはエラーではなく、成功メッセージを表示し、OKを返します。 +- 導入: - +##### enable_file_bundling + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: クラウドネイティブテーブルに対して File Bundling 最適化を有効にするかどうかを指定します。この機能を有効にする(`true` に設定する)と、ロード、Compaction、または Publish 操作によって生成されたデータファイルが自動的にバンドルされ、外部ストレージシステムへの高頻度アクセスによって発生する API コストが削減されます。CREATE TABLE プロパティ `file_bundling` を使用して、テーブルレベルでこの動作を制御することもできます。詳細な手順については、[CREATE TABLE](../../sql-reference/sql-statements/table_bucket_part_index/CREATE_TABLE.md) を参照してください。 +- 導入バージョン: v4.0 +##### enable_routine_load_lag_metrics + +- デフォルト: false +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: Routine Load Kafka パーティションオフセットのラグメトリクスを収集するかどうかを指定します。この項目を `true` に設定すると、Kafka API を呼び出してパーティションの最新のオフセットを取得することに注意してください。 +- 導入バージョン: - +##### enable_sync_publish + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: ロードトランザクションのパブリッシュフェーズで、applyタスクを同期的に実行するかどうかを指定します。このパラメータは、主キーテーブルにのみ適用されます。有効な値は次のとおりです。 + - `TRUE` (デフォルト): applyタスクは、ロードトランザクションのパブリッシュフェーズで同期的に実行されます。これは、applyタスクが完了した後にのみロードトランザクションが成功として報告され、ロードされたデータを実際にクエリできることを意味します。タスクが一度に大量のデータをロードする場合、または頻繁にデータをロードする場合、このパラメータを `true` に設定すると、クエリパフォーマンスと安定性が向上しますが、ロードのレイテンシが増加する可能性があります。 + - `FALSE`: applyタスクは、ロードトランザクションのパブリッシュフェーズで非同期的に実行されます。これは、applyタスクが送信された後、ロードトランザクションが成功として報告されることを意味しますが、ロードされたデータをすぐにクエリすることはできません。この場合、同時実行クエリは、applyタスクが完了するか、タイムアウトになるまで待機する必要があります。タスクが一度に大量のデータをロードする場合、または頻繁にデータをロードする場合、このパラメータを `false` に設定すると、クエリパフォーマンスと安定性に影響を与える可能性があります。 +- 導入バージョン: v3.2.0 +##### export_checker_interval_second + +- デフォルト: 5 +- タイプ: Int +- 単位: 秒 +- 変更可能か: いいえ +- 説明: データロードジョブがスケジュールされる時間間隔。 +- 導入: - +##### export_max_bytes_per_be_per_task + +- デフォルト値: 268435456 +- タイプ: Long +- 単位: バイト +- 変更可能: はい +- 説明: 単一のデータアンロードタスクによって、単一の BE からエクスポートできるデータの最大量。 +- 導入: - +##### export_running_job_num_limit + +- デフォルト値: 5 +- タイプ: Int +- 単位: - +- 変更可能か: Yes +- 説明: 並行して実行できるデータエクスポートタスクの最大数。 +- 導入バージョン: - +##### export_task_default_timeout_second + +- デフォルト値: 2 * 3600 +- タイプ: Int +- 単位: 秒 +- 変更可能か: はい +- 説明: データエクスポートタスクのタイムアウト時間。 +- 導入: - +##### export_task_pool_size + +- デフォルト: 5 +- タイプ: Int +- 単位: - +- 変更可能か: No +- 説明: データアンロードタスクのスレッドプールのサイズ。 +- 導入: - +##### external_table_commit_timeout_ms + +- デフォルト値: 10000 +- タイプ: Int +- 単位: ミリ秒 +- 変更可能: はい +- 説明: StarRocks の外部テーブルへの書き込みトランザクションのコミット(公開)のタイムアウト時間。デフォルト値 `10000` は、10 秒のタイムアウト時間を示します。 +- 導入: - +##### finish_transaction_default_lock_timeout_ms + +- デフォルト値: 1000 +- タイプ: Int +- 単位: ミリ秒 +- 変更可能か: はい +- 説明: トランザクションの完了時に、DB とテーブルのロックを取得する際のデフォルトのタイムアウトです。 +- 導入バージョン: v4.0.0, v3.5.8 +##### history_job_keep_max_second + +- デフォルト値: 7 * 24 * 3600 +- タイプ: Int +- 単位: 秒 +- 変更可能か: はい +- 説明: スキーマ変更ジョブなど、履歴ジョブを保持できる最大期間。 +- 導入バージョン: - +##### insert_load_default_timeout_second + +- デフォルト値: 3600 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: データのロードに使用される INSERT INTO ステートメントのタイムアウト時間。 +- 導入バージョン: - +##### label_clean_interval_second + +- デフォルト値: 4 * 3600 +- タイプ: Int +- 単位: 秒 +- 変更可能: いいえ +- 説明: ラベルがクリーンアップされる時間間隔。単位は秒です。履歴ラベルがタイムリーにクリーンアップされるように、短い時間間隔を指定することをお勧めします。 +- 導入: - +##### label_keep_max_num + +- デフォルト値: 1000 +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: 一定期間内に保持できるロードジョブの最大数。この数を超えると、過去のジョブの情報は削除されます。 +- 導入: - +##### label_keep_max_second + +- デフォルト値: 3 * 24 * 3600 +- タイプ: Int +- 単位: 秒 +- 変更可能か: Yes +- 説明: 完了し、FINISHED または CANCELLED 状態にあるロードジョブのラベルを保持する最大期間(秒単位)。デフォルト値は3日間です。この期間が過ぎると、ラベルは削除されます。このパラメータは、すべてのタイプのロードジョブに適用されます。値が大きすぎると、大量のメモリを消費します。 +- 導入: - +##### load_checker_interval_second + +- デフォルト: 5 +- タイプ: Int +- 単位: 秒 +- 変更可能か: いいえ +- 説明: ロードジョブがローリング方式で処理される時間間隔。 +- 導入: - +##### load_parallel_instance_num + +- デフォルト値: 1 +- タイプ: Int +- 単位: - +- 変更可能か: Yes +- 説明: broker load および stream load 用に、単一ホスト上に作成される並列ロードフラグメントインスタンスの数を制御します。 LoadPlanner は、セッションがアダプティブシンク DOP を有効にしない限り、この値をホストごとの並列処理の次数として使用します。セッション変数 `enable_adaptive_sink_dop` が true の場合、セッションの `sink_degree_of_parallelism` がこの構成をオーバーライドします。シャッフルが必要な場合、この値はフラグメント並列実行(スキャンフラグメントとシンクフラグメントの並列実行インスタンス)に適用されます。シャッフルが不要な場合は、シンクパイプラインの DOP として使用されます。注: ローカルファイルからのロードは、ローカルディスクの競合を避けるために、単一のインスタンス(パイプライン DOP = 1、並列実行 = 1)に強制されます。この数値を増やすと、ホストごとの同時実行性とスループットが向上しますが、CPU、メモリ、I/O の競合が増加する可能性があります。 +- 導入バージョン: v3.2.0 +##### load_straggler_wait_second + +- デフォルト値: 300 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: BE レプリカで許容できる最大のデータロードの遅延時間です。この値を超えると、他のレプリカからデータをクローンするためにクローンが実行されます。 +- 導入バージョン: - +##### loads_history_retained_days + +- デフォルト値: 30 +- タイプ: Int +- 単位: 日 +- 変更可能か: はい +- 説明: 内部テーブル `_statistics_.loads_history` にロード履歴を保持する日数。この値は、テーブル作成時にテーブルプロパティ `partition_live_number` を設定するために使用され、`TableKeeper` に渡されて(最小1にクランプされます)、保持する日次パーティションの数を決定します。この値を増減すると、完了したロードジョブが日次パーティションに保持される期間が調整されます。これは、新しいテーブルの作成とキーパーのプルーニング動作に影響しますが、過去のパーティションを自動的に再作成することはありません。`LoadsHistorySyncer` は、ロード履歴のライフサイクルを管理する際にこの保持に依存します。その同期頻度は、`loads_history_sync_interval_second` によって制御されます。 +- 導入バージョン: v3.3.6, v3.4.0, v3.5.0 +##### loads_history_sync_interval_second + +- デフォルト値: 60 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: `information_schema.loads` から完了したロードジョブの定期的な同期を内部の `_statistics_.loads_history` テーブルにスケジュールするために LoadsHistorySyncer が使用する間隔(秒単位)。この値はコンストラクタで 1000 倍され、FrontendDaemon の間隔を設定します。シンカーは最初の実行をスキップし(テーブル作成を可能にするため)、1 分以上前に完了したロードのみをインポートします。小さい値は DML と executor の負荷を増加させ、大きい値は履歴ロードレコードの利用可能性を遅らせます。ターゲットテーブルのリテンション/パーティション化の動作については、`loads_history_retained_days` を参照してください。 +- 導入バージョン: v3.3.6, v3.4.0, v3.5.0 +##### max_broker_load_job_concurrency + +- デフォルト値: 5 +- エイリアス: async_load_task_pool_size +- タイプ: Int +- 単位: - +- 変更可能か: Yes +- 説明: StarRocks クラスタ内で許可される、同時に実行可能な Broker Load ジョブの最大数。このパラメータは Broker Load に対してのみ有効です。このパラメータの値は、`max_running_txn_num_per_db` の値よりも小さくなければなりません。v2.5 以降、デフォルト値は `10` から `5` に変更されました。 +- 導入バージョン: - +##### max_load_timeout_second + +- デフォルト値: 259200 +- タイプ: Int +- 単位: 秒 +- 変更可能か: はい +- 説明: ロードジョブに許可される最大タイムアウト時間。この制限を超えると、ロードジョブは失敗します。この制限は、すべてのタイプのロードジョブに適用されます。 +- 導入バージョン: - +##### max_routine_load_batch_size + +- デフォルト値: 4294967296 +- タイプ: Long +- 単位: バイト +- 変更可能: はい +- 説明: Routine Load タスクでロードできるデータの最大量。 +- 導入バージョン: - +##### max_routine_load_task_concurrent_num + +- デフォルト: 5 +- タイプ: Int +- 単位: - +- 変更可能か: Yes +- 説明: 各 Routine Load ジョブの同時実行タスクの最大数。 +- 導入: - +##### max_routine_load_task_num_per_be + +- デフォルト値: 16 +- タイプ: Int +- 単位: - +- 変更可能: Yes +- 説明: 各BEにおける同時実行可能な Routine Load タスクの最大数。 v3.1.0以降、このパラメータのデフォルト値は5から16に増加し、BEの静的パラメータ `routine_load_thread_pool_size` (非推奨) の値以下である必要はなくなりました。 +- 導入バージョン: - +##### max_running_txn_num_per_db + +- デフォルト値: 1000 +- タイプ: Int +- 単位: - +- 変更可能: Yes +- 説明: StarRocks クラスタ内の各データベースで実行できるデータロードトランザクションの最大数。デフォルト値は `1000` です。v3.1 以降、デフォルト値は `100` から `1000` に変更されました。データベースで実行されているデータロードトランザクションの実際の数がこのパラメータの値を超えると、新しいデータロードリクエストは処理されません。同期データロードジョブの新しいリクエストは拒否され、非同期データロードジョブの新しいリクエストはキューに入れられます。このパラメータの値を大きくするとシステム負荷が増加するため、推奨しません。 +- 導入バージョン: - +##### max_stream_load_timeout_second + +- デフォルト値: 259200 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: Stream Load ジョブに許可される最大タイムアウト時間。 +- 導入バージョン: - +##### max_tolerable_backend_down_num + +- デフォルト: 0 +- タイプ: Int +- 単位: - +- 変更可能: Yes +- 説明: 許容される障害のある BE ノードの最大数。この数を超えると、Routine Load ジョブは自動的に回復できません。 +- 導入: - +##### min_bytes_per_broker_scanner + +- デフォルト: 67108864 +- タイプ: Long +- 単位: バイト +- 変更可能: はい +- 説明: 1つの Broker Load インスタンスで処理できる最小データ量。 +- 導入: - +##### min_load_timeout_second + +- デフォルト値: 1 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: ロードジョブに許可される最小タイムアウト時間。この制限は、すべてのタイプのロードジョブに適用されます。 +- 導入バージョン: - +##### min_routine_load_lag_for_metrics + +- デフォルト値: 10000 +- タイプ: INT +- 単位: - +- 変更可能: はい +- 説明: モニタリングメトリクスに表示される Routine Load ジョブの最小オフセットラグ。オフセットラグがこの値より大きい Routine Load ジョブがメトリクスに表示されます。 +- 導入バージョン: - +##### period_of_auto_resume_min + +- デフォルト: 5 +- タイプ: Int +- 単位: 分 +- 変更可能: はい +- 説明: Routine Load ジョブが自動的に復旧する間隔。 +- 導入: - +##### prepared_transaction_default_timeout_second + +- デフォルト値: 86400 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: プリペアドトランザクションのデフォルトのタイムアウト期間。 +- 導入: - +##### routine_load_task_consume_second + +- デフォルト値: 15 +- タイプ: Long +- 単位: 秒 +- 変更可能: はい +- 説明: クラスタ内の各 Routine Load タスクがデータを消費する最大時間。 v3.1.0 以降、Routine Load ジョブは、[job_properties](../../sql-reference/sql-statements/loading_unloading/routine_load/CREATE_ROUTINE_LOAD.md#job_properties) に新しいパラメータ `task_consume_second` をサポートしています。このパラメータは、Routine Load ジョブ内の個々のロードタスクに適用され、より柔軟です。 +- 導入バージョン: - +##### routine_load_task_timeout_second + +- デフォルト値: 60 +- タイプ: Long +- 単位: 秒 +- 変更可能: Yes +- 説明: クラスタ内の各 Routine Load タスクのタイムアウト時間。v3.1.0 以降、Routine Load ジョブは、[job_properties](../../sql-reference/sql-statements/loading_unloading/routine_load/CREATE_ROUTINE_LOAD.md#job_properties) に新しいパラメータ `task_timeout_second` をサポートしています。このパラメータは、Routine Load ジョブ内の個々のロードタスクに適用され、より柔軟です。 +- 導入バージョン: - +##### routine_load_unstable_threshold_second + +- デフォルト値: 3600 +- タイプ: Long +- 単位: 秒 +- 変更可能: Yes +- 説明: Routine Loadジョブ内のタスクに遅延が発生した場合、そのRoutine LoadジョブはUNSTABLE状態に設定されます。具体的には、消費されているメッセージのタイムスタンプと現在の時刻の差がこの閾値を超え、かつデータソース内に未消費のメッセージが存在する場合に、UNSTABLE状態となります。 +- 導入バージョン: - +##### spark_dpp_version + +- デフォルト: 1.0.0 +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: 使用される Spark Dynamic Partition Pruning (DPP) のバージョン。 +- 導入: - +##### spark_home_default_dir + +- デフォルト値: StarRocksFE.STARROCKS_HOME_DIR + "/lib/spark2x" +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: Sparkクライアントのルートディレクトリ。 +- 導入バージョン: - +##### spark_launcher_log_dir + +- デフォルト値: sys_log_dir + "/spark_launcher_log" +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: Spark のログファイルを保存するディレクトリです。 +- 導入バージョン: - +##### spark_load_default_timeout_second + +- デフォルト値: 86400 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: 各 Spark Load ジョブのタイムアウト時間。 +- 導入バージョン: - +##### spark_load_submit_timeout_second + +- デフォルト値: 300 +- タイプ: long +- 単位: 秒 +- 変更可能か: いいえ +- 説明: Sparkアプリケーションの送信後、YARNの応答を待つ最大時間(秒単位)。 `SparkLauncherMonitor.LogMonitor` はこの値をミリ秒に変換し、ジョブがUNKNOWN/CONNECTED/SUBMITTED状態のままこのタイムアウトを超えると、監視を停止し、Spark launcherプロセスを強制的に停止します。 `SparkLoadJob` はこの構成をデフォルトとして読み取り、 `LoadStmt.SPARK_LOAD_SUBMIT_TIMEOUT` プロパティを介してロードごとにオーバーライドできます。 YARNのキューイング遅延に対応できる十分に高い値を設定してください。低すぎると正当にキューイングされたジョブが中断される可能性があり、高すぎると障害処理とリソースのクリーンアップが遅れる可能性があります。 +- 導入バージョン: v3.2.0 +##### spark_resource_path + +- デフォルト: 空文字列 +- タイプ: String +- 単位: - +- 変更可能か: いいえ +- 説明: Spark の依存関係パッケージのルートディレクトリ。 +- 導入: - +##### stream_load_default_timeout_second + +- デフォルト値: 600 +- タイプ: Int +- 単位: 秒 +- 変更可能か: はい +- 説明: 各 Stream Load ジョブのデフォルトのタイムアウト時間。 +- 導入バージョン: - +##### stream_load_max_txn_num_per_be + +- デフォルト値: -1 +- タイプ: Int +- 単位: Transactions +- 変更可能: Yes +- 説明: 単一の BE (バックエンド) ホストから受け入れる同時 stream load トランザクションの数を制限します。負でない整数に設定すると、FrontendServiceImpl は BE の現在のトランザクション数 (クライアント IP 別) をチェックし、カウントがこの制限以上の場合、新しい stream load の開始リクエストを拒否します。`<` 0 の値は制限を無効にします (無制限)。このチェックは stream load の開始時に行われ、超過すると `streamload txn num per be exceeds limit` エラーが発生する可能性があります。関連するランタイムの動作では、リクエストのタイムアウトのフォールバックに `stream_load_default_timeout_second` が使用されます。 +- 導入バージョン: v3.3.0, v3.4.0, v3.5.0 +##### stream_load_task_keep_max_num + +- デフォルト値: 1000 +- タイプ: Int +- 単位: - +- 変更可能か: はい +- 説明: StreamLoadMgr がメモリに保持する Stream Load タスクの最大数(すべてのデータベースでグローバル)。追跡対象タスク数 (`idToStreamLoadTask`) がこの閾値を超えると、StreamLoadMgr は最初に `cleanSyncStreamLoadTasks()` を呼び出して完了した同期ストリームロードタスクを削除します。それでもサイズがこの閾値の半分を超えている場合は、`cleanOldStreamLoadTasks(true)` を呼び出して、古いタスクまたは完了したタスクを強制的に削除します。この値を大きくすると、より多くのタスク履歴をメモリに保持できます。小さくすると、メモリ使用量を削減し、クリーンアップをより積極的に行うことができます。この値は、メモリ内の保持のみを制御し、永続化/再生されたタスクには影響しません。 +- 導入バージョン: v3.2.0 +##### stream_load_task_keep_max_second + +- デフォルト値: 3 * 24 * 3600 +- タイプ: Int +- 単位: 秒 +- 変更可能か: はい +- 説明: 完了またはキャンセルされた Stream Load タスクの保持期間。タスクが最終状態に達し、その終了タイムスタンプがこの閾値よりも早い場合 ( `currentMs - endTimeMs > stream_load_task_keep_max_second * 1000` ) 、 `StreamLoadMgr.cleanOldStreamLoadTasks` による削除対象となり、永続化された状態のロード時に破棄されます。 `StreamLoadTask` と `StreamLoadMultiStmtTask` の両方に適用されます。タスクの合計数が `stream_load_task_keep_max_num` を超える場合、クリーンアップがより早くトリガーされる可能性があります (同期タスクは `cleanSyncStreamLoadTasks` によって優先されます) 。履歴/デバッグの容易さとメモリ使用量のバランスを取るために設定します。 +- 導入バージョン: v3.2.0 +##### transaction_clean_interval_second + +- デフォルト値: 30 +- タイプ: Int +- 単位: 秒 +- 変更可能か: いいえ +- 説明: 完了したトランザクションがクリーンアップされる時間間隔。単位は秒です。完了したトランザクションがタイムリーにクリーンアップされるように、短い時間間隔を指定することをお勧めします。 +- 導入バージョン: - +##### transaction_stream_load_coordinator_cache_capacity + +- デフォルト値: 4096 +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: トランザクションラベルからコーディネーターノードへのマッピングを格納するキャッシュの容量。 +- 導入バージョン: - +##### transaction_stream_load_coordinator_cache_expire_seconds + +- デフォルト: 900 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: キャッシュ内のコーディネータマッピングを保持する時間(TTL)。この時間を過ぎると削除されます。 +- 導入: - +##### yarn_client_path + +- デフォルト値: StarRocksFE.STARROCKS_HOME_DIR + "/lib/yarn-client/hadoop/bin/yarn" +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: Yarn クライアントパッケージのルートディレクトリ。 +- 導入: - +##### yarn_config_dir + +- デフォルト値: StarRocksFE.STARROCKS_HOME_DIR + "/lib/yarn-config" +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: Yarn の構成ファイルを格納するディレクトリ。 +- 導入: - +### 統計レポート +##### enable_collect_warehouse_metrics + +- デフォルト: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: この項目が `true` に設定されている場合、システムはウェアハウスごとのメトリクスを収集してエクスポートします。 有効にすると、ウェアハウスレベルのメトリクス (スロット/使用量/可用性) がメトリクス出力に追加され、メトリクスのカーディナリティと収集のオーバーヘッドが増加します。 無効にすると、ウェアハウス固有のメトリクスが省略され、CPU/ネットワークと監視ストレージのコストが削減されます。 +- 導入バージョン: v3.5.0 +##### enable_http_detail_metrics + +- デフォルト: false +- タイプ: boolean +- 単位: - +- 変更可能: Yes +- 説明: trueの場合、HTTPサーバーは詳細なHTTPワーカーメトリクス (特に `HTTP_WORKER_PENDING_TASKS_NUM` ゲージ) を計算して公開します。 これを有効にすると、サーバーはNettyワーカーエグゼキューターを反復処理し、各 `NioEventLoop` で `pendingTasks()` を呼び出して、保留中のタスク数を合計します。無効にすると、そのコストを回避するために、ゲージは0を返します。 この追加の収集は、CPUとレイテンシーに影響を与える可能性があります。デバッグまたは詳細な調査の場合にのみ有効にしてください。 +- 導入バージョン: v3.2.3 +##### proc_profile_collect_time_s + +- デフォルト値: 120 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: 単一のプロセスプロファイル収集の期間(秒単位)。 `proc_profile_cpu_enable` または `proc_profile_mem_enable` が `true` に設定されている場合、AsyncProfiler が開始され、コレクタスレッドはこの期間スリープし、その後プロファイラが停止され、プロファイルが書き込まれます。 値が大きいほど、サンプルカバレッジとファイルサイズが増加しますが、プロファイラのランタイムが長くなり、後続の収集が遅延します。 値が小さいほど、オーバーヘッドは減少しますが、十分なサンプルが生成されない可能性があります。 この値が、`proc_profile_file_retained_days` や `proc_profile_file_retained_size_bytes` などの保持設定と一致していることを確認してください。 +- 導入バージョン: v3.2.12 +### ストレージ +##### alter_table_timeout_second + +- デフォルト値: 86400 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: スキーマ変更 (ALTER TABLE) 操作のタイムアウト時間。 +- 導入バージョン: - +##### capacity_used_percent_high_water + +- デフォルト値: 0.75 +- タイプ: double +- 単位: Fraction (0.0–1.0) +- 変更可能: はい +- 説明: バックエンドのロードスコアを計算する際に使用される、ディスク容量使用率(総容量に対する割合)のhigh-waterしきい値。 `BackendLoadStatistic.calcSore` は `capacity_used_percent_high_water` を使用して `LoadScore.capacityCoefficient` を設定します。バックエンドの使用率が0.5未満の場合、係数は0.5に等しくなります。使用率が `capacity_used_percent_high_water` を超える場合、係数は1.0になります。それ以外の場合、係数は (2 * usedPercent - 0.5) を介して使用率とともに線形に変化します。係数が1.0の場合、ロードスコアは容量の割合によって完全に決定されます。値が低いほど、レプリカ数の重みが増加します。この値を調整すると、バランサーが高ディスク使用率のバックエンドをどの程度積極的にペナルティを科すかが変わります。 +- 導入バージョン: v3.2.0 +##### catalog_trash_expire_second + +- デフォルト値: 86400 +- タイプ: Long +- 単位: 秒 +- 変更可能: はい +- 説明: データベース、テーブル、またはパーティションが削除された後、メタデータを保持できる最長期間。この期間が過ぎると、データは削除され、[RECOVER](../../sql-reference/sql-statements/backup_restore/RECOVER.md) コマンドを使用しても復元できなくなります。 +- 導入バージョン: - +##### check_consistency_default_timeout_second + +- デフォルト値: 600 +- タイプ: Long +- 単位: 秒 +- 変更可能: はい +- 説明: レプリカの整合性チェックのタイムアウト時間。 tablet のサイズに基づいて、このパラメータを設定できます。 +- 導入: - +##### consistency_check_cooldown_time_second + +- デフォルト値: 24 * 3600 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: 同一tabletの整合性チェック間の最小間隔(秒単位)を制御します。 tabletを選択する際、`tablet.getLastCheckTime()` が `(currentTimeMillis - consistency_check_cooldown_time_second * 1000)` より小さい場合にのみ、tabletは適格と見なされます。 デフォルト値 (24 * 3600) は、バックエンドディスクのI/Oを削減するために、1日に1tabletあたり約1回のチェックを強制します。 この値を下げると、チェックの頻度とリソース使用量が増加します。上げると、I/Oは削減されますが、不整合の検出が遅くなります。 この値は、インデックスのtabletリストからクールダウンしたtabletをフィルタリングする際に、グローバルに適用されます。 +- 導入バージョン: v3.5.5 +##### consistency_check_end_time + +- デフォルト: "4" +- タイプ: String +- 単位: 時 (0-23) +- 変更可能: いいえ +- 説明: ConsistencyChecker の作業ウィンドウの終了時間(1日のうちの何時か)を指定します。値はシステムタイムゾーンで SimpleDateFormat("HH") を使用して解析され、0〜23(1桁または2桁)として受け入れられます。 StarRocks は、`consistency_check_start_time` と組み合わせて、整合性チェックジョブをいつスケジュールして追加するかを決定します。 `consistency_check_start_time` が `consistency_check_end_time` より大きい場合、ウィンドウは真夜中をまたぎます(たとえば、デフォルトは `consistency_check_start_time` = "23" から `consistency_check_end_time` = "4")。 `consistency_check_start_time` が `consistency_check_end_time` と等しい場合、チェッカーは実行されません。解析に失敗すると、FE の起動時にエラーがログに記録され、終了するため、有効な時間文字列を指定してください。 +- 導入バージョン: v3.2.0 +##### consistency_check_start_time + +- デフォルト値: "23" +- タイプ: String +- 単位: 時 (00-23) +- 変更可能か: No +- 説明: ConsistencyChecker の作業ウィンドウの開始時間(1日のうちの何時か)を指定します。値はシステムタイムゾーンで SimpleDateFormat("HH") を使用して解析され、0〜23(1桁または2桁)として受け入れられます。 StarRocks は、これを `consistency_check_end_time` と組み合わせて、整合性チェックジョブをいつスケジュールして追加するかを決定します。 `consistency_check_start_time` が `consistency_check_end_time` より大きい場合、ウィンドウは真夜中をまたぎます(たとえば、デフォルトは `consistency_check_start_time` = "23" から `consistency_check_end_time` = "4")。 `consistency_check_start_time` が `consistency_check_end_time` と等しい場合、チェッカーは実行されません。解析に失敗すると、FE の起動時にエラーがログに記録され、終了するため、有効な時間の文字列を指定してください。 +- 導入バージョン: v3.2.0 +##### consistency_tablet_meta_check_interval_ms + +- デフォルト値: 2 * 3600 * 1000 +- タイプ: Int +- 単位: ミリ秒 +- 変更可能か: はい +- 説明: `TabletInvertedIndex` と `LocalMetastore` 間で完全な tablet-meta の整合性スキャンを実行するために、ConsistencyChecker が使用する間隔。 `runAfterCatalogReady` のデーモンは、`現在の時刻 - lastTabletMetaCheckTime` がこの値を超えると、checkTabletMetaConsistency をトリガーします。無効な tablet が最初に検出されると、その `toBeCleanedTime` は `現在時刻 + (consistency_tablet_meta_check_interval_ms / 2)` に設定されるため、実際の削除は後続のスキャンまで遅延します。この値を大きくすると、スキャンの頻度と負荷が軽減されます (クリーンアップが遅くなります)。小さくすると、古い tablet をより迅速に検出して削除できます (オーバーヘッドが高くなります)。 +- 導入バージョン: v3.2.0 +##### default_replication_num + +- デフォルト値: 3 +- タイプ: Short +- 単位: - +- 変更可能: Yes +- 説明: StarRocks でテーブルを作成する際に、各データパーティションのデフォルトのレプリカ数を設定します。この設定は、CREATE TABLE DDL で `replication_num=x` を指定することにより、テーブル作成時に上書きできます。 +- 導入: - +##### enable_auto_tablet_distribution + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: バケット数を自動的に設定するかどうか。 + - このパラメータが `TRUE` に設定されている場合、テーブルの作成時またはパーティションの追加時にバケット数を指定する必要はありません。StarRocks がバケット数を自動的に決定します。 + - このパラメータが `FALSE` に設定されている場合、テーブルの作成時またはパーティションの追加時にバケットを手動で指定する必要があります。テーブルに新しいパーティションを追加するときにバケット数を指定しない場合、新しいパーティションはテーブルの作成時に設定されたバケット数を継承します。ただし、新しいパーティションのバケット数を手動で指定することもできます。 +- 導入バージョン: v2.5.7 +##### enable_experimental_rowstore + +- デフォルト値: false +- 型: Boolean +- 単位: - +- 変更可能: Yes +- 説明: [行と列のハイブリッドストレージ](../../table_design/hybrid_table.md) 機能を有効にするかどうかを指定します。 +- 導入バージョン: v3.2.3 +##### enable_fast_schema_evolution + +- デフォルト値: true +- 型: Boolean +- 単位: - +- 変更可能か: Yes +- 説明: StarRocks クラスタ内のすべてのテーブルに対して、高速スキーマ進化を有効にするかどうかを指定します。有効な値は、`TRUE` および `FALSE` (デフォルト) です。高速スキーマ進化を有効にすると、カラムの追加または削除時のスキーマ変更の速度が向上し、リソースの使用量を削減できます。 +- 導入バージョン: v3.2.0 + +> **NOTE** +> +> - StarRocks 共有データクラスタは、v3.3.0 以降でこのパラメータをサポートしています。 +> - 特定のテーブルに対して高速スキーマ進化を設定する必要がある場合 (特定のテーブルに対して高速スキーマ進化を無効にするなど) は、テーブル作成時にテーブルプロパティ [`fast_schema_evolution`](../../sql-reference/sql-statements/table_bucket_part_index/CREATE_TABLE.md#set-fast-schema-evolution) を設定できます。 +##### enable_online_optimize_table + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能か: Yes +- 説明: StarRocks が最適化ジョブの作成時に、ノンブロッキングのオンライン最適化パスを使用するかどうかを制御します。`enable_online_optimize_table` が true であり、対象テーブルが互換性チェック(パーティション/キー/ソートの指定がない、分散が `RandomDistributionDesc` ではない、ストレージタイプが `COLUMN_WITH_ROW` ではない、レプリケートされたストレージが有効、テーブルがクラウドネイティブテーブルまたはマテリアライズドビューではない)を満たす場合、プランナーは書き込みをブロックせずに最適化を実行するために `OnlineOptimizeJobV2` を作成します。false の場合、または互換性の条件が失敗した場合、StarRocks は `OptimizeJobV2` にフォールバックし、最適化中に書き込み操作をブロックする可能性があります。 +- 導入バージョン: v3.3.3, v3.4.0, v3.5.0 +##### enable_strict_storage_medium_check + +- デフォルト値: false +- タイプ: Boolean +- 単位: - +- 変更可能か: Yes +- 説明: ユーザーがテーブルを作成する際に、FE が BE の記憶媒体を厳密にチェックするかどうか。このパラメータが `TRUE` に設定されている場合、FE はユーザーがテーブルを作成する際に BE の記憶媒体をチェックし、BE の記憶媒体が CREATE TABLE ステートメントで指定された `storage_medium` パラメータと異なる場合、エラーを返します。たとえば、CREATE TABLE ステートメントで指定された記憶媒体が SSD であるにもかかわらず、BE の実際の記憶媒体が HDD である場合などです。その結果、テーブルの作成は失敗します。このパラメータが `FALSE` の場合、FE はテーブルを作成する際に BE の記憶媒体をチェックしません。 +- 導入: - +##### max_bucket_number_per_partition + +- デフォルト値: 1024 +- タイプ: Int +- 単位: - +- 変更可能か: Yes +- 説明: パーティション内に作成できるバケットの最大数。 +- 導入バージョン: v3.3.2 +##### max_column_number_per_table + +- デフォルト値: 10000 +- タイプ: Int +- 単位: - +- 変更可能か: はい +- 説明: テーブルに作成できるカラムの最大数。 +- 導入バージョン: v3.3.2 +##### max_dynamic_partition_num + +- デフォルト値: 500 +- タイプ: Int +- 単位: - +- 変更可能か: Yes +- 説明: 動的パーティションテーブルの分析または作成時に、一度に作成できるパーティションの最大数を制限します。動的パーティションのproperty enforcement(プロパティ適用)の検証中、systemtask_runs_max_history_number は予想されるパーティション(終了オフセット + 履歴パーティション数)を計算し、その合計が `max_dynamic_partition_num` を超える場合、DDLエラーをスローします。正当に大きなパーティション範囲が予想される場合にのみ、この値を大きくしてください。値を大きくすると、より多くのパーティションを作成できますが、メタデータのサイズ、スケジューリングの作業、および運用上の複雑さが増加する可能性があります。 +- 導入バージョン: v3.2.0 +##### max_partition_number_per_table + +- デフォルト値: 100000 +- タイプ: Int +- 単位: - +- 変更可能か: Yes +- 説明: テーブルに作成できるパーティションの最大数。 +- 導入バージョン: v3.3.2 +##### max_task_consecutive_fail_count + +- デフォルト値: 10 +- タイプ: Int +- 単位: - +- 変更可能: Yes +- 説明: スケジューラがタスクを自動的に中断するまでに、タスクが連続して失敗できる最大回数。 `TaskSource.MV.equals(task.getSource())` であり、かつ `max_task_consecutive_fail_count` が0より大きい場合、タスクの連続失敗カウンターが `max_task_consecutive_fail_count` に達するか超えると、タスクは TaskManager を介して中断され、マテリアライズドビュータスクの場合、マテリアライズドビューは非アクティブ化されます。中断を示す例外と、再アクティブ化する方法(例:`ALTER MATERIALIZED VIEW ACTIVE`)がスローされます。自動中断を無効にするには、この項目を0または負の値に設定します。 +- 導入バージョン: - +##### partition_recycle_retention_period_secs + +- デフォルト値: 1800 +- タイプ: Long +- 単位: 秒 +- 変更可能: はい +- 説明: INSERT OVERWRITE またはマテリアライズドビューのリフレッシュ操作によって削除されたパーティションのメタデータ保持時間。 このようなメタデータは、[RECOVER](../../sql-reference/sql-statements/backup_restore/RECOVER.md) を実行しても復元できないことに注意してください。 +- 導入バージョン: v3.5.9 +##### recover_with_empty_tablet + +- デフォルト値: false +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: 紛失または破損したtablet レプリカを空のレプリカで置き換えるかどうか。 tablet レプリカが紛失または破損した場合、このtablet または他の正常なtablet に対するデータクエリが失敗する可能性があります。紛失または破損したtablet レプリカを空のtablet で置き換えることで、クエリを確実に実行できます。ただし、データが失われるため、結果が正しくない可能性があります。デフォルト値は `FALSE` です。これは、紛失または破損したtablet レプリカが空のレプリカで置き換えられず、クエリが失敗することを意味します。 +- 導入: - +##### storage_usage_hard_limit_percent + +- デフォルト値: 95 +- エイリアス: storage_flood_stage_usage_percent +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: BE ディレクトリにおけるストレージ使用率のハードリミット(パーセンテージ)。BE のストレージディレクトリの使用率(パーセンテージ)がこの値を超え、かつ残りのストレージ容量が `storage_usage_hard_limit_reserve_bytes` 未満の場合、ロード およびリストアジョブは拒否されます。この項目は、BE の構成項目 `storage_flood_stage_usage_percent` と共に設定して、構成が有効になるようにする必要があります。 +- 導入バージョン: - +##### storage_usage_hard_limit_reserve_bytes + +- デフォルト値: 100 * 1024 * 1024 * 1024 +- エイリアス: storage_flood_stage_left_capacity_bytes +- タイプ: Long +- 単位: バイト +- 変更可能: Yes +- 説明: BE ディレクトリに残しておくストレージ容量のハードリミットです。BE のストレージディレクトリの残りのストレージ容量がこの値を下回り、ストレージ使用率(パーセンテージ)が `storage_usage_hard_limit_percent` を超える場合、Load および Restore ジョブは拒否されます。この項目は、BE の構成項目 `storage_flood_stage_left_capacity_bytes` と合わせて設定することで、構成が有効になります。 +- 導入バージョン: - +##### storage_usage_soft_limit_percent + +- デフォルト値: 90 +- エイリアス: storage_high_watermark_usage_percent +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: BE ディレクトリにおけるストレージ使用率のソフトリミットです。BE のストレージディレクトリの使用率(パーセンテージ)がこの値を超え、かつ残りのストレージ容量が `storage_usage_soft_limit_reserve_bytes` より少ない場合、tablet をこのディレクトリにクローンできません。 +- 導入バージョン: - +##### storage_usage_soft_limit_reserve_bytes + +- デフォルト値: 200 * 1024 * 1024 * 1024 +- エイリアス: storage_min_left_capacity_bytes +- タイプ: Long +- 単位: Bytes +- 変更可能: Yes +- 説明: BE ディレクトリ内の残りのストレージ容量のソフトリミット。 BE ストレージディレクトリ内の残りのストレージ容量がこの値より少なく、ストレージ使用率(パーセンテージ)が `storage_usage_soft_limit_percent` を超える場合、tablet をこのディレクトリにクローンできません。 +- 導入バージョン: - +##### tablet_checker_lock_time_per_cycle_ms + +- デフォルト値: 1000 +- タイプ: Int +- 単位: ミリ秒 +- 変更可能: はい +- 説明: tablet checker がテーブルロックを解放して再取得するまでの、サイクルごとの最大ロック保持時間。100 未満の値は 100 として扱われます。 +- 導入バージョン: v3.5.9, v4.0.2 +##### tablet_create_timeout_second + +- デフォルト: 10 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: tablet の作成タイムアウト時間。デフォルト値は v3.1 以降、1 から 10 に変更されました。 +- 導入: - +##### tablet_delete_timeout_second + +- デフォルト値: 2 +- タイプ: Int +- 単位: 秒 +- 変更可能か: Yes +- 説明: tablet の削除のタイムアウト時間。 +- 導入バージョン: - +##### tablet_sched_balance_load_disk_safe_threshold + +- デフォルト: 0.5 +- エイリアス: balance_load_disk_safe_threshold +- タイプ: Double +- 単位: - +- 変更可能: Yes +- 説明: BE のディスク使用量のバランスが取れているかどうかを判断するためのパーセンテージの閾値。 すべての BE のディスク使用量がこの値より低い場合、バランスが取れていると見なされます。 ディスク使用量がこの値より大きく、最高と最低の BE のディスク使用量の差が 10% より大きい場合、ディスク使用量のバランスが取れていないと見なされ、tablet のリバランスがトリガーされます。 +- 導入: - +##### tablet_sched_balance_load_score_threshold + +- デフォルト値: 0.1 +- エイリアス: balance_load_score_threshold +- タイプ: Double +- 単位: - +- 変更可能: Yes +- 説明: BE の負荷がバランスされているかどうかを判断するためのパーセンテージの閾値。ある BE の負荷がすべての BE の平均負荷よりも低く、その差がこの値よりも大きい場合、その BE は低負荷状態です。逆に、ある BE の負荷が平均負荷よりも高く、その差がこの値よりも大きい場合、その BE は高負荷状態です。 +- 導入バージョン: - +##### tablet_sched_be_down_tolerate_time_s + +- デフォルト値: 900 +- タイプ: Long +- 単位: 秒 +- 変更可能: はい +- 説明: スケジューラが BE ノードが非アクティブのままでいることを許可する最大時間。時間しきい値に達すると、その BE ノード上の tablet は他のアクティブな BE ノードに移行されます。 +- 導入バージョン: v2.5.7 +##### tablet_sched_disable_balance + +- デフォルト: false +- エイリアス: disable_balance +- タイプ: Boolean +- 単位: - +- 変更可能か: Yes +- 説明: tablet のバランス調整を無効にするかどうか。 `TRUE` は tablet のバランス調整が無効になっていることを示します。 `FALSE` は tablet のバランス調整が有効になっていることを示します。 +- 導入: - +##### tablet_sched_disable_colocate_balance + +- デフォルト値: false +- エイリアス: disable_colocate_balance +- タイプ: Boolean +- 単位: - +- 変更可能: はい +- 説明: Colocate Table のレプリカのバランス調整を無効にするかどうか。 `TRUE` はレプリカのバランス調整が無効になっていることを示します。 `FALSE` はレプリカのバランス調整が有効になっていることを示します。 +- 導入: - +##### tablet_sched_max_balancing_tablets + +- デフォルト値: 500 +- エイリアス: max_balancing_tablets +- タイプ: Int +- 単位: - +- 変更可能か: Yes +- 説明: 同時にバランスできるtabletの最大数。 この値を超えると、tabletのリバランスはスキップされます。 +- 導入バージョン: - +##### tablet_sched_max_clone_task_timeout_sec + +- デフォルト: 2 * 60 * 60 +- エイリアス: max_clone_task_timeout_sec +- タイプ: Long +- 単位: 秒 +- 変更可能: Yes +- 説明: tablet のクローン作成における最大タイムアウト時間。 +- 導入: - +##### tablet_sched_max_not_being_scheduled_interval_ms + +- デフォルト値: 15 * 60 * 1000 +- タイプ: Long +- 単位: ミリ秒 +- 変更可能: はい +- 説明: tablet のクローンタスクがスケジュールされている際に、このパラメータで指定された時間内に tablet がスケジュールされていない場合、StarRocks はできるだけ早くスケジュールするために、より高い優先度を与えます。 +- 導入バージョン: - +##### tablet_sched_max_scheduling_tablets + +- デフォルト値: 10000 +- エイリアス: max_scheduling_tablets +- タイプ: Int +- 単位: - +- 変更可能: Yes +- 説明: 同時にスケジュールできる tablet の最大数。この値を超えると、tablet のバランス調整と修復チェックがスキップされます。 +- 導入バージョン: - +##### tablet_sched_min_clone_task_timeout_sec + +- デフォルト値: 3 * 60 +- エイリアス: min_clone_task_timeout_sec +- タイプ: Long +- 単位: 秒 +- 変更可能: はい +- 説明: tablet のクローン作成における最小タイムアウト時間。 +- 導入: - +##### tablet_sched_num_based_balance_threshold_ratio + +- デフォルト値: 0.5 +- エイリアス: - +- タイプ: Double +- 単位: - +- 変更可能か: Yes +- 説明: 数に基づいたバランス調整を行うと、ディスクサイズのバランスが崩れる可能性がありますが、ディスク間の最大ギャップは tablet_sched_num_based_balance_threshold_ratio * tablet_sched_balance_load_score_threshold を超えることはありません。クラスタ内に A から B へ、B から A へと常にバランス調整を行っている tablet がある場合は、この値を小さくしてください。tablet の分散をよりバランス良くしたい場合は、この値を大きくしてください。 +- 導入バージョン: - 3.1 +##### tablet_sched_repair_delay_factor_second + +- デフォルト値: 60 +- エイリアス: tablet_repair_delay_factor_second +- タイプ: Long +- 単位: 秒 +- 変更可能: はい +- 説明: レプリカが修復される間隔(秒単位)。 +- 導入バージョン: - +##### tablet_sched_slot_num_per_path + +- デフォルト値: 8 +- エイリアス: schedule_slot_num_per_path +- タイプ: Int +- 単位: - +- 変更可能か: Yes +- 説明: BE のストレージディレクトリで同時に実行できる tablet 関連タスクの最大数。 v2.5 以降、このパラメータのデフォルト値は `4` から `8` に変更されました。 +- 導入バージョン: - +##### tablet_sched_storage_cooldown_second + +- デフォルト値:-1 +- エイリアス:storage_cooldown_second +- タイプ:Long +- 単位:秒 +- 変更可能:はい +- 説明:テーブル作成時から自動クールダウンを開始するまでのレイテンシー。デフォルト値の「`-1`」は、自動クールダウンが無効になっていることを指定します。自動クールダウンを有効にする場合は、このパラメータを「`-1`」より大きい値に設定してください。 +- 導入:- +##### tablet_stat_update_interval_second + +- デフォルト値: 300 +- タイプ: Int +- 単位: 秒 +- 変更可能か: いいえ +- 説明: FE が各 BE から tablet の統計情報を取得する時間間隔。 +- 導入: - +### 共有データ +##### aws_s3_access_key + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: S3バケットへのアクセスに使用するアクセスキーID。 +- 導入バージョン: v3.0 +##### aws_s3_endpoint + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能: いいえ +- 説明: S3バケットへのアクセスに使用するエンドポイントです。例えば、`https://s3.us-west-2.amazonaws.com` のように指定します。 +- 導入バージョン: v3.0 +##### aws_s3_external_id + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: いいえ +- 説明: S3バケットへのクロスアカウントアクセスに使用される、AWSアカウントの外部ID。 +- 導入バージョン: v3.0 +##### aws_s3_iam_role_arn + +- デフォルト値: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: いいえ +- 説明: データファイルが格納されている S3 バケットに対する権限を持つ IAM ロールの ARN。 +- 導入バージョン: v3.0 +##### aws_s3_path + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: データの保存に使用される S3 パス。これは、S3 バケットの名前とその下のサブパス (存在する場合) で構成されます。たとえば、`testbucket/subpath` のようになります。 +- 導入バージョン: v3.0 +##### aws_s3_region + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: S3バケットが存在するリージョン。 例: `us-west-2`。 +- 導入バージョン: v3.0 +##### aws_s3_secret_key + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: S3バケットへのアクセスに使用するシークレットアクセスキー。 +- 導入バージョン: v3.0 +##### aws_s3_use_aws_sdk_default_behavior + +- デフォルト: false +- タイプ: Boolean +- 単位: - +- 変更可能: No +- 説明: AWS SDK のデフォルトの認証情報を使用するかどうか。有効な値: true および false (デフォルト)。 +- 導入バージョン: v3.0 +##### aws_s3_use_instance_profile + +- デフォルト値: false +- 型: Boolean +- 単位: - +- 変更可能か: No +- 説明: S3へのアクセスに、Instance ProfileとAssumed Roleを認証方法として使用するかどうか。有効な値: true および false (デフォルト)。 + - IAMユーザーベースの認証情報 (Access Key と Secret Key) を使用してS3にアクセスする場合は、この項目を `false` に指定し、`aws_s3_access_key` と `aws_s3_secret_key` を指定する必要があります。 + - Instance Profileを使用してS3にアクセスする場合は、この項目を `true` に指定する必要があります。 + - Assumed Roleを使用してS3にアクセスする場合は、この項目を `true` に指定し、`aws_s3_iam_role_arn` を指定する必要があります。 + - また、外部のAWSアカウントを使用する場合は、`aws_s3_external_id` も指定する必要があります。 +- 導入バージョン: v3.0 +##### azure_adls2_endpoint + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: Azure Data Lake Storage Gen2アカウントのエンドポイント。例:`https://test.dfs.core.windows.net`。 +- 導入バージョン: v3.4.1 +##### azure_adls2_oauth2_client_id + +- デフォルト値: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: Azure Data Lake Storage Gen2 のリクエストを認証するために使用される、マネージドIDのクライアントID。 +- 導入バージョン: v3.4.4 +##### azure_adls2_oauth2_tenant_id + +- デフォルト: 空の文字列 +- タイプ: 文字列 +- 単位: - +- 変更可能か: いいえ +- 説明: Azure Data Lake Storage Gen2 のリクエストを承認するために使用される、マネージドIDのテナントID。 +- 導入バージョン: v3.4.4 +##### azure_adls2_oauth2_use_managed_identity + +- デフォルト値: false +- 型: Boolean +- 単位: - +- 変更可能か: No +- 説明: Managed Identity を使用して Azure Data Lake Storage Gen2 へのリクエストを認証するかどうかを指定します。 +- 導入バージョン: v3.4.4 +##### azure_adls2_path + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: データの保存に使用される Azure Data Lake Storage Gen2 パス。ファイルシステム名とディレクトリ名で構成されます。例:`testfilesystem/starrocks`。 +- 導入バージョン: v3.4.1 +##### azure_adls2_sas_token + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: Azure Data Lake Storage Gen2 のリクエストを認証するために使用される Shared Access Signatures (SAS)。 +- 導入バージョン: v3.4.1 +##### azure_adls2_shared_key + +- デフォルト値: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能: いいえ +- 説明: Azure Data Lake Storage Gen2 のリクエストを認証するために使用される Shared Key です。 +- 導入バージョン: v3.4.1 +##### azure_blob_endpoint + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: Azure Blob Storageアカウントのエンドポイント。例えば、`https://test.blob.core.windows.net` のように指定します。 +- 導入バージョン: v3.1 +##### azure_blob_path + +- デフォルト値: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: いいえ +- 説明: データの保存に使用される Azure Blob Storage のパス。ストレージアカウント内のコンテナの名前と、コンテナの下のサブパス(存在する場合)で構成されます。例:`testcontainer/subpath`。 +- 導入バージョン: v3.1 +##### azure_blob_sas_token + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: Azure Blob Storageへのリクエストを認証するために使用される、共有アクセス署名(SAS)。 +- 導入バージョン: v3.1 +##### azure_blob_shared_key + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: Azure Blob Storageへのリクエストを認証するために使用されるShared Keyです。 +- 導入バージョン: v3.1 +##### azure_use_native_sdk + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: Azure Blob StorageへのアクセスにネイティブSDKを使用するかどうか。これにより、マネージドIDとサービスプリンシパルによる認証が可能になります。この項目が `false` に設定されている場合、共有キーとSASトークンによる認証のみが許可されます。 +- 導入バージョン: v3.4.4 +##### cloud_native_hdfs_url + +- デフォルト値: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: いいえ +- 説明: HDFS ストレージの URL。例:`hdfs://127.0.0.1:9000/user/xxx/starrocks/`。 +- 導入バージョン: - +##### cloud_native_meta_port + +- デフォルト値: 6090 +- タイプ: Int +- 単位: - +- 変更可能かどうか: No +- 説明: FE クラウドネイティブメタデータサーバーのRPCリッスンポート。 +- 導入バージョン: - +##### cloud_native_storage_type + +- デフォルト値: S3 +- データ型: String +- 単位: - +- 変更可否: 不可 +- 説明: 使用するオブジェクトストレージのタイプ。 共有データモードでは、StarRocks は HDFS、Azure Blob (v3.1.1 以降でサポート)、Azure Data Lake Storage Gen2 (v3.4.1 以降でサポート)、Google Storage (ネイティブ SDK 付き、v3.5.1 以降でサポート)、および S3 プロトコルと互換性のあるオブジェクトストレージシステム (AWS S3、 MinIO など) へのデータ保存をサポートします。 有効な値: `S3` (デフォルト)、`HDFS`、`AZBLOB`、`ADLS2`、および `GS`。 このパラメータを `S3` として指定する場合は、`aws_s3` が前に付いたパラメータを追加する必要があります。 このパラメータを `AZBLOB` として指定する場合は、`azure_blob` が前に付いたパラメータを追加する必要があります。 このパラメータを `ADLS2` として指定する場合は、`azure_adls2` が前に付いたパラメータを追加する必要があります。 このパラメータを `GS` として指定する場合は、`gcp_gcs` が前に付いたパラメータを追加する必要があります。 このパラメータを `HDFS` として指定する場合は、`cloud_native_hdfs_url` のみを指定する必要があります。 +- 導入バージョン: - +##### enable_load_volume_from_conf + +- デフォルト値: false +- タイプ: Boolean +- 単位: - +- 変更可能か: No +- 説明: StarRocks が FE 設定ファイルで指定されたオブジェクトストレージ関連のプロパティを使用して、組み込みのストレージボリュームを作成することを許可するかどうか。 デフォルト値は、v3.4.1 以降、`true` から `false` に変更されました。 +- 導入バージョン: v3.1.0 +##### gcp_gcs_impersonation_service_account + +- デフォルト: 空文字列 +- タイプ: String +- 単位: - +- 変更可能か: いいえ +- 説明: Google Storage にアクセスするために、インパーソネーションベースの認証を使用する場合に、インパーソネートする Service Account。 +- 導入バージョン: v3.5.1 +##### gcp_gcs_path + +- デフォルト: 空文字列 +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: データの保存に使用される Google Cloud パス。これは、Google Cloud バケットの名前と、その下のサブパス(存在する場合)で構成されます。たとえば、`testbucket/subpath` のようになります。 +- 導入バージョン: v3.5.1 +##### gcp_gcs_service_account_email + +- デフォルト値: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能: いいえ +- 説明: サービスアカウントの作成時に生成されたJSONファイル内のメールアドレス。例えば、`user@hello.iam.gserviceaccount.com` のようになります。 +- 導入バージョン: v3.5.1 +##### gcp_gcs_service_account_private_key + +- デフォルト: 空文字列 +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: サービスアカウントの作成時に生成されたJSONファイル内のプライベートキー。例えば、`-----BEGIN PRIVATE KEY----xxxx-----END PRIVATE KEY-----\n` のようになります。 +- 導入バージョン: v3.5.1 +##### gcp_gcs_service_account_private_key_id + +- デフォルト: 空の文字列 +- タイプ: 文字列 +- 単位: - +- 変更可能: いいえ +- 説明: サービスアカウントの作成時に生成されたJSONファイル内のプライベートキーID。 +- 導入バージョン: v3.5.1 +##### gcp_gcs_use_compute_engine_service_account + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能か: No +- 説明: Compute Engine にバインドされているサービスアカウントを使用するかどうか。 +- 導入バージョン: v3.5.1 +##### hdfs_file_system_expire_seconds + +- デフォルト: 300 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: HdfsFsManagerによって管理される、未使用のキャッシュされたHDFS/ObjectStore FileSystemのTime-to-live(秒単位)。FileSystemExpirationChecker(60秒ごとに実行)は、この値を使用して各HdfsFs.isExpired(...)を呼び出します。期限切れになると、マネージャーは基になるFileSystemを閉じて、キャッシュから削除します。アクセサーメソッド(例えば、`HdfsFs.getDFSFileSystem`、`getUserName`、`getConfiguration`)は最終アクセス時のタイムスタンプを更新するため、有効期限は非アクティブ状態に基づきます。値を小さくすると、アイドル状態のリソース保持が削減されますが、再開のオーバーヘッドが増加します。値を大きくすると、ハンドルがより長く保持され、より多くのリソースを消費する可能性があります。 +- 導入バージョン: v3.2.0 +##### lake_autovacuum_grace_period_minutes + +- デフォルト値: 30 +- タイプ: Long +- 単位: 分 +- 変更可能: はい +- 説明: 共有データクラスタで、過去のデータバージョンを保持する時間範囲です。この時間範囲内の過去のデータバージョンは、Compaction 後に AutoVacuum によって自動的にクリーンアップされません。実行中のクエリがアクセスするデータが、クエリの完了前に削除されるのを防ぐために、この値を最大のクエリ時間よりも大きく設定する必要があります。デフォルト値は、v3.3.0、v3.2.5、および v3.1.10 以降、`5` から `30` に変更されました。 +- 導入バージョン: v3.1.0 +##### lake_autovacuum_parallel_partitions + +- デフォルト値: 8 +- タイプ: Int +- 単位: - +- 変更可能か: いいえ +- 説明: 共有データクラスタ内で、同時にAutoVacuumを実行できるパーティションの最大数。AutoVacuumは、Compaction後のガーベジコレクションです。 +- 導入バージョン: v3.1.0 +##### lake_autovacuum_partition_naptime_seconds + +- デフォルト値: 180 +- タイプ: Long +- 単位: 秒 +- 変更可能: はい +- 説明: 共有データクラスタ内の同じパーティションに対する AutoVacuum 操作間の最小間隔。 +- 導入バージョン: v3.1.0 +##### lake_autovacuum_stale_partition_threshold + +- デフォルト値: 12 +- タイプ: Long +- 単位: 時間 +- 変更可能: はい +- 説明: あるパーティションがこの時間範囲内に更新 (データロード、DELETE、または Compaction) がない場合、システムはこのパーティションに対して AutoVacuum を実行しません。 +- 導入バージョン: v3.1.0 +##### lake_compaction_allow_partial_success + +- デフォルト値: true +- 型: Boolean +- 単位: - +- 変更可能か: はい +- 説明: この項目が `true` に設定されている場合、共有データクラスタ内の Compaction 操作において、いずれかのサブタスクが成功した場合に、システムは Compaction 操作を成功とみなします。 +- 導入バージョン: v3.5.2 +##### lake_compaction_disable_ids + +- デフォルト値: "" +- 型: String +- 単位: - +- 変更可能: Yes +- 説明: 共有データモードで compaction が無効になっているテーブルまたはパーティションのリスト。形式は `tableId1;partitionId2` で、セミコロンで区切られます。例えば、`12345;98765` のようになります。 +- 導入バージョン: v3.4.4 +##### lake_compaction_history_size + +- デフォルト値: 20 +- タイプ: Int +- 単位: - +- 変更可能か: Yes +- 説明: 共有データクラスタ内の Leader FE ノードのメモリに保持する、最近成功した Compaction タスクレコードの数。 `SHOW PROC '/compactions'` コマンドを使用すると、最近成功した Compaction タスクレコードを表示できます。 Compaction の履歴は FE プロセスのメモリに保存され、FE プロセスが再起動されると失われることに注意してください。 +- 導入バージョン: v3.1.0 +##### lake_compaction_max_tasks + +- デフォルト: -1 +- タイプ: Int +- 単位: - +- 変更可能: Yes +- 説明: 共有データクラスタで許可される同時 `Compaction` タスクの最大数。この項目を `-1` に設定すると、同時タスク数が適応的に計算されます。この値を `0` に設定すると、`compaction` は無効になります。 +- 導入バージョン: v3.1.0 +##### lake_compaction_score_selector_min_score + +- デフォルト値: 10.0 +- タイプ: Double +- 単位: - +- 変更可能か: はい +- 説明: 共有データクラスタ で、Compaction をトリガーする Compaction Score の閾値です。パーティションの Compaction Score がこの値以上の場合、システムはそのパーティションに対して Compaction を実行します。 +- 導入バージョン: v3.1.0 +##### lake_compaction_score_upper_bound + +- デフォルト値: 2000 +- タイプ: Long +- 単位: - +- 変更可能: Yes +- 説明: 共有データクラスタ内のパーティションの Compaction Score の上限。 `0` は上限がないことを示します。この項目は、`lake_enable_ingest_slowdown` が `true` に設定されている場合にのみ有効になります。パーティションの Compaction Score がこの上限に達するか超えると、受信するデータロードタスクは拒否されます。 v3.3.6 以降、デフォルト値は `0` から `2000` に変更されました。 +- 導入バージョン: v3.2.0 +##### lake_enable_balance_tablets_between_workers + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能か: はい +- 説明: 共有データクラスタ内のクラウドネイティブテーブルの tablet の移行中に、コンピュートノード間で tablet の数を分散させるかどうかを指定します。 `true` はコンピュートノード間で tablet のバランスを取ることを示し、 `false` はこの機能を無効にすることを示します。 +- 導入バージョン: v3.3.4 +##### lake_enable_ingest_slowdown + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: 共有データクラスタでデータ取り込みのスローダウンを有効にするかどうか。データ取り込みのスローダウンが有効になっている場合、パーティションのCompaction Scoreが `lake_ingest_slowdown_threshold` を超えると、そのパーティションでのロードタスクは抑制されます。この構成は、 `run_mode` が `shared_data` に設定されている場合にのみ有効です。 v3.3.6以降、デフォルト値は `false` から `true` に変更されました。 +- 導入バージョン: v3.2.0 +##### lake_ingest_slowdown_threshold + +- デフォルト値: 100 +- タイプ: Long +- 単位: - +- 変更可能か: Yes +- 説明: 共有データクラスタにおいて、データロードの速度低下をトリガーする Compaction のスコアの閾値です。この設定は、`lake_enable_ingest_slowdown` が `true` に設定されている場合にのみ有効になります。 +- 導入バージョン: v3.2.0 +##### lake_publish_version_max_threads + +- デフォルト値: 512 +- タイプ: Int +- 単位: - +- 変更可能: Yes +- 説明: 共有データクラスタにおける Version Publish タスクの最大スレッド数。 +- 初出バージョン: v3.2.0 +##### meta_sync_force_delete_shard_meta + +- デフォルト値: false +- 型: Boolean +- 単位: - +- 変更可能か: Yes +- 説明: リモートストレージファイルをクリーンせずに、共有データクラスタのメタデータを直接削除できるようにするかどうか。 クリーンするシャードが過剰に多く、FE JVMに極端なメモリ負荷がかかる場合にのみ、この項目を `true` に設定することをお勧めします。 この機能を有効にした後、シャードまたは tablet に属するデータファイルは自動的にクリーンされないことに注意してください。 +- 導入バージョン: v3.2.10, v3.3.3 +##### run_mode + +- デフォルト値: shared_nothing +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: StarRocks クラスタの実行モード。有効な値は、`shared_data` および `shared_nothing` (デフォルト) です。 + - `shared_data` は、共有データモードで StarRocks を実行することを示します。 + - `shared_nothing` は、共有なしモードで StarRocks を実行することを示します。 + + > **注意** + > + > - StarRocks クラスタに対して、`shared_data` モードと `shared_nothing` モードを同時に採用することはできません。混合デプロイメントはサポートされていません。 + > - クラスタのデプロイ後に `run_mode` を変更しないでください。変更すると、クラスタが再起動に失敗します。共有なしクラスタから共有データクラスタへの変換、またはその逆はサポートされていません。 + +- 導入: - +##### shard_group_clean_threshold_sec + +- デフォルト値: 3600 +- タイプ: Long +- 単位: 秒 +- 変更可能か: はい +- 説明: FE が 共有データクラスタ 内の未使用の tablet と shard group をクリーンアップするまでの時間です。このしきい値内で作成された tablet と shard group はクリーンアップされません。 +- 導入バージョン: - +##### star_mgr_meta_sync_interval_sec + +- デフォルト値: 600 +- タイプ: Long +- 単位: 秒 +- 変更可能か: いいえ +- 説明: 共有データクラスタにおいて、FE が StarMgr と定期的なメタデータ同期を実行する間隔。 +- 導入: - +##### starmgr_grpc_server_max_worker_threads + +- デフォルト値: 1024 +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: FE starmgr モジュール内の gRPC サーバーで使用されるワーカースレッドの最大数。 +- 導入バージョン: v4.0.0, v3.5.8 +##### starmgr_grpc_timeout_seconds + +- デフォルト: 5 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: +- 導入: - +### データレイク +##### files_enable_insert_push_down_schema + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: はい +- 説明: 有効にすると、アナライザは `INSERT ... FROM files()` 操作のために、ターゲットテーブルスキーマを `files()` テーブル関数にプッシュしようとします。これは、ソースが FileTableFunctionRelation で、ターゲットが 内部テーブル であり、SELECT リストに対応するスロット参照列(または *)が含まれている場合にのみ適用されます。アナライザは、select 列をターゲット列に一致させ(カウントは一致する必要があります)、ターゲットテーブルを短時間ロックし、ファイル列のタイプを、非複合型に対してディープコピーされたターゲット列のタイプに置き換えます(parquet json -> array<varchar> などの複合型はスキップされます)。元の files テーブルの列名は保持されます。これにより、データ取り込み 中のファイルベースの型推論による型の不一致と緩さが軽減されます。 +- 導入バージョン: v3.4.0, v3.5.0 +##### hdfs_read_buffer_size_kb + +- デフォルト値: 8192 +- タイプ: Int +- 単位: キロバイト +- 変更可能: はい +- 説明: HDFS の読み取りバッファのサイズ(キロバイト単位)。 StarRocks はこの値をバイトに変換し(`<< 10`)、`HdfsFsManager` で HDFS 読み取りバッファを初期化し、broker アクセスが使用されていない場合に BE タスクに送信される thrift フィールド `hdfs_read_buffer_size_kb` (例:`TBrokerScanRangeParams`、`TDownloadReq`)にデータを投入するために使用します。 `hdfs_read_buffer_size_kb` を大きくすると、ストリームあたりのメモリ使用量が増加する代わりに、シーケンシャルな読み取りスループットが向上し、syscall のオーバーヘッドが削減されます。小さくすると、メモリフットプリントは削減されますが、IO 効率が低下する可能性があります。チューニングする際は、ワークロード(多数の小さなストリーム対少数の大きなシーケンシャル読み取り)を考慮してください。 +- 導入: v3.2.0 +##### hdfs_write_buffer_size_kb + +- デフォルト: 1024 +- タイプ: Int +- 単位: キロバイト +- 変更可能: はい +- 説明: broker を使用しない場合に、HDFS またはオブジェクトストレージに直接書き込むために使用される HDFS 書き込みバッファサイズ(KB単位)を設定します。FE はこの値をバイトに変換し(`<< 10`)、HdfsFsManager でローカル書き込みバッファを初期化し、Thrift リクエスト(例:TUploadReq、TExportSink、シンクオプション)で伝播されるため、バックエンド/エージェントは同じバッファサイズを使用します。この値を大きくすると、ライターあたりのメモリコストは増加しますが、大規模なシーケンシャル書き込みのスループットが向上する可能性があります。小さくすると、ストリームごとのメモリ使用量が減少し、小さな書き込みのレイテンシが低下する可能性があります。`hdfs_read_buffer_size_kb` とともに調整し、利用可能なメモリと同時ライターを考慮してください。 +- 導入バージョン: v3.2.0 +##### lake_batch_publish_max_version_num + +- デフォルト値: 10 +- タイプ: Int +- 単位: Count +- 変更可能: Yes +- 説明: lake (クラウドネイティブ) テーブルのパブリッシュバッチを構築する際に、グループ化できる連続したトランザクションバージョンの上限を設定します。この値は、トランザクショングラフのバッチ処理ルーチン (getReadyToPublishTxnListBatch を参照) に渡され、`lake_batch_publish_min_version_num` と連携して TransactionStateBatch の候補範囲サイズを決定します。値を大きくすると、より多くのコミットをバッチ処理することでパブリッシュのスループットを向上させることができますが、アトミックなパブリッシュの範囲が拡大し (可視化のレイテンシーが長くなり、ロールバックの対象範囲が広くなります)、バージョンが連続していない場合は、実行時に制限される可能性があります。ワークロードと可視性/レイテンシーの要件に応じて調整してください。 +- 導入バージョン: v3.2.0 +##### lake_batch_publish_min_version_num + +- デフォルト値: 1 +- タイプ: Int +- 単位: - +- 変更可能: Yes +- 説明: レイクテーブルのパブリッシュバッチを形成するために必要な、連続したトランザクションバージョンの最小数を設定します。 DatabaseTransactionMgr.getReadyToPublishTxnListBatch は、この値を `lake_batch_publish_max_version_num` とともに transactionGraph.getTxnsWithTxnDependencyBatch に渡し、依存するトランザクションを選択します。 値 `1` は、単一トランザクションのパブリッシュを許可します(バッチ処理なし)。 1 より大きい値は、少なくともそれだけの数の連続したバージョンの、単一テーブル、非レプリケーショントランザクションが利用可能であることを必要とします。バージョンが連続していない場合、レプリケーショントランザクションが出現した場合、またはスキーマ変更がバージョンを消費した場合、バッチ処理は中止されます。 この値を大きくすると、コミットをグループ化することでパブリッシュのスループットを向上させることができますが、十分な連続したトランザクションを待機している間、パブリッシュが遅れる可能性があります。 +- 導入バージョン: v3.2.0 +##### lake_enable_batch_publish_version + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: 有効にすると、PublishVersionDaemon は同じ Lake (共有データ) テーブル/パーティションの準備完了したトランザクションをバッチ処理し、トランザクションごとに発行するのではなく、それらのバージョンをまとめて発行します。RunMode 共有データでは、デーモンは getReadyPublishTransactionsBatch() を呼び出し、publishVersionForLakeTableBatch(...) を使用してグループ化された発行操作を実行します (RPC を削減し、スループットを向上させます)。無効にすると、デーモンは publishVersionForLakeTable(...) を介してトランザクションごとの発行に戻ります。この実装は、切り替えが切り替わったときに重複した発行を回避するために内部セットを使用して実行中の作業を調整し、`lake_publish_version_max_threads` を介してスレッドプールのサイズ設定の影響を受けます。 +- 導入バージョン: v3.2.0 +##### lake_enable_tablet_creation_optimization + +- デフォルト値: false +- タイプ: boolean +- 単位: - +- 変更可能か: Yes +- 説明: 有効にすると、StarRocks は共有データモードのクラウドネイティブテーブルとマテリアライズドビューの tablet 作成を最適化します。具体的には、tablet ごとに個別のメタデータを作成する代わりに、物理パーティション下のすべての tablet に対して単一の共有 tablet メタデータを作成します。これにより、テーブル作成、rollup、および schema change ジョブ中に生成される tablet 作成タスクとメタデータ/ファイルの数が削減されます。この最適化は、クラウドネイティブテーブル/マテリアライズドビューにのみ適用され、`file_bundling` と組み合わせて使用されます (後者は同じ最適化ロジックを再利用します)。注意: schema change および rollup ジョブは、同一の名前のファイルの上書きを避けるために、`file_bundling` を使用するテーブルに対しては、この最適化を明示的に無効にします。有効にする場合は注意してください。作成される tablet メタデータの粒度が変わり、レプリカの作成とファイル命名の動作に影響を与える可能性があります。 +- 導入バージョン: v3.3.1, v3.4.0, v3.5.0 +##### lake_use_combined_txn_log + +- デフォルト値: false +- タイプ: Boolean +- 単位: - +- 変更可能か: Yes +- 説明: この項目が `true` に設定されている場合、システムは Lake テーブル が関連するトランザクションに結合されたトランザクションログパスを使用することを許可します。共有データクラスタでのみ利用可能です。 +- 導入: v3.3.7, v3.4.0, v3.5.0 +##### enable_iceberg_commit_queue + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: Icebergテーブルでコミットキューを有効にして、同時コミットの競合を回避するかどうかを指定します。 Icebergは、メタデータコミットに楽観的並行性制御 (OCC) を使用します。複数のスレッドが同じテーブルに同時にコミットすると、「コミットできません: ベースメタデータの場所が現在のテーブルメタデータの場所と同じではありません」のようなエラーが発生して競合が発生する可能性があります。有効にすると、各Icebergテーブルはコミット操作専用のシングルスレッドexecutorを持つため、同じテーブルへのコミットがシリアル化され、OCCの競合が防止されます。異なるテーブルは同時にコミットできるため、全体的なスループットが維持されます。これは信頼性を向上させるためのシステムレベルの最適化であり、デフォルトで有効にする必要があります。無効にすると、楽観ロックの競合により、同時コミットが失敗する可能性があります。 +- 導入バージョン: v4.1.0 +##### iceberg_commit_queue_timeout_seconds + +- デフォルト値: 300 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: Iceberg のコミット操作が完了するまでの待ち時間のタイムアウト(秒単位)。コミットキュー (`enable_iceberg_commit_queue=true`) を使用する場合、各コミット操作はこのタイムアウト内に完了する必要があります。コミットがこのタイムアウトより長くかかると、キャンセルされ、エラーが発生します。コミット時間に影響を与える要因には、コミットされるデータファイルの数、テーブルのメタデータのサイズ、基盤となるストレージ (例: S3、HDFS) のパフォーマンスなどがあります。 +- 導入バージョン: v4.1.0 +##### iceberg_commit_queue_max_size + +- デフォルト値: 1000 +- タイプ: Int +- 単位: Count +- 変更可能か: No +- 説明: Icebergテーブルごとの保留中のコミット操作の最大数。コミットキュー (`enable_iceberg_commit_queue=true`) を使用する場合、これは単一のテーブルに対してキューに入れることができるコミット操作の数を制限します。制限に達すると、追加のコミット操作は呼び出し元スレッドで実行されます (容量が利用可能になるまでブロックされます)。この構成はFEの起動時に読み取られ、新しく作成されたテーブルexecutorに適用されます。有効にするにはFEの再起動が必要です。同じテーブルへの同時コミットが多い場合は、この値を大きくしてください。この値が低すぎると、同時実行性が高い場合にコミットが呼び出し元スレッドでブロックされる可能性があります。 +- 導入バージョン: v4.1.0 +### その他 +##### agent_task_resend_wait_time_ms + +- デフォルト値: 5000 +- タイプ: Long +- 単位: ミリ秒 +- 変更可能か: はい +- 説明: FE がエージェントタスクを再送信するまでに待機する必要がある時間。エージェントタスクは、タスクの作成時刻と現在の時刻の差がこのパラメータの値を超えた場合にのみ、再送信できます。このパラメータは、エージェントタスクの反復送信を防ぐために使用されます。 +- 導入バージョン: - +##### allow_system_reserved_names + +- デフォルト: false +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: `__op` および `__row` で始まる名前の列をユーザーが作成できるようにするかどうかを指定します。この機能を有効にするには、このパラメータを `TRUE` に設定します。これらの名前の形式は StarRocks で特別な目的のために予約されており、このような列を作成すると未定義の動作が発生する可能性があることに注意してください。したがって、この機能はデフォルトで無効になっています。 +- 導入: v3.2.0 +##### auth_token + +- デフォルト値: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: いいえ +- 説明: FE が属する StarRocks クラスタ内での ID 認証に使用されるトークン。このパラメータが指定されていない場合、StarRocks はクラスタの leader FE が最初に起動されたときに、クラスタのランダムなトークンを生成します。 +- 導入: - +##### authentication_ldap_simple_bind_base_dn + +- デフォルト値: 空文字列 +- タイプ: String +- 単位: - +- 変更可能か: Yes +- 説明: ベースDN。これは、LDAPサーバーがユーザーの認証情報の検索を開始するポイントです。 +- 導入バージョン: - +##### authentication_ldap_simple_bind_root_dn + +- デフォルト値: 空文字列 +- タイプ: String +- 単位: - +- 変更可能か: Yes +- 説明: ユーザーの認証情報を検索するために使用される管理者 DN 。 +- 導入: - +##### authentication_ldap_simple_bind_root_pwd + +- デフォルト: 空文字列 +- タイプ: String +- 単位: - +- 変更可能: Yes +- 説明: ユーザーの認証情報を検索するために使用される、管理者パスワード。 +- 導入: - +##### authentication_ldap_simple_server_host + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能: Yes +- 説明: LDAP サーバーが実行されているホスト。 +- 導入: - +##### authentication_ldap_simple_server_port + +- デフォルト値: 389 +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: LDAPサーバーのポート。 +- 導入バージョン: - +##### authentication_ldap_simple_user_search_attr + +- デフォルト値: uid +- 型: String +- 単位: - +- 変更可能: Yes +- 説明: LDAPオブジェクト内のユーザーを識別する属性の名前。 +- 導入バージョン: - +##### backup_job_default_timeout_ms + +- デフォルト: 86400 * 1000 +- タイプ: Int +- 単位: ミリ秒 +- 変更可能: はい +- 説明: バックアップジョブのタイムアウト時間。この値を超えると、バックアップジョブは失敗します。 +- 導入: - +##### enable_collect_tablet_num_in_show_proc_backend_disk_path + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: `SHOW PROC /BACKENDS/{id}` コマンドで、各ディスクの tablet 数を収集するかどうか。 +- 導入バージョン: v4.0.1, v3.5.8 +##### enable_colocate_restore + +- デフォルト: false +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: Colocate Table のバックアップとリストアを有効にするかどうかを指定します。 `true` は Colocate Table のバックアップとリストアを有効にすることを意味し、 `false` は無効にすることを意味します。 +- 導入バージョン: v3.2.10, v3.3.3 +##### enable_materialized_view_concurrent_prepare + +- デフォルト値: true +- タイプ: Boolean +- 単位: +- 変更可能: Yes +- 説明: マテリアライズドビューの準備を並行して行い、パフォーマンスを向上させるかどうか。 +- 導入バージョン: v3.4.4 +##### enable_metric_calculator + +- デフォルト値: true +- 型: Boolean +- 単位: - +- 変更可能かどうか: No +- 説明: 定期的にメトリクスを収集するために使用される機能を有効にするかどうかを指定します。有効な値: `TRUE` および `FALSE` 。 `TRUE` はこの機能を有効にすることを指定し、 `FALSE` はこの機能を無効にすることを指定します。 +- 導入バージョン: - +##### enable_mv_post_image_reload_cache + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: はい +- 説明: FE がイメージをロードした後、リロードフラグのチェックを実行するかどうかを指定します。ベースマテリアライズドビューに対してチェックが実行された場合、それに関連する他のマテリアライズドビューでは不要になります。 +- 導入バージョン: v3.5.0 +##### enable_mv_query_context_cache + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能か: Yes +- 説明: クエリ書き換えのパフォーマンスを向上させるために、クエリレベルのマテリアライズドビュー書き換えキャッシュを有効にするかどうかを指定します。 +- 導入バージョン: v3.3 +##### enable_mv_refresh_collect_profile + +- デフォルト値: false +- 型: Boolean +- 単位: - +- 変更可能: Yes +- 説明: すべてのマテリアライズドビューにおいて、マテリアライズドビューのリフレッシュ時にデフォルトでプロファイルを収集するかどうかを設定します。 +- 導入バージョン: v3.3.0 +##### enable_mv_refresh_extra_prefix_logging + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: はい +- 説明: デバッグを容易にするために、マテリアライズドビュー名を持つプレフィックスをログに含めるかどうかを指定します。 +- 導入バージョン: v3.4.0 +##### enable_mv_refresh_query_rewrite + +- デフォルト値: false +- 型: Boolean +- 単位: - +- 変更可能: Yes +- 説明: マテリアライズドビューのリフレッシュ中にクエリの書き換えを有効にするかどうか。クエリがベーステーブルではなく、書き換えられた mv を直接使用してクエリパフォーマンスを向上させることができるようにします。 +- 導入バージョン: v3.3 +##### enable_trace_historical_node + +- デフォルト値: false +- 型: Boolean +- 単位: - +- 変更可能: Yes +- 説明: システムが履歴ノードを追跡できるようにするかどうかを指定します。この項目を `true` に設定すると、 Cache Sharing 機能を有効にして、伸縮自在なスケーリング中にシステムが適切なキャッシュノードを選択できるようになります。 +- 導入: v3.5.1 +##### es_state_sync_interval_second + +- デフォルト値: 10 +- タイプ: Long +- 単位: 秒 +- 変更可能: いいえ +- 説明: FE が Elasticsearch インデックスを取得し、StarRocks 外部テーブルのメタデータを同期する時間間隔。 +- 導入: - +##### hive_meta_cache_refresh_interval_s + +- デフォルト値: 3600 * 2 +- タイプ: Long +- 単位: 秒 +- 変更可能: いいえ +- 説明: Hive 外部テーブルのキャッシュされたメタデータが更新される時間間隔。 +- 導入バージョン: - +##### hive_meta_store_timeout_s + +- デフォルト値: 10 +- タイプ: Long +- 単位: 秒 +- 変更可能か: いいえ +- 説明: Hive メタストアへの接続がタイムアウトするまでの時間。 +- 導入: - +##### jdbc_connection_idle_timeout_ms + +- デフォルト値: 600000 +- タイプ: Int +- 単位: ミリ秒 +- 変更可能か: いいえ +- 説明: JDBC catalog へのアクセスに使用される接続がタイムアウトするまでの最大時間。タイムアウトした接続はアイドル状態とみなされます。 +- 導入バージョン: - +##### jdbc_connection_timeout_ms + +- デフォルト: 10000 +- タイプ: Long +- 単位: ミリ秒 +- 変更可能か: いいえ +- 説明: HikariCP接続プールが接続を取得する際のタイムアウト(ミリ秒単位)。この時間内にプールから接続を取得できない場合、操作は失敗します。 +- 導入バージョン: v3.5.13 +##### jdbc_query_timeout_ms + +- デフォルト: 30000 +- タイプ: Long +- 単位: ミリ秒 +- 変更可能: はい +- 説明: JDBCステートメントのクエリ実行のタイムアウト(ミリ秒単位)。 このタイムアウトは、JDBC catalog (例えば、パーティションメタデータのクエリ)を通して実行される全てのSQLクエリに適用されます。 この値はJDBCドライバに渡される際に秒に変換されます。 +- 導入バージョン: v3.5.13 +##### jdbc_network_timeout_ms + +- デフォルト: 30000 +- タイプ: Long +- 単位: ミリ秒 +- 変更可能: はい +- 説明: JDBCネットワーク操作(ソケット読み取り)のタイムアウト(ミリ秒単位)。このタイムアウトは、外部データベースが応答しない場合に無期限のブロックを防ぐため、データベースのメタデータ呼び出し(例:getSchemas()、getTables()、getColumns())に適用されます。 +- 導入バージョン: v3.5.13 +##### jdbc_connection_pool_size + +- デフォルト: 8 +- タイプ: Int +- 単位: - +- 変更可能か: いいえ +- 説明: JDBC catalog にアクセスするための JDBC コネクションプールの最大容量。 +- 導入: - +##### jdbc_meta_default_cache_enable + +- デフォルト値: false +- 型: Boolean +- 単位: - +- 変更可能: Yes +- 説明: JDBC Catalog のメタデータキャッシュを有効にするかどうかのデフォルト値です。True に設定すると、新しく作成された JDBC Catalog はデフォルトでメタデータキャッシュが有効になります。 +- 導入バージョン: - +##### jdbc_meta_default_cache_expire_sec + +- デフォルト値: 600 +- タイプ: Long +- 単位: 秒 +- 変更可能: はい +- 説明: JDBC Catalog のメタデータキャッシュのデフォルトの有効期限です。 `jdbc_meta_default_cache_enable` が true に設定されている場合、新しく作成された JDBC Catalog はデフォルトでメタデータキャッシュの有効期限を設定します。 +- 導入バージョン: - +##### jdbc_minimum_idle_connections + +- デフォルト: 1 +- タイプ: Int +- 単位: - +- 変更可能: いいえ +- 説明: JDBC catalog へのアクセスに使用する JDBC コネクションプールのアイドル接続の最小数。 +- 導入バージョン: - +##### jwt_jwks_url + +- デフォルト値: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: いいえ +- 説明: JSON Web Key Set (JWKS) サービスへのURL、または `fe/conf` ディレクトリ下の公開鍵ローカルファイルへのパス。 +- 導入バージョン: v3.5.0 +##### jwt_principal_field + +- デフォルト: 空文字列 +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: JWT 内のサブジェクト (`sub`) を示すフィールドを識別するために使用される文字列。 デフォルト値は `sub` です。 このフィールドの値は、 StarRocks へのログインに使用するユーザー名と同一である必要があります。 +- 導入: v3.5.0 +##### jwt_required_audience + +- デフォルト値: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: JWT 内のオーディエンス (`aud`) を識別するために使用される文字列のリスト。リスト内のいずれかの値が JWT オーディエンスと一致する場合にのみ、JWT は有効と見なされます。 +- 導入バージョン: v3.5.0 +##### jwt_required_issuer + +- デフォルト値: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能かどうか: いいえ +- 説明: JWT 内の発行者 (`iss`) を識別するために使用される文字列のリスト。リスト内のいずれかの値が JWT の発行者と一致する場合にのみ、JWT は有効と見なされます。 +- 導入バージョン: v3.5.0 +##### locale + +- デフォルト値: zh_CN.UTF-8 +- タイプ: String +- 単位: - +- 変更可能: いいえ +- 説明: FE で使用される文字セットです。 +- 導入: - +##### max_agent_task_threads_num + +- デフォルト値: 4096 +- タイプ: Int +- 単位: - +- 変更可能: いいえ +- 説明: エージェントタスクスレッドプールで許可されるスレッドの最大数。 +- 導入バージョン: - +##### max_download_task_per_be + +- デフォルト値: 0 +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: 各RESTORE操作において、StarRocks が BE ノードに割り当てるダウンロードタスクの最大数。この項目が 0 以下に設定されている場合、タスク数に制限はありません。 +- 導入バージョン: v3.1.0 +##### max_mv_check_base_table_change_retry_times + +- デフォルト値: 10 +- タイプ: - +- 単位: - +- 変更可能: はい +- 説明: マテリアライズドビューをリフレッシュする際に、ベーステーブルの変更を検出するための最大再試行回数。 +- 導入バージョン: v3.3.0 +##### max_mv_refresh_failure_retry_times + +- デフォルト値: 1 +- タイプ: Int +- 単位: - +- 変更可能か: Yes +- 説明: マテリアライズドビューのリフレッシュが失敗した場合の最大リトライ回数。 +- 導入バージョン: v3.3.0 +##### max_mv_refresh_try_lock_failure_retry_times + +- デフォルト値: 3 +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: マテリアライズドビュー のリフレッシュに失敗した場合の、ロック試行の最大リトライ回数。 +- 導入バージョン: v3.3.0 +##### max_small_file_number + +- デフォルト値: 100 +- タイプ: Int +- 単位: - +- 変更可能: Yes +- 説明: FE ディレクトリに保存できる小さなファイルの最大数。 +- 導入バージョン: - +##### max_small_file_size_bytes + +- デフォルト値: 1024 * 1024 +- タイプ: Int +- 単位: Bytes +- 変更可能: はい +- 説明: 小さいファイルの最大サイズ。 +- 導入バージョン: - +##### max_upload_task_per_be + +- デフォルト値: 0 +- タイプ: Int +- 単位: - +- 変更可能か: Yes +- 説明: 各BACKUP操作において、StarRocks が BE ノードに割り当てるアップロードタスクの最大数。この項目が0以下に設定されている場合、タスク数に制限はありません。 +- 導入バージョン: v3.1.0 +##### mv_create_partition_batch_interval_ms + +- デフォルト値: 1000 +- タイプ: Int +- 単位: ms +- 変更可能: はい +- 説明: マテリアライズドビューのリフレッシュ中に、複数のパーティションを一括で作成する必要がある場合、システムはそれらを64個のパーティションずつのバッチに分割します。パーティションの頻繁な作成による障害のリスクを軽減するために、各バッチ間にデフォルトの間隔(ミリ秒単位)を設定して、作成頻度を制御します。 +- 導入バージョン: v3.3 +##### mv_plan_cache_max_size + +- デフォルト値: 1000 +- タイプ: Long +- 単位: +- 変更可能: はい +- 説明: マテリアライズドビューのプランキャッシュの最大サイズ(マテリアライズドビューの書き換えに使用されます)。透過的なクエリの書き換えに使用されるマテリアライズドビューが多い場合は、この値を大きくすることができます。 +- 導入バージョン: v3.2 +##### mv_plan_cache_thread_pool_size + +- デフォルト値: 3 +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: マテリアライズドビューのプランキャッシュ (マテリアライズドビューのクエリの書き換えに使用) のデフォルトのスレッドプールサイズ。 +- 導入バージョン: v3.2 +##### mv_refresh_default_planner_optimize_timeout + +- デフォルト値: 30000 +- タイプ: - +- 単位: - +- 変更可能: はい +- 説明: マテリアライズドビューをリフレッシュする際の、オプティマイザのプランニングフェーズにおけるデフォルトのタイムアウト時間です。 +- 初出バージョン: v3.3.0 +##### mv_refresh_fail_on_filter_data + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能か: Yes +- 説明: リフレッシュ中にフィルタリングされたデータがある場合、マテリアライズドビューのリフレッシュが失敗するかどうか。デフォルトでは true です。false の場合、フィルタリングされたデータを無視して成功を返します。 +- 導入バージョン: - +##### mv_refresh_try_lock_timeout_ms + +- デフォルト値: 30000 +- タイプ: Int +- 単位: ミリ秒 +- 変更可能: はい +- 説明: マテリアライズドビューのリフレッシュが、ベーステーブル/マテリアライズドビューのDBロックを試行する際の、デフォルトのtry lockタイムアウトです。 +- 導入バージョン: v3.3.0 +##### oauth2_auth_server_url + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: いいえ +- 説明: 認証URL。OAuth 2.0 認証プロセスを開始するために、ユーザーのブラウザがリダイレクトされるURLです。 +- 導入バージョン: v3.5.0 +##### oauth2_client_id + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: StarRocks クライアントの公開識別子。 +- 導入バージョン: v3.5.0 +##### oauth2_client_secret + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: StarRocks クライアントを認証サーバーで認証するために使用されるシークレットです。 +- 導入バージョン: v3.5.0 +##### oauth2_jwks_url + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: JSON Web Key Set (JWKS) サービスへのURL、または `conf` ディレクトリ下のローカルファイルへのパス。 +- 導入バージョン: v3.5.0 +##### oauth2_principal_field + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能: いいえ +- 説明: JWT 内のサブジェクト (`sub`) を示すフィールドを識別するために使用される文字列。デフォルト値は `sub` です。このフィールドの値は、 StarRocks へのログインに使用するユーザー名と同一である必要があります。 +- 導入: v3.5.0 +##### oauth2_redirect_url + +- デフォルト値: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能: No +- 説明: OAuth 2.0認証が成功した後、ユーザーのブラウザがリダイレクトされるURL。 認証コードはこのURLに送信されます。 ほとんどの場合、`http://:/api/oauth2`として構成する必要があります。 +- 導入バージョン: v3.5.0 +##### oauth2_required_audience + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能: いいえ +- 説明: JWT 内のオーディエンス (`aud`) を識別するために使用される文字列のリスト。リスト内のいずれかの値が JWT オーディエンスと一致する場合にのみ、JWT は有効と見なされます。 +- 導入バージョン: v3.5.0 +##### oauth2_required_issuer + +- デフォルト: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能: いいえ +- 説明: JWT 内の発行者 (`iss`) を識別するために使用される文字列のリスト。リスト内のいずれかの値が JWT の発行者と一致する場合にのみ、JWT は有効と見なされます。 +- 導入バージョン: v3.5.0 +##### oauth2_token_server_url + +- デフォルト値: 空の文字列 +- タイプ: String +- 単位: - +- 変更可能か: いいえ +- 説明: StarRocks がアクセス トークンを取得する、認証サーバー上のエンドポイントの URL。 +- 導入バージョン: v3.5.0 +##### plugin_dir + +- デフォルト値: System.getenv("STARROCKS_HOME") + "/plugins" +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: プラグインインストールパッケージを格納するディレクトリ。 +- 導入: - +##### plugin_enable + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: はい +- 説明: プラグインを FE にインストールできるかどうか。プラグインは Leader FE でのみインストールまたはアンインストールできます。 +- 導入: - +##### proc_profile_jstack_depth + +- デフォルト値: 128 +- タイプ: Int +- 単位: - +- 変更可能: Yes +- 説明: システムがCPUとメモリのプロファイルを収集する際の、Javaスタックの最大の深さ。この値は、サンプリングされた各スタックに対してキャプチャされるJavaスタックフレームの数を制御します。値を大きくすると、トレースの詳細と出力サイズが増加し、プロファイリングのオーバーヘッドが増える可能性があります。値を小さくすると、詳細が減少します。この設定は、CPUとメモリのプロファイリングの両方でプロファイラが開始されるときに使用されるため、診断のニーズとパフォーマンスへの影響のバランスを取るように調整してください。 +- 導入バージョン: - +##### proc_profile_mem_enable + +- デフォルト値: true +- 型: Boolean +- 単位: - +- 変更可能: Yes +- 説明: プロセスのメモリ割り当てプロファイルを収集するかどうか。この項目を `true` に設定すると、システムは `sys_log_dir/proc_profile` の下に `mem-profile-.html` という名前の HTML プロファイルを生成し、サンプリング中に `proc_profile_collect_time_s` 秒間スリープし、Java スタックの深さに `proc_profile_jstack_depth` を使用します。生成されたファイルは、`proc_profile_file_retained_days` と `proc_profile_file_retained_size_bytes` に従って圧縮およびパージされます。ネイティブ抽出パスは、`/tmp` の noexec の問題を回避するために `STARROCKS_HOME_DIR` を使用します。この項目は、メモリ割り当てのホットスポットのトラブルシューティングを目的としています。有効にすると、CPU、I/O、およびディスクの使用量が増加し、大きなファイルが生成される可能性があります。 +- 導入バージョン: v3.2.12 +##### query_detail_explain_level + +- デフォルト値: COSTS +- タイプ: String +- 単位: - +- 変更可能: true +- 説明: EXPLAIN ステートメントによって返されるクエリプランの詳細レベル。有効な値: COSTS、NORMAL、VERBOSE。 +- 導入バージョン: v3.2.12、v3.3.5 +##### replication_interval_ms + +- デフォルト値: 100 +- タイプ: Int +- 単位: - +- 変更可能か: いいえ +- 説明: レプリケーションタスクがスケジュールされる最小時間間隔。 +- 導入バージョン: v3.3.5 +##### replication_max_parallel_data_size_mb + +- デフォルト値: 1048576 +- タイプ: Int +- 単位: MB +- 変更可能: はい +- 説明: 並行同期が許可されるデータの最大サイズ。 +- 導入バージョン: v3.3.5 +##### replication_max_parallel_replica_count + +- デフォルト値: 10240 +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: 同時同期が許可される tablet レプリカの最大数。 +- 導入バージョン: v3.3.5 +##### replication_max_parallel_table_count + +- デフォルト値: 100 +- タイプ: Int +- 単位: - +- 変更可能か: Yes +- 説明: 許可される同時データ同期タスクの最大数。 StarRocks は、テーブルごとに1つの同期タスクを作成します。 +- 導入バージョン: v3.3.5 +##### replication_transaction_timeout_sec + +- デフォルト値: 86400 +- タイプ: Int +- 単位: 秒 +- 変更可能: はい +- 説明: 同期タスクのタイムアウト期間。 +- 導入バージョン: v3.3.5 +##### skip_whole_phase_lock_mv_limit + +- デフォルト値: 5 +- タイプ: Int +- 単位: - +- 変更可能か: Yes +- 説明: StarRocks が、関連するマテリアライズドビューを持つテーブルに対して「ロックなし」最適化を適用するタイミングを制御します。この項目が 0 未満に設定されている場合、システムは常にロックなし最適化を適用し、クエリのために関連するマテリアライズドビューをコピーしません (FE のメモリ使用量とメタデータのコピー/ロック競合は削減されますが、メタデータの同時実行性の問題のリスクが増加する可能性があります)。0 に設定されている場合、ロックなし最適化は無効になります (システムは常に安全なコピーアンドロックパスを使用します)。0 より大きい値に設定されている場合、ロックなし最適化は、関連するマテリアライズドビューの数が、設定されたしきい値以下のテーブルに対してのみ適用されます。さらに、値が 0 以上の場合、プランナーはクエリ OLAP テーブルをオプティマイザコンテキストに記録し、マテリアライズドビュー関連の書き換えパスを有効にします。0 未満の場合、このステップはスキップされます。 +- 導入バージョン: v3.2.1 +##### small_file_dir + +- デフォルト値: StarRocksFE.STARROCKS_HOME_DIR + "/small_files" +- タイプ: String +- 単位: - +- 変更可能か: いいえ +- 説明: スモールファイルのルートディレクトリ。 +- 導入バージョン: - +##### task_runs_max_history_number + +- デフォルト: 10000 +- タイプ: Int +- 単位: - +- 変更可能: はい +- 説明: メモリに保持するタスク実行レコードの最大数。アーカイブされたタスク実行履歴をクエリする際のデフォルトの LIMIT として使用されます。`enable_task_history_archive` が false の場合、この値はインメモリ履歴の範囲を制限します。強制的に GC は古いエントリを削除し、最新の `task_runs_max_history_number` のみが残ります。アーカイブ履歴がクエリされる場合(明示的な LIMIT が指定されていない場合)、この値が 0 より大きい場合、`TaskRunHistoryTable.lookup` は `"ORDER BY create_time DESC LIMIT "` を使用します。注意: これを 0 に設定すると、クエリ側の LIMIT は無効になります(上限なし)。ただし、アーカイブが有効になっていない限り、インメモリ履歴は 0 に切り捨てられます。 +- 導入バージョン: v3.2.0 +##### tmp_dir + +- デフォルト値: StarRocksFE.STARROCKS_HOME_DIR + "/temp_dir" +- タイプ: String +- 単位: - +- 変更可能か: No +- 説明: バックアップやリストアの手順中に生成されるファイルなど、一時ファイルを保存するディレクトリ。これらの手順が完了すると、生成された一時ファイルは削除されます。 +- 導入バージョン: - +##### transform_type_prefer_string_for_varchar + +- デフォルト値: true +- タイプ: Boolean +- 単位: - +- 変更可能: Yes +- 説明: マテリアライズドビューの作成およびCTAS操作において、固定長のvarcharカラムに対してstring型を優先するかどうかを指定します。 +- 導入バージョン: v4.0.0 + + \ No newline at end of file diff --git a/docs/zh/FE_configuration.md b/docs/zh/FE_configuration.md new file mode 100644 index 00000000..3905c2d8 --- /dev/null +++ b/docs/zh/FE_configuration.md @@ -0,0 +1,3994 @@ +--- +displayed_sidebar: docs +--- + +import FEConfigMethod from '../../_assets/commonMarkdown/FE_config_method.mdx' + +import AdminSetFrontendNote from '../../_assets/commonMarkdown/FE_config_note.mdx' + +import StaticFEConfigNote from '../../_assets/commonMarkdown/StaticFE_config_note.mdx' + +import EditionSpecificFEItem from '../../_assets/commonMarkdown/Edition_Specific_FE_Item.mdx' + +# FE 配置 + + +## 查看FE配置项 + +FE启动后,您可以在MySQL客户端执行 `ADMIN SHOW FRONTEND CONFIG` 命令来查看参数配置。如果您想查询特定参数的配置,请执行以下命令: + +```SQL +ADMIN SHOW FRONTEND CONFIG [LIKE "pattern"]; +``` + +关于返回字段的详细描述,请参见 [ADMIN SHOW CONFIG](../../sql-reference/sql-statements/cluster-management/config_vars/ADMIN_SHOW_CONFIG.md) 。 + +:::note +您必须具有管理员权限才能运行集群管理相关的命令。 +::: +## 配置 FE 参数 +### 配置 FE 动态参数 + +您可以使用 [ADMIN SET FRONTEND CONFIG](../../sql-reference/sql-statements/cluster-management/config_vars/ADMIN_SET_CONFIG.md) 来配置或修改 FE 动态参数的设置。 + +```SQL +ADMIN SET FRONTEND CONFIG ("key" = "value"); +``` + + +### 配置 FE 静态参数 + + +## 了解 FE 参数 +### 日志记录 +##### audit_log_delete_age + +- 默认值:30d +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:审计日志文件的保留期限。默认值 `30d` 指定每个审计日志文件可以保留 30 天。StarRocks 会检查每个审计日志文件,并删除 30 天前生成的文件。 +- 引入版本:- +##### audit_log_dir + +- 默认值:StarRocksFE.STARROCKS_HOME_DIR + "/log" +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:存储审计日志文件的目录。 +- 引入版本:- +##### audit_log_enable_compress + +- 默认值:false +- 类型:Boolean +- 单位:N/A +- 是否可修改:否 +- 描述:如果为 true,则生成的 Log4j2 配置会将“.gz”后缀附加到轮转的审计日志文件名 (fe.audit.log.*),以便 Log4j2 在翻转时生成压缩的 (.gz) 归档审计日志文件。此设置在 FE 启动期间的 Log4jConfig.initLogging 中读取,并应用于审计日志的 RollingFile appender;它仅影响轮转/归档的文件,而不影响活动的审计日志。由于该值在启动时初始化,因此更改它需要重新启动 FE 才能生效。与审计日志轮转设置(audit_log_dir、audit_log_roll_interval、audit_roll_maxsize、audit_log_roll_num)一起使用。 +- 引入版本:3.2.12 +##### audit_log_json_format + +- 默认值:false +- 类型:Boolean +- 单位:N/A +- 是否可变:是 +- 描述:如果设置为 true,FE 审计事件将以结构化的 JSON 格式(Jackson ObjectMapper 序列化带注释的 AuditEvent 字段的 Map)发出,而不是默认的管道分隔的“key=value”字符串。此设置会影响 AuditLogBuilder 处理的所有内置审计接收器:连接审计、查询审计、大查询审计(当事件符合条件时,大查询阈值字段会添加到 JSON 中)和慢查询审计输出。为大查询阈值和“features”字段添加注释的字段会进行特殊处理(从普通审计条目中排除;根据适用情况包含在大查询或功能日志中)。启用此功能可以使日志可供日志收集器或 SIEM 进行机器解析;请注意,它会更改日志格式,并且可能需要更新任何期望使用旧的管道分隔格式的现有解析器。 +- 引入版本:3.2.7 +##### audit_log_modules + +- 默认值:slow_query, query +- 类型:String[] +- 单位:- +- 是否可变:否 +- 描述:StarRocks 生成审计日志条目的模块。默认情况下,StarRocks 为 `slow_query` 模块和 `query` 模块生成审计日志。从 v3.0 版本开始,支持 `connection` 模块。使用逗号 (,) 和空格分隔模块名称。 +- 引入版本:- +##### audit_log_roll_interval + +- 默认值:DAY +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:StarRocks 滚动审计日志条目的时间间隔。有效值:`DAY` 和 `HOUR`。 + - 如果此参数设置为 `DAY`,则会将 `yyyyMMdd` 格式的后缀添加到审计日志文件的名称中。 + - 如果此参数设置为 `HOUR`,则会将 `yyyyMMddHH` 格式的后缀添加到审计日志文件的名称中。 +- 引入版本:- +##### audit_log_roll_num + +- 默认值:90 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:在 `audit_log_roll_interval` 参数指定的每个保留周期内,可以保留的审计日志文件的最大数量。 +- 引入版本:- +##### bdbje_log_level + +- 默认值:INFO +- 类型:String +- 单位:- +- 是否可变:否 +- 描述:控制 StarRocks 中 Berkeley DB Java Edition (BDB JE) 使用的日志级别。在 BDB 环境初始化期间,`BDBEnvironment.initConfigs()` 将此值应用于 `com.sleepycat.je` 包的 Java 日志记录器和 BDB JE 环境文件日志级别 (EnvironmentConfig.FILE_LOGGING_LEVEL)。接受标准的 java.util.logging.Level 名称,例如 SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST、ALL、OFF。设置为 ALL 将启用所有日志消息。增加详细程度会增加日志量,并可能影响磁盘 I/O 和性能;该值在 BDB 环境初始化时读取,因此仅在环境(重新)初始化后生效。 +- 引入版本:v3.2.0 +##### big_query_log_delete_age + +- 默认值:7d +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:控制 FE 大查询日志文件(`fe.big_query.log.*`)在自动删除之前保留的时间。该值作为 IfLastModified age 传递给 Log4j 的删除策略——任何上次修改时间早于此值的轮转大查询日志都将被删除。支持的后缀包括 `d`(天)、`h`(小时)、`m`(分钟)和 `s`(秒)。例如:`7d`(7 天)、`10h`(10 小时)、`60m`(60 分钟)和 `120s`(120 秒)。此项与 `big_query_log_roll_interval` 和 `big_query_log_roll_num` 协同工作,以确定要保留或清除的文件。 +- 引入版本:v3.2.0 +##### big_query_log_dir + +- 默认值: `Config.STARROCKS_HOME_DIR + "/log"` +- 类型: String +- 单位: - +- 是否可变: 否 +- 描述: FE 写入大查询转储日志 (`fe.big_query.log.*`) 的目录。Log4j 配置使用此路径为 `fe.big_query.log` 及其轮转文件创建 RollingFile appender。轮转和保留由 `big_query_log_roll_interval` (基于时间的后缀)、`log_roll_size_mb` (大小触发器)、`big_query_log_roll_num` (最大文件数) 和 `big_query_log_delete_age` (基于时间的删除) 管理。大查询记录会针对超过用户定义阈值的查询进行记录,例如 `big_query_log_cpu_second_threshold`、`big_query_log_scan_rows_threshold` 或 `big_query_log_scan_bytes_threshold`。使用 `big_query_log_modules` 来控制哪些模块将日志记录到此文件。 +- 引入版本: v3.2.0 +##### big_query_log_modules + +- 默认值: `{"query"}` +- 类型: String[] +- 单位: - +- 是否可修改: 否 +- 描述: 启用每个模块的big query日志记录的模块名称后缀列表。典型值是逻辑组件名称。例如,默认值 `query` 会生成 `big_query.query`。 +- 引入版本: v3.2.0 +##### big_query_log_roll_interval + +- 默认值: `"DAY"` +- 类型: String +- 单位: - +- 是否可修改: 否 +- 描述: 指定用于构造 `big_query` 日志追加器的滚动文件名中的日期部分的时间间隔。有效值(不区分大小写)为 `DAY`(默认值)和 `HOUR`。`DAY` 生成每日模式 (`"%d{yyyyMMdd}"`),`HOUR` 生成每小时模式 (`"%d{yyyyMMddHH}"`)。该值与基于大小的滚动 (`big_query_roll_maxsize`) 和基于索引的滚动 (`big_query_log_roll_num`) 结合使用,以形成 RollingFile filePattern。无效值会导致日志配置生成失败 (IOException),并可能阻止日志初始化或重新配置。与 `big_query_log_dir`、`big_query_roll_maxsize`、`big_query_log_roll_num` 和 `big_query_log_delete_age` 一起使用。 +- 引入版本: v3.2.0 +##### big_query_log_roll_num + +- 默认值:10 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:每个 `big_query_log_roll_interval` 要保留的 FE 大查询轮转日志文件的最大数量。此值绑定到 RollingFile appender 的 DefaultRolloverStrategy `max` 属性,用于 `fe.big_query.log`;当日志轮转(按时间或按 `log_roll_size_mb`)时,StarRocks 最多保留 `big_query_log_roll_num` 个索引文件(filePattern 使用时间后缀加索引)。早于此计数的文件可能会被轮转删除,并且 `big_query_log_delete_age` 还可以按上次修改时间删除文件。 +- 引入版本:v3.2.0 +##### dump_log_delete_age + +- 默认值:7d +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:Dump 日志文件的保留期限。默认值 `7d` 指定每个 Dump 日志文件可以保留 7 天。StarRocks 会检查每个 Dump 日志文件,并删除 7 天前生成的日志文件。 +- 引入版本:- +##### dump_log_dir + +- 默认值: StarRocksFE.STARROCKS_HOME_DIR + "/log" +- 类型: String +- 单位: - +- 是否可修改: 否 +- 描述: 存储 dump 日志文件的目录。 +- 引入版本: - +##### dump_log_modules + +- 默认值:query +- 类型:String[] +- 单位:- +- 是否可变:否 +- 描述:用于指定 StarRocks 生成 dump 日志的模块。默认情况下,StarRocks 会为 query 模块生成 dump 日志。使用英文逗号 (,) 和空格分隔模块名称。 +- 引入版本:- +##### dump_log_roll_interval + +- 默认值:DAY +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:StarRocks 转储日志条目的时间间隔。有效值:`DAY` 和 `HOUR`。 + - 如果此参数设置为 `DAY`,则会将 `yyyyMMdd` 格式的后缀添加到转储日志文件的名称中。 + - 如果此参数设置为 `HOUR`,则会将 `yyyyMMddHH` 格式的后缀添加到转储日志文件的名称中。 +- 引入版本:- +##### dump_log_roll_num + +- 默认值: 10 +- 类型: Int +- 单位: - +- 是否可修改: 否 +- 描述: 在 `dump_log_roll_interval` 参数指定的每个保留期内,可以保留的最大 dump 日志文件数。 +- 引入版本: - +##### edit_log_write_slow_log_threshold_ms + +- 默认值:2000 +- 类型:Int +- 单位:毫秒 +- 是否可修改:是 +- 描述:JournalWriter 使用的阈值(以毫秒为单位),用于检测和记录慢速 edit-log 批量写入。在批量提交后,如果批量持续时间超过此值,JournalWriter 会发出一个 WARN,其中包含批量大小、持续时间和当前 journal 队列大小(速率限制为大约每 2 秒一次)。此设置仅控制 FE 的 Leader 节点上潜在的 IO 或复制延迟的日志记录/警报;它不会更改提交或回滚行为(请参阅 `edit_log_roll_num` 和与提交相关的设置)。无论此阈值如何,指标更新仍然会发生。 +- 引入版本:v3.2.3 +##### enable_audit_sql + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:否 +- 描述:当此项设置为 `true` 时,FE 审计子系统会将语句的 SQL 文本记录到 FE 审计日志 (`fe.audit.log`) 中,这些语句由 ConnectProcessor 处理。存储的语句遵循其他控制:加密语句会被编辑 (`AuditEncryptionChecker`),如果设置了 `enable_sql_desensitize_in_log`,敏感凭据可能会被编辑或脱敏,摘要记录由 `enable_sql_digest` 控制。当设置为 `false` 时,ConnectProcessor 会将审计事件中的语句文本替换为 "?" —— 其他审计字段(用户、主机、持续时间、状态、通过 `qe_slow_log_ms` 进行的慢查询检测以及指标)仍然会被记录。启用 SQL 审计可以提高取证和故障排除的可见性,但可能会暴露敏感的 SQL 内容并增加日志量和 I/O;禁用它可以提高隐私,但会失去审计日志中的完整语句可见性。 +- 引入版本:- +##### enable_profile_log + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:否 +- 描述:是否启用 profile 日志。启用此功能后,FE 会将每个查询的 profile 日志(由 `ProfileManager` 生成的序列化 `queryDetail` JSON)写入 profile 日志接收器。只有在同时启用 `enable_collect_query_detail_info` 时,才会执行此日志记录;当启用 `enable_profile_log_compress` 时,JSON 可能会在记录之前进行 gzip 压缩。Profile 日志文件由 `profile_log_dir`、`profile_log_roll_num`、`profile_log_roll_interval` 管理,并根据 `profile_log_delete_age` 轮换/删除(支持 `7d`、`10h`、`60m`、`120s` 等格式)。禁用此功能会停止写入 profile 日志(减少磁盘 I/O、压缩 CPU 和存储使用量)。 +- 引入版本:v3.2.5 +##### enable_qe_slow_log + +- 默认值:true +- 类型:Boolean +- 单位:N/A +- 是否可变:是 +- 描述:启用后,FE 内置的审计插件 (AuditLogBuilder) 会将执行时间(“Time”字段)超过 `qe_slow_log_ms` 配置的阈值的查询事件写入慢查询审计日志 (AuditLog.getSlowAudit)。如果禁用,这些慢查询条目将被抑制(常规查询和连接审计日志不受影响)。慢审计条目遵循全局 `audit_log_json_format` 设置(JSON 与纯字符串)。使用此标志可以独立于常规审计日志记录来控制慢查询审计卷的生成;当 `qe_slow_log_ms` 较低或工作负载产生许多长时间运行的查询时,关闭它可以减少日志 I/O。 +- 引入版本:3.2.11 +##### enable_sql_desensitize_in_log + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可变:否 +- 描述:如果此项设置为 `true`,系统会在将敏感 SQL 内容写入日志和查询详情记录之前,替换或隐藏这些内容。遵循此配置的代码路径包括 ConnectProcessor.formatStmt(审计日志)、StmtExecutor.addRunningQueryDetail(查询详情)和 SimpleExecutor.formatSQL(内部执行器日志)。启用此功能后,无效的 SQL 可能会被替换为固定的脱敏消息,凭据(用户/密码)会被隐藏,并且 SQL 格式化程序需要生成经过清理的表示形式(它还可以启用摘要式输出)。这减少了审计/内部日志中敏感字面量和凭据的泄漏,但也意味着日志和查询详情不再包含原始的完整 SQL 文本(这可能会影响重放或调试)。 +- 引入版本:- +##### internal_log_delete_age + +- 默认值:7d +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:指定 FE 内部日志文件(写入到 `internal_log_dir`)的保留期限。该值是一个持续时间字符串。支持的后缀:`d`(天)、`h`(小时)、`m`(分钟)、`s`(秒)。示例:`7d`(7 天)、`10h`(10 小时)、`60m`(60 分钟)、`120s`(120 秒)。此项被替换到 log4j 配置中,作为 RollingFile Delete 策略使用的 `` 谓词。在日志滚动期间,将删除上次修改时间早于此持续时间的文件。增加此值可以更快地释放磁盘空间,或者减少此值可以更长时间地保留内部物化视图或统计信息日志。 +- 引入版本:v3.2.4 +##### internal_log_dir + +- 默认值: `Config.STARROCKS_HOME_DIR + "/log"` +- 类型: String +- 单位: - +- 是否可修改: 否 +- 描述: FE 日志子系统用于存储内部日志 (`fe.internal.log`) 的目录。此配置被替换到 Log4j 配置中,并确定 InternalFile appender 将内部/物化视图/统计信息日志写入的位置,以及 `internal.` 下的每个模块记录器放置其文件的位置。确保目录存在、可写且具有足够的磁盘空间。此目录中文件的日志滚动和保留由 `log_roll_size_mb`、`internal_log_roll_num`、`internal_log_delete_age` 和 `internal_log_roll_interval` 控制。如果启用了 `sys_log_to_console`,则内部日志可能会写入控制台而不是此目录。 +- 引入版本: v3.2.4 +##### internal_log_json_format + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:如果设置为 `true`,内部统计/审计条目将作为紧凑的 JSON 对象写入统计审计日志记录器。JSON 包含键 "executeType" (InternalType: QUERY 或 DML)、"queryId"、"sql" 和 "time" (经过的毫秒数)。如果设置为 `false`,则相同的信息将记录为单个格式化的文本行("statistic execute: ... | QueryId: [...] | SQL: ...")。启用 JSON 可以提高机器解析能力以及与日志处理器的集成,但也会导致原始 SQL 文本包含在日志中,这可能会暴露敏感信息并增加日志大小。 +- 引入版本:- +##### internal_log_modules + +- 默认值: `{"base", "statistic"}` +- 类型: String[] +- 单位: - +- 是否可变: 否 +- 描述: 接收专用内部日志的模块标识符列表。对于每个条目 X,Log4j 会创建一个名为 `internal.<X>` 的 logger,级别为 INFO,并且 additivity="false"。这些 logger 会路由到内部 appender(写入到 `fe.internal.log`),或者在启用 `sys_log_to_console` 时路由到控制台。根据需要使用短名称或包片段 — 确切的 logger 名称变为 `internal.` + 配置的字符串。内部日志文件轮转和保留遵循 `internal_log_dir`、`internal_log_roll_num`、`internal_log_delete_age`、`internal_log_roll_interval` 和 `log_roll_size_mb`。添加模块会导致其运行时消息被分离到内部 logger 流中,以便更轻松地进行调试和审计。 +- 引入版本: v3.2.4 +##### internal_log_roll_interval + +- 默认值:DAY +- 类型:String +- 单位:- +- 是否可变:否 +- 描述:控制 FE 内部日志追加器的基于时间的滚动间隔。可接受的值(不区分大小写)为 `HOUR` 和 `DAY`。`HOUR` 生成每小时的文件模式(`"%d{yyyyMMddHH}"`),`DAY` 生成每日文件模式(`"%d{yyyyMMdd}"`),这些模式由 RollingFile TimeBasedTriggeringPolicy 用于命名轮转的 `fe.internal.log` 文件。无效值会导致初始化失败(构建活动 Log4j 配置时会抛出 IOException)。滚动行为还取决于相关设置,例如 `internal_log_dir`、`internal_roll_maxsize`、`internal_log_roll_num` 和 `internal_log_delete_age`。 +- 引入版本:v3.2.4 +##### internal_log_roll_num + +- 默认值: 90 +- 类型: Int +- 单位: - +- 是否可修改: 否 +- 描述: 内部 appender (`fe.internal.log`) 要保留的内部 FE 日志文件的最大滚动数量。此值用作 Log4j DefaultRolloverStrategy 的 `max` 属性;发生滚动时,StarRocks 最多保留 `internal_log_roll_num` 个存档文件,并删除较旧的文件(也由 `internal_log_delete_age` 管理)。较低的值会减少磁盘使用量,但会缩短日志历史记录;较高的值会保留更多历史内部日志。此项与 `internal_log_dir`、`internal_log_roll_interval` 和 `internal_roll_maxsize` 协同工作。 +- 引入版本: v3.2.4 +##### log_cleaner_audit_log_min_retention_days + +- 默认值:3 +- 类型:Int +- 单位:天 +- 是否可修改:是 +- 描述:审计日志文件的最短保留天数。即使磁盘使用率很高,也不会删除比此时间新的审计日志文件。这样可确保为合规性和故障排除目的保留审计日志。 +- 引入版本:- +##### log_cleaner_check_interval_second + +- 默认值:300 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:检查磁盘使用情况和清理日志的间隔(秒)。清理程序会定期检查每个日志目录的磁盘使用情况,并在必要时触发清理。默认值为 300 秒(5 分钟)。 +- 引入版本:- +##### log_cleaner_disk_usage_target + +- 默认值:60 +- 类型:Int +- 单位:百分比 +- 是否可修改:是 +- 描述:日志清理后的目标磁盘使用率(百分比)。日志清理将持续进行,直到磁盘使用率降至此阈值以下。清理器会逐个删除最旧的日志文件,直到达到目标值为止。 +- 引入版本:- +##### log_cleaner_disk_usage_threshold + +- 默认值:80 +- 类型:Int +- 单位:百分比 +- 是否可变:是 +- 描述:触发日志清理的磁盘使用率阈值(百分比)。当磁盘使用率超过此阈值时,将启动日志清理。清理程序会独立检查每个配置的日志目录,并处理超过此阈值的目录。 +- 引入版本:- +##### log_cleaner_disk_util_based_enable + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:启用基于磁盘使用率的自动日志清理。 启用后,当磁盘使用率超过阈值时,将清理日志。 日志清理器作为 FE 节点上的后台守护程序运行,有助于防止日志文件累积导致磁盘空间耗尽。 +- 引入版本:- +##### log_plan_cancelled_by_crash_be + +- 默认值:true +- 类型:boolean +- 单位:- +- 是否可修改:是 +- 描述:是否在查询因 BE 崩溃或 RPC 异常而取消时,启用查询执行计划日志记录。启用此功能后,当查询因 BE 崩溃或 `RpcException` 而取消时,StarRocks 会将查询执行计划(位于 `TExplainLevel.COSTS`)记录为 WARN 条目。该日志条目包括 QueryId、SQL 和 COSTS 计划;在 ExecuteExceptionHandler 路径中,还会记录异常堆栈跟踪。当启用 `enable_collect_query_detail_info` 时,将跳过日志记录(计划随后存储在查询详细信息中)——在代码路径中,通过验证查询详细信息是否为空来执行检查。请注意,在 ExecuteExceptionHandler 中,仅在第一次重试时记录计划 (`retryTime == 0`)。启用此功能可能会增加日志量,因为完整的 COSTS 计划可能很大。 +- 引入版本:v3.2.0 +##### log_register_and_unregister_query_id + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否允许 FE 记录来自 QeProcessorImpl 的查询注册和注销消息(例如,`"register query id = {}"` 和 `"deregister query id = {}"`)。仅当查询具有非空的 ConnectContext 且命令不是 `COM_STMT_EXECUTE` 或会话变量 `isAuditExecuteStmt()` 为 true 时,才会发出日志。由于这些消息是为每个查询生命周期事件编写的,因此启用此功能可能会产生大量的日志,并在高并发环境中成为吞吐量瓶颈。启用它可以进行调试或审计;禁用它可以减少日志记录开销并提高性能。 +- 引入版本:v3.3.0、v3.4.0、v3.5.0 +##### log_roll_size_mb + +- 默认值:1024 +- 类型:Int +- 单位:MB +- 是否可修改:否 +- 描述:系统日志文件或审计日志文件的最大大小。 +- 引入版本:- +##### proc_profile_file_retained_days + +- 默认值:1 +- 类型:Int +- 单位:天 +- 是否可变:是 +- 描述:在 `sys_log_dir/proc_profile` 目录下生成的进程分析文件(CPU 和内存)的保留天数。ProcProfileCollector 通过从当前时间(格式为 yyyyMMdd-HHmmss)减去 `proc_profile_file_retained_days` 天来计算截止时间,并删除时间戳部分在字典顺序上早于该截止时间的 profile 文件(即 timePart.compareTo(timeToDelete) < 0)。文件删除也遵守由 `proc_profile_file_retained_size_bytes` 控制的基于大小的截止时间。Profile 文件使用前缀 `cpu-profile-` 和 `mem-profile-`,并在收集后进行压缩。 +- 引入版本:v3.2.12 +##### proc_profile_file_retained_size_bytes + +- 默认值:2L * 1024 * 1024 * 1024 (2147483648) +- 类型:Long +- 单位:Bytes +- 是否可变:是 +- 描述:在 profile 目录下,保留的 CPU 和内存 profile 文件(文件名前缀为 `cpu-profile-` 和 `mem-profile-`)的最大总字节数。当有效 profile 文件的总和超过 `proc_profile_file_retained_size_bytes` 时,收集器将删除最旧的 profile 文件,直到剩余总大小小于或等于 `proc_profile_file_retained_size_bytes`。早于 `proc_profile_file_retained_days` 的文件也会被删除,无论大小如何。此设置控制 profile 归档的磁盘使用量,并与 `proc_profile_file_retained_days` 交互以确定删除顺序和保留时间。 +- 引入版本:v3.2.12 +##### profile_log_delete_age + +- 默认值:1d +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:控制 FE profile 日志文件在符合删除条件前保留的时间。该值被注入到 Log4j 的 `<IfLastModified age="..."/>` 策略中(通过 `Log4jConfig`),并与 `profile_log_roll_interval` 和 `profile_log_roll_num` 等轮转设置一起应用。支持的后缀:`d`(天)、`h`(小时)、`m`(分钟)、`s`(秒)。例如:`7d`(7 天)、`10h`(10 小时)、`60m`(60 分钟)、`120s`(120 秒)。 +- 引入版本:v3.2.5 +##### profile_log_dir + +- 默认值: `Config.STARROCKS_HOME_DIR + "/log"` +- 类型: String +- 单位: - +- 是否可变: 否 +- 描述: FE profile 日志的写入目录。Log4jConfig 使用此值来放置与 profile 相关的 appender (在此目录下创建 `fe.profile.log` 和 `fe.features.log` 等文件)。这些文件的滚动和保留由 `profile_log_roll_size_mb`、`profile_log_roll_num` 和 `profile_log_delete_age` 控制;时间戳后缀格式由 `profile_log_roll_interval` 控制 (支持 DAY 或 HOUR)。由于默认目录位于 `STARROCKS_HOME_DIR` 下,请确保 FE 进程对该目录具有写入和滚动/删除权限。 +- 引入版本: v3.2.5 +##### profile_log_roll_interval + +- 默认值:DAY +- 类型:String +- 单位:- +- 是否可变:否 +- 描述:控制用于生成 profile 日志文件名的日期部分的时间粒度。有效值(不区分大小写)为 `HOUR` 和 `DAY`。`HOUR` 生成 `"%d{yyyyMMddHH}"` 模式(每小时时间桶),`DAY` 生成 `"%d{yyyyMMdd}"` 模式(每日时间桶)。此值用于计算 Log4j 配置中的 `profile_file_pattern`,并且仅影响基于时间的滚动文件名组件;基于大小的滚动仍然由 `profile_log_roll_size_mb` 控制,保留由 `profile_log_roll_num` / `profile_log_delete_age` 控制。无效值会在日志初始化期间导致 IOException(错误消息:`"profile_log_roll_interval config error: "`)。对于大容量 profiling,选择 `HOUR` 以限制每小时每个文件的大小,或者对于每日聚合,选择 `DAY`。 +- 引入版本:v3.2.5 +##### profile_log_roll_num + +- 默认值:5 +- 类型:Int +- 单位:- +- 是否可变:否 +- 描述:指定 profile 日志记录器通过 Log4j 的 DefaultRolloverStrategy 保留的最大轮转 profile 日志文件数。此值作为 `${profile_log_roll_num}` 注入到日志 XML 中(例如,`<DefaultRolloverStrategy max="${profile_log_roll_num}" fileIndex="min">`)。轮转由 `profile_log_roll_size_mb` 或 `profile_log_roll_interval` 触发;发生轮转时,Log4j 最多保留这些索引文件,并且较旧的索引文件有资格被删除。磁盘上的实际保留也受 `profile_log_delete_age` 和 `profile_log_dir` 位置的影响。较低的值会减少磁盘使用量,但会限制保留的历史记录;较高的值会保留更多历史 profile 日志。 +- 引入版本:v3.2.5 +##### profile_log_roll_size_mb + +- 默认值:1024 +- 类型:Int +- 单位:MB +- 是否可修改:否 +- 描述:设置触发基于大小的 FE profile 日志文件滚动更新的大小阈值(以 MB 为单位)。此值由 Log4j RollingFile SizeBasedTriggeringPolicy 用于 `ProfileFile` appender;当 profile 日志超过 `profile_log_roll_size_mb` 时,它将进行轮换。当达到 `profile_log_roll_interval` 时,也会按时间进行轮换 - 任何一种情况都会触发滚动更新。结合 `profile_log_roll_num` 和 `profile_log_delete_age`,此项控制保留多少历史 profile 文件以及何时删除旧文件。轮换文件的压缩由 `enable_profile_log_compress` 控制。 +- 引入版本:v3.2.5 +##### qe_slow_log_ms + +- 默认值:5000 +- 类型:Long +- 单位:毫秒 +- 是否可修改:是 +- 描述:用于确定查询是否为慢查询的阈值。如果查询的响应时间超过此阈值,则会在 **fe.audit.log** 中将其记录为慢查询。 +- 引入版本:- +##### slow_lock_log_every_ms + +- 默认值: 3000L +- 类型: Long +- 单位: 毫秒 +- 是否可变: 是 +- 描述: 在为同一 SlowLockLogStats 实例发出另一个 "slow lock" 警告之前,要等待的最小间隔(以毫秒为单位)。LockUtils 在锁等待时间超过 slow_lock_threshold_ms 后会检查此值,并且会禁止显示其他警告,直到自上次记录的 slow-lock 事件以来已经过了 slow_lock_log_every_ms 毫秒。使用较大的值可以减少长时间争用期间的日志量,或者使用较小的值可以获得更频繁的诊断信息。更改会在运行时生效,以供后续检查。 +- 引入版本: v3.2.0 +##### slow_lock_print_stack + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否允许 LockManager 在 `logSlowLockTrace` 发出的慢锁警告的 JSON payload 中包含拥有线程的完整堆栈跟踪("stack" 数组通过 `LogUtil.getStackTraceToJsonArray` 填充,`start=0` 且 `max=Short.MAX_VALUE`)。此配置仅控制当锁获取超过 `slow_lock_threshold_ms` 配置的阈值时显示的锁持有者的额外堆栈信息。启用此功能通过提供持有锁的精确线程堆栈来帮助调试;禁用此功能可减少高并发环境中捕获和序列化堆栈跟踪所导致的日志量以及 CPU/内存开销。 +- 引入版本:v3.3.16、v3.4.5、v3.5.1 +##### slow_lock_threshold_ms + +- 默认值:3000L +- 类型:long +- 单位:毫秒 +- 是否可修改:是 +- 描述:用于将锁操作或持有的锁归类为“慢速”的阈值(以毫秒为单位)。当锁的等待或持有时间超过此值时,StarRocks 将(根据上下文)发出诊断日志,包括堆栈跟踪或等待者/所有者信息,并且在 LockManager 中,在此延迟后启动死锁检测。它被 LockUtils(慢锁日志记录)、QueryableReentrantReadWriteLock(过滤慢速读取器)、LockManager(死锁检测延迟和慢锁跟踪)、LockChecker(周期性慢锁检测)和其他调用者(例如,DiskAndTabletLoadReBalancer 日志记录)使用。降低该值会增加灵敏度和日志记录/诊断开销;将其设置为 0 或负数会禁用基于初始等待的死锁检测延迟行为。与 slow_lock_log_every_ms、slow_lock_print_stack 和 slow_lock_stack_trace_reserve_levels 一起调整。 +- 引入版本:3.2.0 +##### sys_log_delete_age + +- 默认值:7d +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:系统日志文件的保留期限。默认值 `7d` 指定每个系统日志文件可以保留 7 天。StarRocks 会检查每个系统日志文件,并删除 7 天前生成的日志文件。 +- 引入版本:- +##### sys_log_dir + +- 默认值:StarRocksFE.STARROCKS_HOME_DIR + "/log" +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:存储系统日志文件的目录。 +- 引入版本:- +##### sys_log_enable_compress + +- 默认值:false +- 类型:boolean +- 单位:- +- 是否可修改:否 +- 描述:如果此项设置为 `true`,系统会在轮转的系统日志文件名后追加“.gz”后缀,以便 Log4j 生成 gzip 压缩的 FE 系统轮转日志(例如,fe.log.*)。此值在 Log4j 配置生成期间读取 (Log4jConfig.initLogging / generateActiveLog4jXmlConfig),并控制 RollingFile filePattern 中使用的 `sys_file_postfix` 属性。启用此功能可以减少保留日志的磁盘使用量,但会增加轮转期间的 CPU 和 I/O,并更改日志文件名,因此读取日志的工具或脚本必须能够处理 .gz 文件。请注意,审计日志使用单独的压缩配置,即 `audit_log_enable_compress`。 +- 引入版本:v3.2.12 +##### sys_log_format + +- 默认值: "plaintext" +- 类型: String +- 单位: - +- 是否可修改: 否 +- 描述: 选择用于 FE 日志的 Log4j 布局。有效值: `"plaintext"` (默认) 和 `"json"`。这些值不区分大小写。`"plaintext"` 使用易于理解的时间戳、级别、线程、class.method:line 以及 WARN/ERROR 的堆栈跟踪来配置 PatternLayout。`"json"` 配置 JsonTemplateLayout 并发出结构化的 JSON 事件 (UTC 时间戳、级别、线程 id/name、源文件/方法/行、消息、异常 stackTrace),适用于日志聚合器 (ELK, Splunk)。JSON 输出遵守 `sys_log_json_max_string_length` 和 `sys_log_json_profile_max_string_length` 以获得最大字符串长度。 +- 引入版本: v3.2.10 +##### sys_log_json_max_string_length + +- 默认值:1048576 +- 类型:Int +- 单位:Bytes +- 是否可变:否 +- 描述:设置用于 JSON 格式系统日志的 JsonTemplateLayout "maxStringLength" 值。当 `sys_log_format` 设置为 `"json"` 时,如果字符串值字段(例如 "message" 和字符串化的异常堆栈跟踪)的长度超过此限制,则会被截断。该值被注入到 `Log4jConfig.generateActiveLog4jXmlConfig()` 中生成的 Log4j XML 中,并应用于 default、warning、audit、dump 和 bigquery 布局。profile 布局使用单独的配置 (`sys_log_json_profile_max_string_length`)。降低此值会减小日志大小,但可能会截断有用的信息。 +- 引入版本:3.2.11 +##### sys_log_json_profile_max_string_length + +- 默认值: 104857600 (100 MB) +- 类型: Int +- 单位: 字节 +- 是否可变: 否 +- 描述: 当 `sys_log_format` 为 "json" 时,设置 profile (以及相关功能) 日志追加器的 JsonTemplateLayout 的 maxStringLength。JSON 格式的 profile 日志中的字符串字段值将被截断为此字节长度;非字符串字段不受影响。此项应用于 Log4jConfig `JsonTemplateLayout maxStringLength`,当使用 `plaintext` 日志记录时将被忽略。保持该值足够大,以满足您需要的完整消息,但请注意,较大的值会增加日志大小和 I/O。 +- 引入版本: v3.2.11 +##### sys_log_level + +- 默认值:INFO +- 类型:String +- 单位:- +- 是否可变:否 +- 描述:系统日志条目的分类级别。有效值:`INFO`、`WARN`、`ERROR` 和 `FATAL`。 +- 引入版本:- +##### sys_log_roll_interval + +- 默认值:DAY +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:StarRocks 滚动系统日志条目的时间间隔。有效值:`DAY` 和 `HOUR`。 + - 如果此参数设置为 `DAY`,则会将 `yyyyMMdd` 格式的后缀添加到系统日志文件的名称中。 + - 如果此参数设置为 `HOUR`,则会将 `yyyyMMddHH` 格式的后缀添加到系统日志文件的名称中。 +- 引入版本:- +##### sys_log_roll_num + +- 默认值: 10 +- 类型: Int +- 单位: - +- 是否可修改: 否 +- 描述: 在 `sys_log_roll_interval` 参数指定的每个保留期内,可以保留的系统日志文件的最大数量。 +- 引入版本: - +##### sys_log_to_console + +- 默认值:false(除非环境变量 `SYS_LOG_TO_CONSOLE` 设置为 "1") +- 类型:Boolean +- 单位:- +- 是否可变:否 +- 描述:如果此项设置为 `true`,系统会将 Log4j 配置为将所有日志发送到控制台(ConsoleErr appender),而不是基于文件的 appender。此值在生成活动的 Log4j XML 配置时读取(这会影响根 logger 和每个模块的 logger appender 选择)。它的值是从进程启动时的 `SYS_LOG_TO_CONSOLE` 环境变量中捕获的。在运行时更改它没有任何效果。此配置通常用于容器化或 CI 环境,在这些环境中,stdout/stderr 日志收集优于写入日志文件。 +- 引入版本:v3.2.0 +##### sys_log_verbose_modules + +- 默认值:空字符串 +- 类型:String[] +- 单位:- +- 是否可修改:否 +- 描述:用于生成 StarRocks 系统日志的模块。如果此参数设置为 `org.apache.starrocks.catalog`,则 StarRocks 仅为 catalog 模块生成系统日志。使用逗号 (,) 和空格分隔模块名称。 +- 引入版本:- +##### sys_log_warn_modules + +- 默认值:{} +- 类型:String[] +- 单位:- +- 是否可变:否 +- 描述:系统将在启动时配置为 WARN 级别 logger 并路由到 warning appender (SysWF)(即 `fe.warn.log` 文件)的 logger 名称或包前缀的列表。条目会插入到生成的 Log4j 配置中(与内置的 warn 模块(如 org.apache.kafka、org.apache.hudi 和 org.apache.hadoop.io.compress)一起),并生成如下 logger 元素:``。建议使用完全限定的包和类前缀(例如,“com.example.lib”),以禁止将嘈杂的 INFO/DEBUG 输出到常规日志中,并允许单独捕获警告。 +- 引入版本:v3.2.13 +### 服务器 +##### brpc_idle_wait_max_time + +- 默认值:10000 +- 类型:Int +- 单位:ms +- 是否可修改:否 +- 描述:bRPC 客户端在空闲状态下的最长等待时间。 +- 引入版本:- +##### brpc_inner_reuse_pool + +- 默认值:true +- 类型:boolean +- 单位:- +- 是否可修改:否 +- 描述:控制底层 BRPC 客户端是否使用内部共享重用池来管理连接/通道。StarRocks 在 BrpcProxy 中构造 RpcClientOptions 时读取 `brpc_inner_reuse_pool` (通过 `rpcOptions.setInnerResuePool(...)`)。启用后 (true),RPC 客户端会重用内部池,以减少每次调用创建连接的开销,从而降低 FE 到 BE / LakeService RPC 的连接 churn、内存和文件描述符的使用量。禁用后 (false),客户端可能会创建更隔离的池(以更高的资源使用量为代价来提高并发隔离)。更改此值需要重启进程才能生效。 +- 引入版本:v3.3.11、v3.4.1、v3.5.0 +##### brpc_min_evictable_idle_time_ms + +- 默认值:120000 +- 类型:Int +- 单位:毫秒 +- 是否可修改:否 +- 描述:空闲 BRPC 连接在连接池中必须保持的时间(以毫秒为单位),之后才有资格被驱逐。应用于 `BrpcProxy` 使用的 RpcClientOptions(通过 RpcClientOptions.setMinEvictableIdleTime)。提高此值可以更长时间地保持空闲连接(减少重新连接的 churn);降低此值可以更快地释放未使用的套接字(减少资源使用)。与 `brpc_connection_pool_size` 和 `brpc_idle_wait_max_time` 一起调整,以平衡连接重用、连接池增长和驱逐行为。 +- 引入版本:v3.3.11、v3.4.1、v3.5.0 +##### brpc_reuse_addr + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:否 +- 描述:如果设置为 true,StarRocks 会设置套接字选项,以允许由 brpc RpcClient 创建的客户端套接字重用本地地址(通过 RpcClientOptions.setReuseAddress)。启用此选项可以减少绑定失败,并允许在套接字关闭后更快地重新绑定本地端口,这对于高频率连接或快速重启非常有用。如果设置为 false,则禁用地址/端口重用,这可以减少意外端口共享的可能性,但可能会增加瞬时绑定错误。此选项与 `brpc_connection_pool_size` 和 `brpc_short_connection` 配置的连接行为相互影响,因为它会影响客户端套接字重新绑定和重用的速度。 +- 引入版本:v3.3.11、v3.4.1、v3.5.0 +##### cluster_name + +- 默认值:StarRocks Cluster +- 类型:String +- 单位:- +- 是否可变:否 +- 描述:FE 所属的 StarRocks 集群的名称。集群名称显示在网页上的 `Title` 中。 +- 引入版本:- +##### dns_cache_ttl_seconds + +- 默认值:60 +- 类型:Int +- 单位:秒 +- 是否可修改:否 +- 描述:成功 DNS 查找的 DNS 缓存 TTL(生存时间),以秒为单位。 这将设置 Java 安全属性 `networkaddress.cache.ttl`,该属性控制 JVM 缓存成功 DNS 查找的时间。 将此项设置为 `-1` 以允许系统始终缓存信息,或设置为 `0` 以禁用缓存。 这在 IP 地址频繁更改的环境中特别有用,例如 Kubernetes 部署或使用动态 DNS 时。 +- 引入版本:v3.5.11,v4.0.4 +##### enable_http_async_handler + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否允许系统异步处理 HTTP 请求。如果启用此功能,Netty worker 线程收到的 HTTP 请求将提交到单独的线程池,以进行服务逻辑处理,从而避免阻塞 HTTP 服务器。如果禁用,Netty worker 将处理服务逻辑。 +- 引入版本:4.0.0 +##### enable_http_validate_headers + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可变:否 +- 描述:控制 Netty 的 HttpServerCodec 是否执行严格的 HTTP 头部验证。该值在 `HttpServer` 中初始化 HTTP pipeline 时传递给 HttpServerCodec(参见 UseLocations)。为了向后兼容,默认值为 false,因为较新的 netty 版本强制执行更严格的头部规则 (https://github.com/netty/netty/pull/12760) 。设置为 true 以强制执行符合 RFC 标准的头部检查;这样做可能会导致来自旧客户端或代理的格式错误或不符合规范的请求被拒绝。更改需要重启 HTTP 服务器才能生效。 +- 引入版本:v3.3.0, v3.4.0, v3.5.0 +##### enable_https + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:否 +- 描述:是否在 FE 节点中启用 HTTPS 服务,与 HTTP 服务并行。 +- 引入版本:v4.0 +##### frontend_address + +- 默认值:0.0.0.0 +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:FE节点的 IP 地址。 +- 引入版本:- +##### http_async_threads_num + +- 默认值: 4096 +- 类型: Int +- 单位: - +- 是否可变: 是 +- 描述: 用于异步 HTTP 请求处理的线程池大小。别名为 `max_http_sql_service_task_threads_num`。 +- 引入版本: 4.0.0 +##### http_backlog_num + +- 默认值:1024 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:FE 节点中 HTTP 服务器所持有的 backlog 队列的长度。 +- 引入版本:- +##### http_max_chunk_size + +- 默认值: 8192 +- 类型: Int +- 单位: Bytes +- 是否可修改: 否 +- 描述: 设置 FE HTTP 服务器中 Netty 的 HttpServerCodec 处理的单个 HTTP chunk 允许的最大大小(以字节为单位)。它作为第三个参数传递给 HttpServerCodec,并限制分块传输或流式请求/响应期间的 chunk 长度。如果传入的 chunk 超过此值,Netty 将引发 frame-too-large 错误(例如,TooLongFrameException),并且请求可能会被拒绝。增加此值以允许合法的较大分块上传;保持较小的值可以减少内存压力和 DoS 攻击的攻击面。此设置与 `http_max_initial_line_length`、`http_max_header_size` 和 `enable_http_validate_headers` 一起使用。 +- 引入版本: v3.2.0 +##### http_max_header_size + +- 默认值: 32768 +- 类型: Int +- 单位: Bytes +- 是否可变: 否 +- 描述: Netty 的 `HttpServerCodec` 解析的 HTTP 请求头块允许的最大大小(以字节为单位)。StarRocks 将此值传递给 `HttpServerCodec`(作为 `Config.http_max_header_size`);如果传入请求的标头(名称和值组合)超过此限制,则编解码器将拒绝该请求(解码器异常),并且连接/请求将失败。仅当客户端合法地发送非常大的标头(大型 Cookie 或许多自定义标头)时才增加;较大的值会增加每个连接的内存使用量。与 `http_max_initial_line_length` 和 `http_max_chunk_size` 结合调整。更改需要重启 FE。 +- 引入版本: v3.2.0 +##### http_max_initial_line_length + +- 默认值:4096 +- 类型:Int +- 单位:Bytes +- 是否可变:否 +- 描述:设置 Netty `HttpServerCodec` 接受的 HTTP 初始请求行(方法 + 请求目标 + HTTP 版本)的最大允许长度(以字节为单位),该 `HttpServerCodec` 用于 HttpServer 中。该值会传递给 Netty 的解码器,并且初始行长度大于此值的请求将被拒绝 (TooLongFrameException)。仅当您必须支持非常长的请求 URI 时才增加此值;较大的值会增加内存使用量,并可能增加暴露于格式错误/请求滥用的风险。与 `http_max_header_size` 和 `http_max_chunk_size` 一起调整。 +- 引入版本:v3.2.0 +##### http_port + +- 默认值:8030 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:FE 节点中的 HTTP 服务器监听的端口。 +- 引入版本:- +##### http_web_page_display_hardware + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:如果设置为 true,HTTP 索引页面(/index)会包含一个硬件信息部分,该部分通过 oshi 库(CPU、内存、进程、磁盘、文件系统、网络等)填充。oshi 可能会间接调用系统实用程序或读取系统文件(例如,它可以执行 `getent passwd` 等命令),这可能会暴露敏感的系统数据。如果您需要更严格的安全性,或者想要避免在主机上执行这些间接命令,请将此配置设置为 false,以禁用在 Web UI 上收集和显示硬件详细信息。 +- 引入版本:v3.2.0 +##### http_worker_threads_num + +- 默认值:0 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:http server 用于处理 http 请求的工作线程数。如果值为负数或 0,线程数将是 CPU 核心数的两倍。 +- 引入版本:v2.5.18, v3.0.10, v3.1.7, v3.2.2 +##### https_port + +- 默认值:8443 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:FE 节点上的 HTTPS 服务器监听的端口。 +- 引入版本:v4.0 +##### max_mysql_service_task_threads_num + +- 默认值:4096 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:FE 节点中的 MySQL 服务器可运行的用于处理任务的最大线程数。 +- 引入版本:- +##### max_task_runs_threads_num + +- 默认值:512 +- 类型:Int +- 单位:线程 +- 是否可修改:否 +- 描述:控制 task-run 执行器线程池中的最大线程数。此值为并发 task-run 执行的上限;增加此值会提高并行度,但也会增加 CPU、内存和网络使用率,而减少此值可能会导致 task-run 积压和更高的延迟。根据预期的并发调度作业和可用的系统资源调整此值。 +- 引入版本:v3.2.0 +##### memory_tracker_enable + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:启用 FE 内存跟踪器子系统。当 `memory_tracker_enable` 设置为 `true` 时,`MemoryUsageTracker` 会定期扫描已注册的元数据模块,更新内存中的 `MemoryUsageTracker.MEMORY_USAGE` 映射,记录总数,并使 `MetricRepo` 在指标输出中公开内存使用情况和对象计数指标。使用 `memory_tracker_interval_seconds` 控制采样间隔。启用此功能有助于监控和调试内存消耗,但会引入 CPU 和 I/O 开销以及额外的指标基数。 +- 引入版本:v3.2.4 +##### memory_tracker_interval_seconds + +- 默认值:60 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:FE `MemoryUsageTracker` 后台进程轮询并记录 FE 进程和已注册 `MemoryTrackable` 模块的内存使用情况的间隔(以秒为单位)。当 `memory_tracker_enable` 设置为 `true` 时,跟踪器会按照此频率运行,更新 `MEMORY_USAGE`,并记录聚合的 JVM 和被跟踪模块的使用情况。 +- 引入版本:v3.2.4 +##### mysql_nio_backlog_num + +- 默认值:1024 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:FE 节点中 MySQL 服务器所持有的 backlog 队列的长度。 +- 引入版本:- +##### mysql_server_version + +- 默认值: 8.0.33 +- 类型: String +- 单位: - +- 是否可修改: 是 +- 描述: 返回给客户端的 MySQL 服务器版本。修改此参数会影响以下情况中的版本信息: + 1. `select version();` + 2. 握手数据包版本 + 3. 全局变量 `version` 的值 (`show variables like 'version';`) +- 引入版本: - +##### mysql_service_io_threads_num + +- 默认值:4 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:FE 节点上的 MySQL 服务器可运行的用于处理 I/O 事件的最大线程数。 +- 引入版本:- +##### mysql_service_kill_after_disconnect + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:否 +- 描述:控制当检测到 MySQL TCP 连接关闭(读取时遇到 EOF)时,服务器如何处理会话。如果设置为 `true`,服务器会立即终止该连接上任何正在运行的查询,并立即执行清理。如果设置为 `false`,服务器在断开连接时不会终止正在运行的查询,并且仅在没有挂起的请求任务时才执行清理,从而允许长时间运行的查询在客户端断开连接后继续运行。注意:尽管有一个简短的注释建议使用 TCP keep-alive,但此参数专门控制断开连接后的终止行为,应根据您是否希望终止孤立查询(建议在不可靠/负载均衡的客户端后面)或允许其完成来设置。 +- 引入版本:- +##### mysql_service_nio_enable_keep_alive + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:否 +- 描述:为 MySQL 连接启用 TCP Keep-Alive。这对于负载均衡器后面的长时间空闲连接非常有用。 +- 引入版本:- +##### net_use_ipv6_when_priority_networks_empty + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:否 +- 描述:一个布尔值,用于控制在未指定 `priority_networks` 时是否优先使用 IPv6 地址。`true` 表示当托管节点的服务器同时具有 IPv4 和 IPv6 地址,且未指定 `priority_networks` 时,允许系统优先使用 IPv6 地址。 +- 引入版本:v3.3.0 +##### priority_networks + +- 默认值:空字符串 +- 类型:String +- 单位:- +- 是否可变:否 +- 描述:声明具有多个 IP 地址的服务器的选择策略。 请注意,最多只能有一个 IP 地址与此参数指定的列表匹配。 此参数的值是一个列表,其中包含以分号 (;) 分隔的条目,以 CIDR 表示法表示,例如 10.10.10.0/24。 如果没有 IP 地址与此列表中的条目匹配,则将随机选择服务器的可用 IP 地址。 从 v3.3.0 开始,StarRocks 支持基于 IPv6 的部署。 如果服务器同时具有 IPv4 和 IPv6 地址,并且未指定此参数,则系统默认使用 IPv4 地址。 您可以通过将 `net_use_ipv6_when_priority_networks_empty` 设置为 `true` 来更改此行为。 +- 引入版本:- +##### proc_profile_cpu_enable + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:当此项设置为 `true` 时,后台 `ProcProfileCollector` 将使用 `AsyncProfiler` 收集 CPU profile,并在 `sys_log_dir/proc_profile` 下写入 HTML 报告。每次收集运行时,会根据 `proc_profile_collect_time_s` 配置的时长记录 CPU 堆栈,并使用 `proc_profile_jstack_depth` 获取 Java 堆栈深度。生成的 profile 会被压缩,旧文件会根据 `proc_profile_file_retained_days` 和 `proc_profile_file_retained_size_bytes` 进行清理。`AsyncProfiler` 需要 native library (`libasyncProfiler.so`);`one.profiler.extractPath` 设置为 `STARROCKS_HOME_DIR/bin`,以避免 `/tmp` 上的 noexec 问题。 +- 引入版本:v3.2.12 +##### qe_max_connection + +- 默认值:4096 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:所有用户可以与 FE 节点建立的最大连接数。从 v3.1.12 和 v3.2.7 版本开始,默认值已从 `1024` 更改为 `4096`。 +- 引入版本:- +##### query_port + +- 默认值:9030 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:FE 节点中 MySQL 服务器监听的端口。 +- 引入版本:- +##### rpc_port + +- 默认值:9020 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:FE 节点中 Thrift 服务器监听的端口。 +- 引入版本:- +##### slow_lock_stack_trace_reserve_levels + +- 默认值:15 +- 类型:Int +- 单位:- +- 是否可变:是 +- 描述:控制当 StarRocks 为慢锁或持有锁转储锁调试信息时,捕获和发出的堆栈跟踪帧的数量。此值由 `QueryableReentrantReadWriteLock` 传递给 `LogUtil.getStackTraceToJsonArray`,用于为独占锁所有者、当前线程和最旧/共享的读取器生成 JSON。增加此值可以为诊断慢锁或死锁问题提供更多上下文,但代价是更大的 JSON 有效负载以及堆栈捕获的 CPU/内存略高;减少它可以降低开销。注意:当仅记录慢锁时,可以通过 `slow_lock_threshold_ms` 过滤读取器条目。 +- 引入版本:v3.4.0, v3.5.0 +##### ssl_cipher_blacklist + +- 默认值:空字符串 +- 类型:String +- 单位:- +- 是否可变:否 +- 描述:以逗号分隔的列表,支持正则表达式,用于通过 IANA 名称将 ssl 密码套件列入黑名单。如果同时设置了白名单和黑名单,则黑名单优先。 +- 引入版本:v4.0 +##### ssl_cipher_whitelist + +- 默认值:空字符串 +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:以逗号分隔的列表,支持正则表达式,用于通过 IANA 名称将 ssl 密码套件列入白名单。如果同时设置了白名单和黑名单,则黑名单优先。 +- 引入版本:v4.0 +##### task_runs_concurrency + +- 默认值: 4 +- 类型: Int +- 单位: - +- 是否可修改: 是 +- 描述: 并发运行的 TaskRun 实例的全局限制。当当前运行计数大于或等于 `task_runs_concurrency` 时,`TaskRunScheduler` 会停止调度新的运行,因此该值限制了调度器之间的并行 TaskRun 执行。`MVPCTRefreshPartitioner` 也会使用它来计算每个 TaskRun 的分区刷新粒度。增加该值会提高并行度和资源使用率;降低该值会降低并发性,并使每次运行的分区刷新更大。除非有意禁用调度,否则不要设置为 0 或负数:0(或负数)将有效地阻止 `TaskRunScheduler` 调度新的 TaskRuns。 +- 引入版本: v3.2.0 +##### task_runs_queue_length + +- 默认值:500 +- 类型:Int +- 单位:- +- 是否可变:是 +- 描述:限制挂起队列中保存的待处理 TaskRun 项的最大数量。当有效的待处理 TaskRun 计数大于或等于 `task_runs_queue_length` 时,`TaskRunManager` 会检查当前的待处理计数并拒绝新的提交。在添加合并/接受的 TaskRun 之前,会重新检查相同的限制。调整此值以平衡内存和调度积压:对于大型突发工作负载,设置较高的值以避免拒绝,或者设置较低的值以限制内存并减少待处理积压。 +- 引入版本:v3.2.0 +##### thrift_backlog_num + +- 默认值:1024 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:FE 节点中 Thrift 服务器所持有的 backlog 队列的长度。 +- 引入版本:- +##### thrift_client_timeout_ms + +- 默认值:5000 +- 类型:Int +- 单位:毫秒 +- 是否可变:否 +- 描述:空闲客户端连接超时的时间长度。 +- 引入版本:- +##### thrift_rpc_max_body_size + +- 默认值:-1 +- 类型:Int +- 单位:Bytes +- 是否可修改:否 +- 描述:控制构造服务器的 Thrift 协议时允许的最大 Thrift RPC 消息体大小(以字节为单位)(在 `ThriftServer` 中传递给 TBinaryProtocol.Factory)。值为 `-1` 时禁用限制(无限制)。设置一个正值会强制执行上限,以便 Thrift 层拒绝大于此值的消息,这有助于限制内存使用并降低超大请求或 DoS 风险。将其设置为足够大的大小以适应预期的 payload(大型结构体或批量数据),以避免拒绝合法的请求。 +- 引入版本:v3.2.0 +##### thrift_server_max_worker_threads + +- 默认值: 4096 +- 类型: Int +- 单位: - +- 是否可变: 是 +- 描述: FE 节点中 Thrift 服务器支持的最大工作线程数。 +- 引入版本: - +##### thrift_server_queue_size + +- 默认值:4096 +- 类型:Int +- 单位:- +- 是否可变:否 +- 描述:请求等待队列的长度。如果 thrift server 中正在处理的线程数超过 `thrift_server_max_worker_threads` 中指定的值,则新请求会添加到等待队列中。 +- 引入版本:- +### 元数据和集群管理 +##### alter_max_worker_queue_size + +- 默认值:4096 +- 类型:Int +- 单位:Tasks +- 是否可变:否 +- 描述:控制 alter 子系统使用的内部工作线程池队列的容量。它与 `alter_max_worker_threads` 一起传递给 `AlterHandler` 中的 `ThreadPoolManager.newDaemonCacheThreadPool`。当待处理的 alter 任务数超过 `alter_max_worker_queue_size` 时,新的提交将被拒绝,并且可能会抛出 `RejectedExecutionException`(请参阅 `AlterHandler.handleFinishAlterTask`)。调整此值以平衡内存使用量和允许并发 alter 任务的积压量。 +- 引入版本:v3.2.0 +##### alter_max_worker_threads + +- 默认值:4 +- 类型:Int +- 单位:线程 +- 是否可修改:否 +- 描述:设置 AlterHandler 线程池中的最大工作线程数。AlterHandler 使用此值构造执行器,以运行和完成与 alter 相关的任务(例如,通过 handleFinishAlterTask 提交 `AlterReplicaTask`)。此值限制了 alter 操作的并发执行;增加此值会提高并行度和资源使用率,降低此值会限制并发 alter 操作,并可能成为瓶颈。执行器与 `alter_max_worker_queue_size` 一起创建,并且处理程序调度使用 `alter_scheduler_interval_millisecond`。 +- 引入版本:v3.2.0 +##### automated_cluster_snapshot_interval_seconds + +- 默认值:600 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:触发自动集群快照任务的间隔。 +- 引入版本:v3.4.2 +##### background_refresh_metadata_interval_millis + +- 默认值:600000 +- 类型:Int +- 单位:毫秒 +- 是否可修改:是 +- 描述:两次连续的 Hive 元数据缓存刷新之间的间隔。 +- 引入版本:v2.5.5 +##### background_refresh_metadata_time_secs_since_last_access_secs + +- 默认值:3600 * 24 +- 类型:Long +- 单位:秒 +- 是否可修改:是 +- 描述:Hive 元数据缓存刷新任务的过期时间。对于已访问的 Hive catalog,如果超过指定时间未被访问,StarRocks 将停止刷新其缓存的元数据。对于未访问的 Hive catalog,StarRocks 将不会刷新其缓存的元数据。 +- 引入版本:v2.5.5 +##### bdbje_cleaner_threads + +- 默认值:1 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:用于 StarRocks 日志的 Berkeley DB Java Edition (JE) 环境的后台清理线程数。此值在 `BDBEnvironment.initConfigs` 中的环境初始化期间读取,并使用 `Config.bdbje_cleaner_threads` 应用于 `EnvironmentConfig.CLEANER_THREADS`。它控制 JE 日志清理和空间回收的并行度;增加它可以加快清理速度,但会增加 CPU 和 I/O 对前台操作的干扰。更改仅在 BDB 环境(重新)初始化时生效,因此需要重启前端才能应用新值。 +- 引入版本:v3.2.0 +##### bdbje_heartbeat_timeout_second + +- 默认值: 30 +- 类型: Int +- 单位: 秒 +- 是否可修改: 否 +- 描述: StarRocks 集群中 leader、follower 和 observer FE 之间心跳超时的时间。 +- 引入版本: - +##### bdbje_lock_timeout_second + +- 默认值:1 +- 类型:Int +- 单位:秒 +- 是否可修改:否 +- 描述:基于 BDB JE 的 FE 中锁的超时时间。 +- 引入版本:- +##### bdbje_replay_cost_percent + +- 默认值:150 +- 类型:Int +- 单位:百分比 +- 是否可变:否 +- 描述:设置从 BDB JE 日志重放事务的相对成本(以百分比表示),与通过网络恢复获取相同数据相比。该值提供给底层 JE 复制参数 REPLAY_COST_PERCENT,通常 >100,表示重放通常比网络恢复更昂贵。在决定是否保留已清理的日志文件以进行潜在的重放时,系统会将重放成本乘以日志大小与网络恢复的成本进行比较;如果判断网络恢复更有效,则将删除文件。值为 0 将禁用基于此成本比较的保留。`REP_STREAM_TIMEOUT` 内的副本或任何活动复制所需的日志文件始终保留。 +- 引入版本:v3.2.0 +##### bdbje_replica_ack_timeout_second + +- 默认值:10 +- 类型:Int +- 单位:秒 +- 是否可修改:否 +- 描述:当元数据从 leader FE 写入到 follower FE 时,leader FE 等待来自指定数量的 follower FE 的 ACK 消息的最长时间。单位:秒。如果写入大量元数据,则 follower FE 需要很长时间才能将 ACK 消息返回给 leader FE,从而导致 ACK 超时。在这种情况下,元数据写入失败,并且 FE 进程退出。我们建议您增加此参数的值以防止出现这种情况。 +- 引入版本:- +##### bdbje_reserved_disk_size + +- 默认值:512 * 1024 * 1024 (536870912) +- 类型:Long +- 单位:Bytes +- 是否可变:否 +- 描述:限制 Berkeley DB JE 将保留为“未保护”(可删除)的日志/数据文件的字节数。StarRocks 通过 `EnvironmentConfig.RESERVED_DISK` 在 BDBEnvironment 中将此值传递给 JE;JE 的内置默认值为 0(无限制)。StarRocks 默认值 (512 MiB) 可防止 JE 为未保护的文件保留过多的磁盘空间,同时允许安全清理过时的文件。在磁盘受限的系统上调整此值:减小它可以让 JE 更快地释放更多文件,增加它可以让 JE 保留更多保留空间。更改需要重新启动进程才能生效。 +- 引入版本:v3.2.0 +##### bdbje_reset_election_group + +- 默认值:false +- 类型:String +- 单位:- +- 是否可变:否 +- 描述:是否重置 BDBJE 复制组。如果此参数设置为 `TRUE`,FE 将重置 BDBJE 复制组(即删除所有可选举 FE 节点的信息)并作为 leader FE 启动。重置后,此 FE 将是集群中唯一的成员,其他 FE 可以使用 `ALTER SYSTEM ADD/DROP FOLLOWER/OBSERVER 'xxx'` 重新加入此集群。仅当由于大多数 follower FE 的数据已损坏而无法选举出 leader FE 时,才使用此设置。`reset_election_group` 用于替换 `metadata_failure_recovery`。 +- 引入版本:- +##### black_host_connect_failures_within_time + +- 默认值:5 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:黑名单 BE 节点允许的连接失败阈值。如果一个 BE 节点被自动添加到 BE 黑名单,StarRocks 将评估其连接性,并判断是否可以从 BE 黑名单中移除。在 `black_host_history_sec` 内,只有当黑名单 BE 节点的连接失败次数少于 `black_host_connect_failures_within_time` 中设置的阈值时,才能从 BE 黑名单中移除。 +- 引入版本:v3.3.0 +##### black_host_history_sec + +- 默认值:2 * 60 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:BE 黑名单中保留 BE 节点历史连接失败的时间。如果一个 BE 节点被自动添加到 BE 黑名单中,StarRocks 会评估它的连接性,并判断它是否可以从 BE 黑名单中移除。在 `black_host_history_sec` 内,只有当黑名单中的 BE 节点的连接失败次数少于 `black_host_connect_failures_within_time` 中设置的阈值时,它才能从 BE 黑名单中移除。 +- 引入版本:v3.3.0 +##### brpc_connection_pool_size + +- 默认值:16 +- 类型:Int +- 单位:连接数 +- 是否可修改:否 +- 描述:FE 的 BrpcProxy 使用的每个端点的最大 BRPC 连接池大小。此值通过 `setMaxTotoal` 和 `setMaxIdleSize` 应用于 RpcClientOptions,因此它直接限制了并发的传出 BRPC 请求,因为每个请求都必须从连接池中借用一个连接。在高并发场景中,增加此值可以避免请求排队;增加此值会增加套接字和内存使用量,并可能增加远程服务器的负载。在进行调优时,请考虑相关的设置,如 `brpc_idle_wait_max_time`、`brpc_short_connection`、`brpc_inner_reuse_pool`、`brpc_reuse_addr` 和 `brpc_min_evictable_idle_time_ms`。更改此值不支持热加载,需要重启。 +- 引入版本:v3.2.0 +##### brpc_short_connection + +- 默认值:false +- 类型:boolean +- 单位:- +- 是否可修改:否 +- 描述:控制底层的 brpc RpcClient 是否使用短连接。启用时(`true`),将设置 RpcClientOptions.setShortConnection,并且连接在请求完成后关闭,从而减少长连接 socket 的数量,但会增加连接建立的开销和延迟。禁用时(`false`,默认值),将使用持久连接和连接池。启用此选项会影响连接池的行为,应与 `brpc_connection_pool_size`、`brpc_idle_wait_max_time`、`brpc_min_evictable_idle_time_ms`、`brpc_reuse_addr` 和 `brpc_inner_reuse_pool` 一起考虑。对于典型的高吞吐量部署,请保持禁用状态;仅在需要限制 socket 生存期或网络策略要求短连接时才启用。 +- 引入版本:v3.3.11、v3.4.1、v3.5.0 +##### catalog_try_lock_timeout_ms + +- 默认值:5000 +- 类型:Long +- 单位:毫秒 +- 是否可修改:是 +- 描述:获取全局锁的超时时长。 +- 引入版本:- +##### checkpoint_only_on_leader + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:当设置为 `true` 时,CheckpointController 将仅选择 Leader FE 作为 checkpoint worker;当设置为 `false` 时,controller 可能会选择任何前端节点,并优先选择堆使用率较低的节点。如果设置为 `false`,worker 将按最近失败时间和 `heapUsedPercent` 排序(Leader 被视为具有无限使用率,以避免选择它)。对于需要集群快照元数据的操作,无论此标志如何设置,controller 都会强制选择 Leader。启用 `true` 会将 checkpoint 工作集中在 Leader 上(更简单,但会增加 Leader 的 CPU/内存和网络负载);保持 `false` 会将 checkpoint 负载分配给负载较低的 FE。此设置会影响 worker 的选择以及与超时(如 `checkpoint_timeout_seconds`)和 RPC 设置(如 `thrift_rpc_timeout_ms`)的交互。 +- 引入版本:v3.4.0, v3.5.0 +##### checkpoint_timeout_seconds + +- 默认值:24 * 3600 +- 类型:Long +- 单位:秒 +- 是否可变:是 +- 描述: Leader 的 CheckpointController 等待 checkpoint worker 完成 checkpoint 的最长时间(以秒为单位)。该 controller 将此值转换为纳秒并轮询 worker 结果队列;如果在超时时间内未收到成功完成的消息,则会将 checkpoint 视为失败,并且 createImage 返回失败。增加此值可以适应运行时间较长的 checkpoint,但会延迟故障检测和后续镜像传播;减少此值会导致更快的故障转移/重试,但可能会为速度较慢的 worker 产生错误的超时。此设置仅控制 checkpoint 创建期间 `CheckpointController` 中的等待时间,不会更改 worker 的内部 checkpoint 行为。 +- 引入版本:v3.4.0,v3.5.0 +##### db_used_data_quota_update_interval_secs + +- 默认值:300 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:数据库已使用数据配额的更新间隔。 StarRocks 会定期更新所有数据库的已使用数据配额,以跟踪存储消耗。此值用于配额执行和指标收集。允许的最小间隔为 30 秒,以防止过度的系统负载。小于 30 的值将被拒绝。 +- 引入版本:- +##### drop_backend_after_decommission + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否在 BE 节点下线后删除该 BE 节点。`TRUE` 表示 BE 节点下线后立即删除该 BE 节点。`FALSE` 表示 BE 节点下线后不删除该 BE 节点。 +- 引入版本:- +##### edit_log_port + +- 默认值:9010 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:集群中 Leader FE、Follower FE 和 Observer FE 之间用于通信的端口。 +- 引入版本:- +##### edit_log_roll_num + +- 默认值:50000 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:在为元数据日志条目创建日志文件之前,可以写入的最大元数据日志条目数。此参数用于控制日志文件的大小。新的日志文件将被写入 BDBJE 数据库。 +- 引入版本:- +##### edit_log_type + +- 默认值:BDB +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:可以生成的编辑日志的类型。将该值设置为 `BDB`。 +- 引入版本:- +##### enable_background_refresh_connector_metadata + +- 默认值:v3.0 及更高版本中为 true,v2.5 中为 false +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否启用定期 Hive 元数据缓存刷新。启用后,StarRocks 会轮询 Hive 集群的 Metastore(Hive Metastore 或 AWS Glue),并刷新频繁访问的 Hive catalog 的缓存元数据,以感知数据变化。`true` 表示启用 Hive 元数据缓存刷新,`false` 表示禁用它。 +- 引入版本:v2.5.5 +##### enable_collect_query_detail_info + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否收集查询的 profile 信息。如果设置为 `TRUE`,系统会收集查询的 profile 信息。如果设置为 `FALSE`,系统不会收集查询的 profile 信息。 +- 引入版本:- +##### enable_create_partial_partition_in_batch + +- 默认值:false +- 类型:boolean +- 单位:- +- 是否可变:是 +- 描述:当此项设置为 `false` (默认) 时,StarRocks 强制批量创建的 Range 分区与标准时间单位边界对齐。它将拒绝未对齐的范围,以避免创建空洞。将此项设置为 `true` 会禁用该对齐检查,并允许批量创建部分(非标准)分区,这可能会产生间隙或未对齐的分区范围。只有当您有意需要部分批量分区并接受相关的风险时,才应将其设置为 `true`。 +- 引入版本:v3.2.0 +##### enable_internal_sql + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:否 +- 描述:当此项设置为 `true` 时,由内部组件(例如 SimpleExecutor)执行的内部 SQL 语句将被保留并写入内部审计或日志消息中(如果设置了 `enable_sql_desensitize_in_log`,则可以进一步进行脱敏)。当设置为 `false` 时,内部 SQL 文本将被禁止:格式化代码 (SimpleExecutor.formatSQL) 返回 "?",并且实际语句不会发送到内部审计或日志消息。此配置不会更改内部语句的执行语义,它仅控制内部 SQL 的日志记录和可见性,以保护隐私或安全。 +- 引入版本:- +##### enable_legacy_compatibility_for_replication + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否开启复制的旧版兼容模式。由于 StarRocks 在新旧版本之间的行为可能存在差异,这可能导致跨集群数据迁移期间出现问题。因此,在数据迁移之前,您必须为目标集群启用旧版兼容模式,并在数据迁移完成后禁用它。`true` 表示启用此模式。 +- 引入版本:v3.1.10, v3.2.6 +##### enable_show_materialized_views_include_all_task_runs + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:控制如何将 TaskRun 返回到 SHOW MATERIALIZED VIEWS 命令。如果此项设置为 `false`,StarRocks 仅返回每个任务的最新 TaskRun(为了兼容性的传统行为)。如果设置为 `true`(默认值),则 `TaskManager` 可能会包含同一任务的其他 TaskRun,前提是它们共享相同的起始 TaskRun ID(例如,属于同一作业),从而防止不相关的重复运行出现,同时允许显示与一个作业相关的多个状态,以进行调试和监控。将此项设置为 `false` 可恢复单次运行输出,或显示多运行作业历史记录以进行调试和监控。 +- 引入版本:v3.3.0, v3.4.0, v3.5.0 +##### enable_statistics_collect_profile + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否为统计信息查询生成 profile。您可以将此项设置为 `true` ,以允许 StarRocks 为系统统计信息的查询生成 query profile。 +- 引入版本:v3.1.5 +##### enable_table_name_case_insensitive + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可变:否 +- 描述:是否对 catalog 名称、数据库名称、表名称、视图名称和物化视图名称启用不区分大小写的处理。目前,默认情况下表名是区分大小写的。 + - 启用此功能后,所有相关名称将以小写形式存储,并且所有包含这些名称的 SQL 命令将自动将其转换为小写。 + - 只能在创建集群时启用此功能。**集群启动后,无法通过任何方式修改此配置的值**。任何修改它的尝试都将导致错误。当 FE 检测到此配置项的值与首次启动集群时的值不一致时,FE 将无法启动。 + - 目前,此功能不支持 JDBC catalog 和表名。如果要对 JDBC 或 ODBC 数据源执行不区分大小写的处理,请勿启用此功能。 +- 引入版本:v4.0 +##### enable_task_history_archive + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:启用后,已完成的任务运行记录将归档到持久性任务运行历史记录表中,并记录到编辑日志中,以便查找(例如,`lookupHistory`、`lookupHistoryByTaskNames`、`lookupLastJobOfTasks`)包括已归档的结果。归档由 FE 的 Leader 执行,并在单元测试期间跳过(`FeConstants.runningUnitTest`)。启用后,将绕过内存中的过期和强制 GC 路径(代码从 `removeExpiredRuns` 和 `forceGC` 提前返回),因此保留/删除由持久性归档处理,而不是由 `task_runs_ttl_second` 和 `task_runs_max_history_number` 处理。禁用后,历史记录保留在内存中,并由这些配置进行清理。 +- 引入版本:v3.3.1, v3.4.0, v3.5.0 +##### enable_task_run_fe_evaluation + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:启用后,FE 将对 `TaskRunsSystemTable.supportFeEvaluation` 中的系统表 `task_runs` 执行本地评估。FE 端评估仅允许将列与常量进行比较的合取相等谓词,并且仅限于 `QUERY_ID` 和 `TASK_NAME` 列。启用此功能可以通过避免更广泛的扫描或其他远程处理来提高目标查找的性能;禁用它会强制 planner 跳过 `task_runs` 的 FE 评估,这可能会减少谓词裁剪并影响这些过滤器的查询延迟。 +- 引入版本:v3.3.13、v3.4.3、v3.5.0 +##### heartbeat_mgr_blocking_queue_size + +- 默认值:1024 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:用于存储 Heartbeat Manager 运行的心跳任务的阻塞队列的大小。 +- 引入版本:- +##### heartbeat_mgr_threads_num + +- 默认值:8 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:Heartbeat Manager 运行 heartbeat 任务的线程数。 +- 引入版本:- +##### ignore_materialized_view_error + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:FE 是否忽略由物化视图错误导致的元数据异常。如果 FE 因为物化视图错误导致的元数据异常而启动失败,您可以将此参数设置为 `true`,以允许 FE 忽略该异常。 +- 引入版本:v2.5.10 +##### ignore_meta_check + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:用于设置非 Leader FE 是否忽略与 Leader FE 之间的元数据差异。如果设置为 TRUE,则非 Leader FE 会忽略与 Leader FE 之间的元数据差异,并继续提供数据读取服务。即使您长时间停止 Leader FE,此参数也能确保持续的数据读取服务。如果设置为 FALSE,则非 Leader FE 不会忽略与 Leader FE 之间的元数据差异,并停止提供数据读取服务。 +- 引入版本:- +##### ignore_task_run_history_replay_error + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:当 StarRocks 反序列化 `information_schema.task_runs` 的 TaskRun 历史行时,损坏或无效的 JSON 行通常会导致反序列化记录警告并抛出 RuntimeException。如果此项设置为 `true`,系统将捕获反序列化错误,跳过格式错误的记录,并继续处理剩余的行,而不是使查询失败。这将使 `information_schema.task_runs` 查询能够容忍 `_statistics_.task_run_history` 表中的错误条目。请注意,启用它会以静默方式删除损坏的历史记录(潜在的数据丢失),而不是显示明确的错误。 +- 引入版本:v3.3.3, v3.4.0, v3.5.0 +##### lock_checker_interval_second + +- 默认值:30 +- 类型:long +- 单位:秒 +- 是否可变:是 +- 描述:LockChecker 前端守护进程(命名为 "deadlock-checker")执行之间的间隔,以秒为单位。该守护进程执行死锁检测和慢锁扫描;配置的值乘以 1000 以设置计时器,单位为毫秒。减小此值会降低检测延迟,但会增加调度和 CPU 开销;增加此值会降低开销,但会延迟检测和慢锁报告。更改会在运行时生效,因为守护进程每次运行时都会重置其间隔。此设置与 `lock_checker_enable_deadlock_check` (启用死锁检查)和 `slow_lock_threshold_ms` (定义什么构成慢锁)交互。 +- 引入版本:v3.2.0 +##### master_sync_policy + +- 默认值:SYNC +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述: Leader FE将日志刷新到磁盘所基于的策略。此参数仅在当前FE为Leader FE时有效。有效值: + - `SYNC`:当事务提交时,会同时生成一个日志条目并刷新到磁盘。 + - `NO_SYNC`:当事务提交时,日志条目的生成和刷新不会同时发生。 + - `WRITE_NO_SYNC`:当事务提交时,会同时生成一个日志条目,但不会刷新到磁盘。 + + 如果您只部署了一个Follower FE,我们建议您将此参数设置为`SYNC`。如果您部署了三个或更多个Follower FE,我们建议您将此参数和`replica_sync_policy`都设置为`WRITE_NO_SYNC`。 + +- 引入版本:- +##### max_bdbje_clock_delta_ms + +- 默认值:5000 +- 类型:Long +- 单位:毫秒 +- 是否可修改:否 +- 描述:在 StarRocks 集群中,leader FE 与 follower 或 observer FE 之间允许的最大时钟偏移量。 +- 引入版本:- +##### meta_delay_toleration_second + +- 默认值:300 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:follower FE 和 observer FE 上的元数据落后于 leader FE 上的元数据的最大时长。单位:秒。如果超过此时长,则非 leader FE 将停止提供服务。 +- 引入版本:- +##### meta_dir + +- 默认值:StarRocksFE.STARROCKS_HOME_DIR + "/meta" +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:存储元数据的目录。 +- 引入版本:- +##### metadata_ignore_unknown_operation_type + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否忽略未知的日志 ID。当 FE 回滚时,早期版本的 FE 可能无法识别某些日志 ID。如果值为 `TRUE`,则 FE 会忽略未知的日志 ID。如果值为 `FALSE`,则 FE 会退出。 +- 引入版本:- +##### profile_info_format + +- 默认值: default +- 类型: String +- 单位: - +- 是否可变: 是 +- 描述: 系统输出的 Profile 的格式。有效值:`default` 和 `json`。设置为 `default` 时,Profile 为默认格式。设置为 `json` 时,系统以 JSON 格式输出 Profile。 +- 引入版本: v2.5 +##### replica_ack_policy + +- 默认值:SIMPLE_MAJORITY +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:用于确定日志条目是否有效的策略。默认值 `SIMPLE_MAJORITY` 指定,如果大多数 follower FE 返回 ACK 消息,则认为日志条目有效。 +- 引入版本:- +##### replica_sync_policy + +- 默认值:SYNC +- 类型:String +- 单位:- +- 是否可变:否 +- 描述:follower FE 将日志刷新到磁盘所基于的策略。此参数仅在当前 FE 为 follower FE 时有效。有效值: + - `SYNC`:提交事务时,会生成一个日志条目并同时刷新到磁盘。 + - `NO_SYNC`:提交事务时,日志条目的生成和刷新不会同时发生。 + - `WRITE_NO_SYNC`:提交事务时,会同时生成一个日志条目,但不会刷新到磁盘。 +- 引入版本:- +##### start_with_incomplete_meta + +- 默认值:false +- 类型:boolean +- 单位:- +- 是否可变:否 +- 描述:如果为 true,则当镜像数据存在但 Berkeley DB JE (BDB) 日志文件丢失或损坏时,FE 将允许启动。`MetaHelper.checkMetaDir()` 使用此标志来绕过安全检查,否则会阻止从没有相应 BDB 日志的镜像启动;以这种方式启动可能会产生过时或不一致的元数据,仅应用于紧急恢复。`RestoreClusterSnapshotMgr` 在恢复集群快照时暂时将此标志设置为 true,然后将其回滚;该组件还在恢复期间切换 `bdbje_reset_election_group`。请勿在正常操作中启用,仅在从损坏的 BDB 数据恢复或显式恢复基于镜像的快照时启用。 +- 引入版本:v3.2.0 +##### table_keeper_interval_second + +- 默认值:30 +- 类型:Int +- 单位:秒 +- 是否可变:是 +- 描述:TableKeeper 守护进程的执行间隔,以秒为单位。TableKeeperDaemon 使用此值(乘以 1000)来设置其内部计时器,并定期运行 keeper 任务,以确保历史表存在、更正表属性(副本数)并更新分区 TTL。该守护进程仅在 Leader 节点上执行工作,并在 `table_keeper_interval_second` 更改时通过 setInterval 更新其运行时间隔。增加此值可降低调度频率和负载;减小此值可更快地响应丢失或过期的历史表。 +- 引入版本:v3.3.1、v3.4.0、v3.5.0 +##### task_runs_ttl_second + +- 默认值:7 * 24 * 3600 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:控制任务运行历史的生存时间 (TTL)。降低此值会缩短历史记录保留时间并减少内存/磁盘使用量;提高此值会延长历史记录保留时间,但会增加资源使用量。将此参数与 `task_runs_max_history_number` 和 `enable_task_history_archive` 结合使用,以实现可预测的保留和存储行为。 +- 引入版本:v3.2.0 +##### task_ttl_second + +- 默认值:24 * 3600 +- 类型:Int +- 单位:秒 +- 是否可变:是 +- 描述:任务的生存时间 (TTL)。对于手动任务(未设置计划时),TaskBuilder 使用此值来计算任务的 `expireTime` (`expireTime = now + task_ttl_second * 1000L`)。TaskRun 还在计算运行的执行超时时,将此值用作上限——有效的执行超时为 `min(task_runs_timeout_second, task_runs_ttl_second, task_ttl_second)`。调整此值会更改手动创建的任务保持有效的时间,并间接限制任务运行的最大允许执行时间。 +- 引入版本:v3.2.0 +##### thrift_rpc_retry_times + +- 默认值:3 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:控制 Thrift RPC 调用的总尝试次数。此值由 `ThriftRPCRequestExecutor`(以及 `NodeMgr` 和 `VariableMgr` 等调用者)用作重试的循环计数 - 即,值为 3 表示最多允许三次尝试,包括初始尝试。在 `TTransportException` 上,执行器将尝试重新打开连接并重试到此计数;当原因是 `SocketTimeoutException` 或重新打开失败时,它不会重试。每次尝试都受 `thrift_rpc_timeout_ms` 配置的每次尝试超时限制。增加此值可以提高对瞬时连接故障的弹性,但会增加总体 RPC 延迟和资源使用。 +- 引入版本:v3.2.0 +##### thrift_rpc_strict_mode + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:否 +- 描述:控制 Thrift 服务器使用的 TBinaryProtocol "strict read" 模式。此值作为第一个参数传递给 Thrift 服务器堆栈中的 org.apache.thrift.protocol.TBinaryProtocol.Factory,并影响传入的 Thrift 消息的解析和验证方式。当 `true` (默认值)时,服务器强制执行严格的 Thrift 编码/版本检查,并遵守配置的 `thrift_rpc_max_body_size` 限制;当 `false` 时,服务器接受非严格(旧版/宽松)的消息格式,这可以提高与旧客户端的兼容性,但可能会绕过某些协议验证。在运行中的集群上更改此设置时请务必小心,因为它不可修改,并且会影响互操作性和解析安全性。 +- 引入版本:v3.2.0 +##### thrift_rpc_timeout_ms + +- 默认值:10000 +- 类型:Int +- 单位:毫秒 +- 是否可修改:是 +- 描述:用于 Thrift RPC 调用的默认网络/套接字超时(以毫秒为单位)。在 `ThriftConnectionPool` 中创建 Thrift 客户端时,它会传递给 TSocket(由前端和后端池使用),并且在计算 RPC 调用超时时,它还会添加到操作的执行超时中(例如,ExecTimeout*1000 + `thrift_rpc_timeout_ms`),例如 `ConfigBase`、`LeaderOpExecutor`、`GlobalStateMgr`、`NodeMgr`、`VariableMgr` 和 `CheckpointWorker`。增加此值可使 RPC 调用容忍更长的网络或远程处理延迟;减少此值会导致在慢速网络上更快地进行故障转移。更改此值会影响执行 Thrift RPC 的 FE 代码路径中的连接创建和请求截止时间。 +- 引入版本:v3.2.0 +##### txn_latency_metric_report_groups + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可变:是 +- 描述:要报告的事务延迟指标组的逗号分隔列表。 导入类型被分类为用于监控的逻辑组。 启用某个组后,其名称将作为“type”标签添加到事务指标。有效值:`stream_load`、`routine_load`、`broker_load`、`insert` 和 `compaction`(仅适用于存算分离集群)。示例:`"stream_load,routine_load"`。 +- 引入版本:v4.0 +##### txn_rollback_limit + +- 默认值:100 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:可以回滚的最大事务数。 +- 引入版本:- +### 用户、角色和权限 +##### enable_task_info_mask_credential + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:如果为 true,StarRocks 会在 `information_schema.tasks` 和 `information_schema.task_runs` 中返回任务 SQL 定义之前,通过将 `SqlCredentialRedactor.redact` 应用于 `DEFINITION` 列来编辑凭据。在 `information_schema.task_runs` 中,无论定义来自任务运行状态还是(如果为空)来自任务定义查找,都会应用相同的编辑。如果为 false,则返回原始任务定义(可能会暴露凭据)。屏蔽是 CPU/字符串处理工作,当任务或 task_runs 的数量很大时,可能会很耗时;仅当您需要未编辑的定义并接受安全风险时才禁用。 +- 引入版本:v3.5.6 +##### privilege_max_role_depth + +- 默认值: 16 +- 类型: Int +- 单位: +- 是否可修改: 是 +- 描述: 角色的最大深度(继承级别)。 +- 引入版本: v3.0.0 +##### privilege_max_total_roles_per_user + +- 默认值:64 +- 类型:Int +- 单位: +- 是否可修改:是 +- 描述:一个用户可以拥有的最大角色数量。 +- 引入版本:v3.0.0 +### 查询引擎 +##### brpc_send_plan_fragment_timeout_ms + +- 默认值:60000 +- 类型:Int +- 单位:毫秒 +- 是否可修改:是 +- 描述:在发送执行计划片段之前应用于 BRPC TalkTimeoutController 的超时时间,以毫秒为单位。`BackendServiceClient.sendPlanFragmentAsync` 在调用后端 `execPlanFragmentAsync` 之前设置此值。它控制 BRPC 在从连接池借用空闲连接以及执行发送时等待的时间;如果超过此时间,RPC 将失败,并可能触发该方法的重试逻辑。将其设置得较低可以在发生争用时快速失败,或者提高它以容忍瞬时连接池耗尽或慢速网络。请注意:非常大的值可能会延迟故障检测并阻塞请求线程。 +- 引入版本:v3.3.11、v3.4.1、v3.5.0 +##### connector_table_query_trigger_analyze_large_table_interval + +- 默认值:12 * 3600 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:用于大表的查询触发 ANALYZE 任务的间隔。 +- 引入版本:v3.4.0 +##### connector_table_query_trigger_analyze_max_pending_task_num + +- 默认值:100 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:FE 上处于 Pending 状态的查询触发 ANALYZE 任务的最大数量。 +- 引入版本:v3.4.0 +##### connector_table_query_trigger_analyze_max_running_task_num + +- 默认值:2 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:FE 上处于 Running 状态的 query-trigger ANALYZE 任务的最大数量。 +- 引入版本:v3.4.0 +##### connector_table_query_trigger_analyze_small_table_interval + +- 默认值: 2 * 3600 +- 类型: Int +- 单位: 秒 +- 是否可修改: 是 +- 描述: 用于查询触发的小表的 ANALYZE 任务的间隔。 +- 引入版本: v3.4.0 +##### connector_table_query_trigger_analyze_small_table_rows + +- 默认值: 10000000 +- 类型: Int +- 单位: - +- 是否可修改: 是 +- 描述: 用于确定表是否为小表的阈值,以触发查询触发的 ANALYZE 任务。 +- 引入版本: v3.4.0 +##### connector_table_query_trigger_task_schedule_interval + +- 默认值:30 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:Scheduler 线程调度 query-trigger 后台任务的间隔。此配置项用于替换 v3.4.0 中引入的 `connector_table_query_trigger_analyze_schedule_interval`。这里的后台任务指的是 v3.4 中的 `ANALYZE` 任务,以及 v3.4 之后版本中低基数列字典的收集任务。 +- 引入版本:v3.4.2 +##### create_table_max_serial_replicas + +- 默认值: 128 +- 类型: Int +- 单位: - +- 是否可修改: 是 +- 描述: 串行创建的最大副本数。如果实际副本数超过此值,将并发创建副本。如果创建表花费的时间过长,请尝试减小此值。 +- 引入版本: - +##### default_mv_partition_refresh_number + +- 默认值:1 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:当物化视图刷新涉及多个分区时,此参数控制默认情况下单个批次中刷新的分区数。 +从 3.3.0 版本开始,系统默认一次刷新一个分区,以避免潜在的内存溢出(OOM)问题。在早期版本中,默认情况下一次刷新所有分区,这可能导致内存耗尽和任务失败。但是,请注意,当物化视图刷新涉及大量分区时,一次仅刷新一个分区可能会导致过多的调度开销、更长的总体刷新时间以及大量的刷新记录。在这种情况下,建议适当调整此参数,以提高刷新效率并降低调度成本。 +- 引入版本:v3.3.0 +##### default_mv_refresh_immediate + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否在创建异步物化视图后立即刷新。如果设置为 `true`,新创建的物化视图将立即刷新。 +- 引入版本:v3.2.3 +##### dynamic_partition_check_interval_seconds + +- 默认值:600 +- 类型:Long +- 单位:秒 +- 是否可修改:是 +- 描述:检查新数据的时间间隔。如果检测到新数据,StarRocks 会自动为该数据创建分区。 +- 引入版本:- +##### dynamic_partition_enable + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否启用动态分区功能。启用此功能后,StarRocks 会为新数据动态创建分区,并自动删除过期分区,以确保数据的新鲜度。 +- 引入版本:- +##### enable_active_materialized_view_schema_strict_check + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否在激活非激活状态的物化视图时,严格检查数据类型长度的一致性。如果此项设置为 `false`,则当基表中数据类型的长度发生更改时,物化视图的激活不受影响。 +- 引入版本:v3.3.4 +##### enable_auto_collect_array_ndv + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否开启 ARRAY 类型的 NDV 信息的自动收集。 +- 引入版本:v4.0 +##### enable_backup_materialized_view + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:在备份或恢复特定数据库时,是否启用异步物化视图的 BACKUP 和 RESTORE。如果此项设置为 `false`,StarRocks 将跳过备份异步物化视图。 +- 引入版本:v3.2.0 +##### enable_collect_full_statistic + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否开启自动全量统计信息收集。默认开启此功能。 +- 引入版本:- +##### enable_colocate_mv_index + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否支持在创建同步物化视图时,将同步物化视图索引与基表进行 Colocate Join。如果此项设置为 `true`,tablet sink 将提高同步物化视图的写入性能。 +- 引入版本:v3.2.0 +##### enable_decimal_v3 + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否支持 DECIMAL V3 数据类型。 +- 引入版本:- +##### enable_experimental_mv + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否启用异步物化视图功能。TRUE 表示启用此功能。从 v2.5.2 版本开始,默认启用此功能。对于早于 v2.5.2 的版本,默认禁用此功能。 +- 引入版本:v2.4 +##### enable_local_replica_selection + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否为查询选择本地副本。本地副本可以降低网络传输成本。如果此参数设置为 TRUE,则 CBO 优先选择与当前 FE 具有相同 IP 地址的 BE 上的 tablet 副本。如果此参数设置为 `FALSE`,则可以选择本地副本和非本地副本。 +- 引入版本:- +##### enable_manual_collect_array_ndv + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否启用手动收集 ARRAY 类型的 NDV 信息。 +- 引入版本:v4.0 +##### enable_materialized_view + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否允许创建物化视图。 +- 引入版本:- +##### enable_materialized_view_external_table_precise_refresh + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:如果基表是外部表(非云原生表),则设置为 `true` 以启用物化视图刷新的内部优化。启用后,物化视图刷新处理器会计算候选分区,并且仅刷新受影响的基表分区,而不是所有分区,从而减少 I/O 和刷新成本。设置为 `false` 会强制刷新外部表的完整分区。 +- 引入版本:v3.2.9 +##### enable_materialized_view_metrics_collect + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否默认收集异步物化视图的监控指标。 +- 引入版本:v3.1.11,v3.2.5 +##### enable_materialized_view_spill + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否为物化视图刷新任务启用中间结果落盘。 +- 引入版本:v3.1.1 +##### enable_materialized_view_text_based_rewrite + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否默认开启基于文本的查询改写。如果设置为 `true`,系统会在创建异步物化视图时构建抽象语法树。 +- 引入版本:v3.2.5 +##### enable_mv_automatic_active_check + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否允许系统自动检查并重新激活那些由于基表(视图)经历了 Schema Change 或者被删除并重新创建而设置为非激活状态的异步物化视图。请注意,此功能不会重新激活用户手动设置为非激活状态的物化视图。 +- 引入版本:v3.1.6 +##### enable_mv_automatic_repairing_for_broken_base_tables + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:如果此项设置为 `true`,当基表外部表被删除并重新创建,或者其表标识符发生更改时,StarRocks 会尝试自动修复物化视图基表元数据。修复流程可以更新物化视图的基表信息,收集外部表分区的分区级别修复信息,并在遵循 `autoRefreshPartitionsLimit` 的同时,驱动异步自动刷新物化视图的分区刷新决策。目前,自动修复支持 Hive 外表;不支持的表类型将导致物化视图设置为非活动状态并出现修复异常。分区信息收集是非阻塞的,失败会被记录。 +- 引入版本:v3.3.19、v3.4.8、v3.5.6 +##### enable_predicate_columns_collection + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否启用谓词列收集。如果禁用,则在查询优化期间不会记录谓词列。 +- 引入版本:- +##### enable_query_queue_v2 + +- 默认值:true +- 类型:boolean +- 单位:- +- 是否可修改:否 +- 描述:如果为 true,则将 FE 中基于 slot 的查询调度器切换到 Query Queue V2。该标志由 slot 管理器和跟踪器(例如,`BaseSlotManager.isEnableQueryQueueV2` 和 `SlotTracker#createSlotSelectionStrategy`)读取,以选择 `SlotSelectionStrategyV2` 而不是旧策略。`query_queue_v2_xxx` 配置选项和 `QueryQueueOptions` 仅在此标志启用时生效。从 v4.1 开始,默认值从 `false` 更改为 `true`。 +- 引入版本:v3.3.4、v3.4.0、v3.5.0 +##### enable_sql_blacklist + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否启用 SQL 查询的黑名单检查。启用此功能后,黑名单中的查询将无法执行。 +- 引入版本:- +##### enable_statistic_collect + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否为 CBO 收集统计信息。此功能默认开启。 +- 引入版本:- +##### enable_statistic_collect_on_first_load + +- 默认值: true +- 类型: Boolean +- 单位: - +- 是否可变: 是 +- 描述: 控制由数据导入操作触发的自动统计信息收集和维护。这包括: + - 首次将数据导入到分区时(分区版本等于 2)的统计信息收集。 + - 将数据导入到多分区表的空分区时的统计信息收集。 + - 用于 INSERT OVERWRITE 操作的统计信息复制和更新。 + + **统计信息收集类型的决策策略:** + + - 对于 INSERT OVERWRITE: `deltaRatio = |targetRows - sourceRows| / (sourceRows + 1)` + - 如果 `deltaRatio < statistic_sample_collect_ratio_threshold_of_first_load` (默认值: 0.1),则不会执行统计信息收集。只会复制现有的统计信息。 + - 否则,如果 `targetRows > statistic_sample_collect_rows` (默认值: 200000),则使用 SAMPLE 统计信息收集。 + - 否则,使用 FULL 统计信息收集。 + + - 对于首次导入: `deltaRatio = loadRows / (totalRows + 1)` + - 如果 `deltaRatio < statistic_sample_collect_ratio_threshold_of_first_load` (默认值: 0.1),则不会执行统计信息收集。 + - 否则,如果 `loadRows > statistic_sample_collect_rows` (默认值: 200000),则使用 SAMPLE 统计信息收集。 + - 否则,使用 FULL 统计信息收集。 + + **同步行为:** + + - 对于 DML 语句 (INSERT INTO/INSERT OVERWRITE): 具有表锁的同步模式。导入操作会等待统计信息收集完成(最长等待时间为 `semi_sync_collect_statistic_await_seconds`)。 + - 对于 Stream Load 和 Broker Load: 无锁的异步模式。统计信息收集在后台运行,不会阻塞导入操作。 + + :::note + 禁用此配置将阻止所有由导入触发的统计信息操作,包括 INSERT OVERWRITE 的统计信息维护,这可能导致表缺少统计信息。如果频繁创建新表并频繁导入数据,则启用此功能会增加内存和 CPU 开销。 + ::: + +- 引入版本: v3.1 +##### enable_statistic_collect_on_update + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:控制 `UPDATE` 语句是否可以触发自动统计信息收集。 启用后,修改表数据的 `UPDATE` 操作可以通过与 `enable_statistic_collect_on_first_load` 控制的相同的基于数据摄取的统计信息框架来安排统计信息收集。 禁用此配置会跳过 `UPDATE` 语句的统计信息收集,同时保持加载触发的统计信息收集行为不变。 +- 引入版本:v3.5.11,v4.0.4 +##### enable_udf + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:否 +- 描述:是否启用 UDF。 +- 引入版本:- +##### expr_children_limit + +- 默认值:10000 +- 类型:Int +- 单位:- +- 是否可变:是 +- 描述:一个表达式中允许的最大子表达式数量。 +- 引入版本:- +##### histogram_buckets_size + +- 默认值:64 +- 类型:Long +- 单位:- +- 是否可变:是 +- 描述:直方图的默认存储桶数量。 +- 引入版本:- +##### histogram_max_sample_row_count + +- 默认值: 10000000 +- 类型: Long +- 单位: - +- 是否可修改: 是 +- 描述: 用于直方图的最大采样行数。 +- 引入版本: - +##### histogram_mcv_size + +- 默认值:100 +- 类型:Long +- 单位:- +- 是否可修改:是 +- 描述:直方图中最常见值 (MCV) 的数量。 +- 引入版本:- +##### histogram_sample_ratio + +- 默认值:0.1 +- 类型:Double +- 单位:- +- 是否可修改:是 +- 描述:直方图的采样率。 +- 引入版本:- +##### http_slow_request_threshold_ms + +- 默认值:5000 +- 类型:Int +- 单位:毫秒 +- 是否可修改:是 +- 描述:如果 HTTP 请求的响应时间超过此参数指定的值,则会生成日志来跟踪此请求。 +- 引入版本:v2.5.15,v3.1.5 +##### lock_checker_enable_deadlock_check + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:启用后,LockChecker 线程会使用 ThreadMXBean.findDeadlockedThreads() 执行 JVM 级别的死锁检测,并记录有问题的线程的堆栈跟踪。该检查在 LockChecker 守护进程中运行(其频率由 `lock_checker_interval_second` 控制),并将详细的堆栈信息写入日志,这可能会占用大量 CPU 和 I/O。仅在对实时或可重现的死锁问题进行故障排除时才启用此选项;在正常操作中保持启用状态可能会增加开销和日志量。 +- 引入版本:v3.2.0 +##### low_cardinality_threshold + +- 默认值: 255 +- 类型: Int +- 单位: - +- 是否可修改: 否 +- 描述: 低基数字典的阈值。 +- 引入版本: v3.5.0 +##### materialized_view_min_refresh_interval + +- 默认值:60 +- 类型:Int +- 单位:秒 +- 是否可变:是 +- 描述:ASYNC 物化视图计划允许的最小刷新间隔(以秒为单位)。当使用基于时间的间隔创建物化视图时,该间隔将转换为秒,并且不得小于此值;否则,CREATE/ALTER 操作将失败并显示 DDL 错误。如果此值大于 0,则强制执行检查;将其设置为 0 或负值以禁用该限制,这可以防止过多的 TaskManager 调度以及过于频繁的刷新导致 FE 内存/CPU 使用率过高。此项不适用于 EVENT_TRIGGERED 刷新。 +- 引入版本:v3.3.0、v3.4.0、v3.5.0 +##### materialized_view_refresh_ascending + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:如果此参数设置为 `true`,物化视图分区刷新将按照分区键升序(从旧到新)迭代分区。如果设置为 `false`(默认值),系统将按降序(从新到旧)迭代。当分区刷新存在限制时,StarRocks 在 LIST 分区和 RANGE 分区的物化视图刷新逻辑中都会使用此参数来选择要处理的分区,并计算后续 TaskRun 执行的下一个起始/结束分区边界。更改此参数会改变首先刷新的分区以及下一个分区范围的推导方式;对于 RANGE 分区的物化视图,调度程序会验证新的起始/结束分区,如果更改会创建重复的边界(死循环),则会引发错误,因此请谨慎设置此参数。 +- 引入版本:v3.3.1、v3.4.0、v3.5.0 +##### max_allowed_in_element_num_of_delete + +- 默认值: 10000 +- 类型: Int +- 单位: - +- 是否可修改: 是 +- 描述: DELETE 语句中 IN 谓词允许的最大元素数量。 +- 引入版本: - +##### max_create_table_timeout_second + +- 默认值:600 +- 类型:Int +- 单位:秒 +- 是否可变:是 +- 描述:创建表的最大超时时长。 +- 引入版本:- +##### max_distribution_pruner_recursion_depth + +- 默认值:100 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:分区裁剪器允许的最大递归深度。增加递归深度可以裁剪更多的元素,但也会增加 CPU 消耗。 +- 引入版本:- +##### max_partitions_in_one_batch + +- 默认值:4096 +- 类型:Long +- 单位:- +- 是否可修改:是 +- 描述:批量创建分区时,可以创建的最大分区数。 +- 引入版本:- +##### max_planner_scalar_rewrite_num + +- 默认值:100000 +- 类型:Long +- 单位:- +- 是否可修改:是 +- 描述:优化器可以重写标量算子的最大次数。 +- 引入版本:- +##### max_query_queue_history_slots_number + +- 默认值:0 +- 类型:Int +- 单位:Slots +- 是否可变:是 +- 描述:控制每个查询队列保留多少个最近释放(历史)的已分配插槽,用于监控和可观察性。当 `max_query_queue_history_slots_number` 设置为大于 0 的值时,BaseSlotTracker 会在内存队列中保存最多该数量的最近释放的 LogicalSlot 条目,并在超出限制时逐出最旧的条目。启用此功能会导致 getSlots() 包含这些历史条目(最新的优先),允许 BaseSlotTracker 尝试使用 ConnectContext 注册插槽以获得更丰富的 ExtraMessage 数据,并允许 LogicalSlot.ConnectContextListener 将查询完成元数据附加到历史插槽。当 `max_query_queue_history_slots_number` <= 0 时,历史机制将被禁用(不使用额外的内存)。使用合理的值来平衡可观察性和内存开销。 +- 引入版本:v3.5.0 +##### max_query_retry_time + +- 默认值:2 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:FE 上查询重试的最大次数。 +- 引入版本:- +##### max_running_rollup_job_num_per_table + +- 默认值:1 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:单个表可以并行运行的最大 rollup 任务数。 +- 引入版本:- +##### max_scalar_operator_flat_children + +- 默认值:10000 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:ScalarOperator 的最大扁平子节点数。您可以设置此限制,以防止优化器使用过多内存。 +- 引入版本:- +##### max_scalar_operator_optimize_depth + +- 默认值:256 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:ScalarOperator 优化可以应用的最大深度。 +- 引入版本:- +##### mv_active_checker_interval_seconds + +- 默认值:60 +- 类型:Long +- 单位:秒 +- 是否可修改:是 +- 描述:当后台 active_checker 线程启用时,系统会定期检测并自动重新激活由于 schema change 或基表(或视图)重建而变为 Inactive 状态的物化视图。此参数控制 checker 线程的调度间隔,以秒为单位。默认值由系统定义。 +- 引入版本:v3.1.6 +##### mv_rewrite_consider_data_layout_mode + +- 默认值:`enable` +- 类型:String +- 单位:- +- 是否可变:是 +- 描述:控制物化视图改写在选择最佳物化视图时,是否应考虑基表的数据布局。有效值: + - `disable`:在选择候选物化视图时,从不使用数据布局标准。 + - `enable`:仅当查询被识别为对布局敏感时,才使用数据布局标准。 + - `force`:在选择最佳物化视图时,始终应用数据布局标准。 + 更改此配置会影响 `BestMvSelector` 的行为,并且可以提高或扩大改写的适用性,具体取决于物理布局对于计划正确性或性能是否重要。 +- 引入版本:- +##### publish_version_interval_ms + +- 默认值:10 +- 类型:Int +- 单位:毫秒 +- 是否可修改:否 +- 描述:发布版本验证任务的间隔时间。 +- 引入版本:- +##### query_queue_slots_estimator_strategy + +- 默认值:MAX +- 类型:String +- 单位:- +- 是否可修改:是 +- 描述:当 `enable_query_queue_v2` 为 true 时,选择用于基于队列的查询的 slot 估计策略。有效值:MBE (基于内存)、PBE (基于并行度)、MAX (取 MBE 和 PBE 的最大值) 和 MIN (取 MBE 和 PBE 的最小值)。MBE 通过预测内存或计划成本除以每个 slot 的内存目标来估计 slot,并受 `totalSlots` 的限制。PBE 从 fragment 并行度(扫描范围计数或基数 / 每个 slot 的行数)和基于 CPU 成本的计算(使用每个 slot 的 CPU 成本)得出 slot,然后将结果限制在 [numSlots/2, numSlots] 范围内。MAX 和 MIN 分别通过取它们的最大值或最小值来组合 MBE 和 PBE。如果配置的值无效,则使用默认值 (`MAX`)。 +- 引入版本:v3.5.0 +##### query_queue_v2_concurrency_level + +- 默认值:4 +- 类型:Int +- 单位:- +- 是否可变:是 +- 描述:控制计算系统总查询槽时使用的逻辑并发“层”的数量。在存算一体模式下,总槽数 = `query_queue_v2_concurrency_level` * BE 数量 * 每个 BE 的核心数(来自 BackendResourceStat)。在多计算集群模式下,有效并发会缩减到 max(1, `query_queue_v2_concurrency_level` / 4)。如果配置的值为非正数,则将其视为 `4`。更改此值会增加或减少 totalSlots(以及并发查询容量),并影响每个槽的资源:memBytesPerSlot 是通过将每个 worker 的内存除以(每个 worker 的核心数 * 并发数)得出的,并且 CPU 统计使用 `query_queue_v2_cpu_costs_per_slot`。将其设置为与集群大小成比例;非常大的值可能会减少每个槽的内存并导致资源碎片。 +- 引入版本:v3.3.4、v3.4.0、v3.5.0 +##### query_queue_v2_cpu_costs_per_slot + +- 默认值:1000000000 +- 类型:Long +- 单位:planner CPU 成本单位 +- 是否可变:是 +- 描述:每个 slot 的 CPU 成本阈值,用于根据查询的 planner CPU 成本估算查询所需的 slot 数量。调度器将 slot 计算为 integer(plan_cpu_costs / `query_queue_v2_cpu_costs_per_slot`),然后将结果限制在 [1, totalSlots] 范围内(totalSlots 源自查询队列 V2 `V2` 参数)。V2 代码将非正设置标准化为 1 (Math.max(1, value)),因此非正值实际上变为 `1`。增加此值会减少每个查询分配的 slot(倾向于更少、更大 slot 的查询);减少此值会增加每个查询的 slot。与 `query_queue_v2_num_rows_per_slot` 和并发设置一起调整,以控制并行性与资源粒度。 +- 引入版本:v3.3.4、v3.4.0、v3.5.0 +##### query_queue_v2_num_rows_per_slot + +- 默认值:4096 +- 类型:Int +- 单位:行 +- 是否可修改:是 +- 描述:在评估每个查询的 slot 数量时,分配给单个调度 slot 的目标源行记录数。StarRocks 计算 estimated_slots = (Source Node 的基数) / `query_queue_v2_num_rows_per_slot`,然后将结果限制在 [1, totalSlots] 范围内,如果计算出的值非正数,则强制最小值为 1。totalSlots 源自可用资源(大致为 DOP * `query_queue_v2_concurrency_level` * number_of_workers/BE),因此取决于集群/核心数。增加此值可减少 slot 数量(每个 slot 处理更多行)并降低调度开销;减少此值可增加并行度(更多、更小的 slot),直至达到资源限制。 +- 引入版本:v3.3.4、v3.4.0、v3.5.0 +##### query_queue_v2_schedule_strategy + +- 默认值:SWRR +- 类型:String +- 单位:- +- 是否可修改:是 +- 描述:选择 Query Queue V2 用于对等待查询进行排序的调度策略。支持的值(不区分大小写)包括 `SWRR` (Smooth Weighted Round Robin,平滑加权轮询) — 默认值,适用于需要公平加权共享的混合/混合型工作负载 — 以及 `SJF` (Short Job First + Aging,短作业优先 + 老化) — 优先处理短作业,同时使用老化来避免饥饿。该值使用不区分大小写的枚举查找进行解析;无法识别的值将记录为错误,并使用默认策略。此配置仅在启用 Query Queue V2 时生效,并与 V2 大小设置(如 `query_queue_v2_concurrency_level`)交互。 +- 引入版本:v3.3.12、v3.4.2、v3.5.0 +##### semi_sync_collect_statistic_await_seconds + +- 默认值:30 +- 类型:Int +- 单位:秒 +- 是否可变:是 +- 描述:DML 操作(INSERT INTO 和 INSERT OVERWRITE 语句)期间半同步统计信息收集的最长等待时间。 Stream Load 和 Broker Load 使用异步模式,不受此配置的影响。如果统计信息收集时间超过此值,则加载操作将继续,而无需等待收集完成。此配置与 `enable_statistic_collect_on_first_load` 结合使用。 +- 引入版本:v3.1 +##### slow_query_analyze_threshold + +- 默认值: 5 +- 类型: Int +- 单位: 秒 +- 是否可修改: 是 +- 描述: 查询执行时间超过该阈值时,会触发 Query Feedback 分析。 +- 引入版本: v3.4.0 +##### statistic_analyze_status_keep_second + +- 默认值:3 * 24 * 3600 +- 类型:Long +- 单位:秒 +- 是否可修改:是 +- 描述:保留收集任务历史记录的持续时间。默认值为 3 天。 +- 引入版本:- +##### statistic_auto_analyze_end_time + +- 默认值:23:59:59 +- 类型:String +- 单位:- +- 是否可修改:是 +- 描述:自动收集的结束时间。取值范围:`00:00:00` - `23:59:59`。 +- 引入版本:- +##### statistic_auto_analyze_start_time + +- 默认值:00:00:00 +- 类型:String +- 单位:- +- 是否可修改:是 +- 描述:自动收集的开始时间。取值范围:`00:00:00` - `23:59:59`。 +- 引入版本:- +##### statistic_auto_collect_ratio + +- 默认值: 0.8 +- 类型: Double +- 单位: - +- 是否可修改: 是 +- 描述: 用于确定自动收集的统计信息是否正常的阈值。如果统计信息的健康状况低于此阈值,则会触发自动收集。 +- 引入版本: - +##### statistic_auto_collect_small_table_rows + +- 默认值: 10000000 +- 类型: Long +- 单位: - +- 是否可修改: 是 +- 描述: 在自动收集期间,用于确定外部数据源(Hive、Iceberg、Hudi)中的表是否为小表的阈值。如果表的行数小于此值,则该表被视作小表。 +- 引入版本: v3.2 +##### statistic_cache_columns + +- 默认值: 100000 +- 类型: Long +- 单位: - +- 是否可修改: 否 +- 描述: 统计信息表可以缓存的行数。 +- 引入版本: - +##### statistic_cache_thread_pool_size + +- 默认值:10 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:用于刷新统计信息缓存的线程池大小。 +- 引入版本:- +##### statistic_collect_interval_sec + +- 默认值: 5 * 60 +- 类型: Long +- 单位: 秒 +- 是否可修改: 是 +- 描述: 自动收集期间,检查数据更新的间隔。 +- 引入版本: - +##### statistic_max_full_collect_data_size + +- 默认值:100 * 1024 * 1024 * 1024 +- 类型:Long +- 单位:字节 +- 是否可修改:是 +- 描述:自动收集统计信息的数据大小阈值。如果总大小超过此值,则执行抽样收集,而不是完整收集。 +- 引入版本:- +##### statistic_sample_collect_rows + +- 默认值:200000 +- 类型:Long +- 单位:- +- 是否可变:是 +- 描述:在数据导入触发统计信息收集操作期间,用于决定采用 SAMPLE 统计信息收集还是 FULL 统计信息收集的行数阈值。如果导入或更改的行数超过此阈值(默认为 200,000),则使用 SAMPLE 统计信息收集;否则,使用 FULL 统计信息收集。此设置与 `enable_statistic_collect_on_first_load` 和 `statistic_sample_collect_ratio_threshold_of_first_load` 结合使用。 +- 引入版本:- +##### statistic_update_interval_sec + +- 默认值: 24 * 60 * 60 +- 类型: Long +- 单位: 秒 +- 是否可修改: 是 +- 描述: 统计信息缓存的更新间隔。 +- 引入版本: - +##### task_check_interval_second + +- 默认值:60 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:任务后台作业的执行间隔。GlobalStateMgr 使用此值来调度 TaskCleaner FrontendDaemon,后者会调用 `doTaskBackgroundJob()`;该值乘以 1000 以设置守护进程的间隔(以毫秒为单位)。减小该值会使后台维护(任务清理、检查)运行得更频繁,反应更快,但会增加 CPU/IO 开销;增加该值会减少开销,但会延迟清理和检测过时的任务。调整此值以平衡维护响应性和资源使用率。 +- 引入版本:v3.2.0 +##### task_min_schedule_interval_s + +- 默认值:10 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:SQL 层检查的任务计划允许的最小计划间隔(以秒为单位)。提交任务时,TaskAnalyzer 会将计划周期转换为秒,如果周期小于 `task_min_schedule_interval_s`,则拒绝提交并返回 ERR_INVALID_PARAMETER。这可以防止创建运行过于频繁的任务,并保护调度程序免受高频任务的影响。如果计划没有明确的开始时间,TaskAnalyzer 会将开始时间设置为当前 epoch 秒数。 +- 引入版本:v3.3.0、v3.4.0、v3.5.0 +##### task_runs_timeout_second + +- 默认值:4 * 3600 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:TaskRun 的默认执行超时时间(以秒为单位)。此配置项被 TaskRun 执行用作基准超时时间。如果 task run 的属性包含会话变量 `query_timeout` 或 `insert_timeout`,且值为正整数,则运行时使用该会话超时时间与 `task_runs_timeout_second` 之间的较大值。生效的超时时间不得超过配置的 `task_runs_ttl_second` 和 `task_ttl_second`。设置此配置项可以限制 task run 的执行时长。非常大的值可能会受到 task/task-run TTL 设置的限制。 +- 引入版本:- +### 数据导入和数据导出 +##### broker_load_default_timeout_second + +- 默认值: 14400 +- 类型: Int +- 单位: 秒 +- 是否可修改: 是 +- 描述: 一个 Broker Load 任务的超时时间。 +- 引入版本: - +##### desired_max_waiting_jobs + +- 默认值:1024 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:FE 中等待执行的最大任务数量。该数值代表所有任务,例如建表、数据导入和 schema change 任务。如果 FE 中等待执行的任务数量达到这个值,FE 将拒绝新的数据导入请求。该参数仅对异步数据导入生效。从 v2.5 版本开始,默认值从 100 更改为 1024。 +- 引入版本:- +##### disable_load_job + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:当集群遇到错误时,是否禁用数据导入。这样可以防止集群错误造成的任何损失。默认值为 `FALSE`,表示不禁用数据导入。`TRUE` 表示禁用数据导入,并且集群处于只读状态。 +- 引入版本:- +##### empty_load_as_error + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:用于指定当没有数据导入时,是否返回错误信息“all partitions have no load data”。取值范围: + - `true`:如果没有数据导入,系统会显示失败消息,并返回错误“all partitions have no load data”。 + - `false`:如果没有数据导入,系统会显示成功消息,并返回 OK,而不是错误。 +- 引入版本:- +##### enable_file_bundling + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否为存算分离表启用 File Bundling 优化。启用此功能(设置为 `true`)后,系统会自动捆绑由数据导入、Compaction 或 Publish 操作生成的数据文件,从而降低因高频访问外部存储系统而产生的 API 成本。您还可以使用 CREATE TABLE 属性 `file_bundling` 在表级别控制此行为。有关详细说明,请参见 [CREATE TABLE](../../sql-reference/sql-statements/table_bucket_part_index/CREATE_TABLE.md) 。 +- 引入版本:v4.0 +##### enable_routine_load_lag_metrics + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否收集 Routine Load Kafka 分区 offset 延迟指标。请注意,将此项设置为 `true` 将调用 Kafka API 来获取分区的最新 offset。 +- 引入版本:- +##### enable_sync_publish + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否在数据导入事务的发布阶段同步执行apply任务。此参数仅适用于主键表。有效值: + - `TRUE`(默认值):在数据导入事务的发布阶段同步执行apply任务。这意味着只有在apply任务完成后,数据导入事务才会被报告为成功,并且加载的数据才能真正被查询到。当任务一次性加载大量数据或频繁加载数据时,将此参数设置为 `true` 可以提高查询性能和稳定性,但可能会增加数据导入延迟。 + - `FALSE`:在数据导入事务的发布阶段异步执行apply任务。这意味着在apply任务提交后,数据导入事务就会被报告为成功,但加载的数据不能立即被查询到。在这种情况下,并发查询需要等待apply任务完成或超时后才能继续。当任务一次性加载大量数据或频繁加载数据时,将此参数设置为 `false` 可能会影响查询性能和稳定性。 +- 引入版本:v3.2.0 +##### export_checker_interval_second + +- 默认值:5 +- 类型:Int +- 单位:秒 +- 是否可修改:否 +- 描述:调度数据导出作业的时间间隔。 +- 引入版本:- +##### export_max_bytes_per_be_per_task + +- 默认值:268435456 +- 类型:Long +- 单位:Bytes +- 是否可修改:是 +- 描述:单个数据卸载任务从单个 BE 导出的最大数据量。 +- 引入版本:- +##### export_running_job_num_limit + +- 默认值: 5 +- 类型: Int +- 单位: - +- 是否可修改: 是 +- 描述: 可以并行运行的数据导出任务的最大数量。 +- 引入版本: - +##### export_task_default_timeout_second + +- 默认值:2 * 3600 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:数据导出任务的超时时长。 +- 引入版本:- +##### export_task_pool_size + +- 默认值:5 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:数据导出任务线程池的大小。 +- 引入版本:- +##### external_table_commit_timeout_ms + +- 默认值:10000 +- 类型:Int +- 单位:毫秒 +- 是否可修改:是 +- 描述:向 StarRocks 外部表提交(发布)写入事务的超时时长。默认值 `10000` 表示超时时长为 10 秒。 +- 引入版本:- +##### finish_transaction_default_lock_timeout_ms + +- 默认值: 1000 +- 类型: Int +- 单位: 毫秒 (MilliSeconds) +- 是否可修改: 是 +- 描述: 完成事务时,获取数据库和表锁的默认超时时间。 +- 引入版本: v4.0.0, v3.5.8 +##### history_job_keep_max_second + +- 默认值:7 * 24 * 3600 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:历史作业可以保留的最长时间,例如 schema change 作业。 +- 引入版本:- +##### insert_load_default_timeout_second + +- 默认值: 3600 +- 类型: Int +- 单位: 秒 +- 是否可修改: 是 +- 描述: 用于数据导入的 INSERT INTO 语句的超时时长。 +- 引入版本: - +##### label_clean_interval_second + +- 默认值:4 * 3600 +- 类型:Int +- 单位:秒 +- 是否可修改:否 +- 描述:清理标签的时间间隔。单位:秒。建议您指定一个较短的时间间隔,以确保能够及时清理历史标签。 +- 引入版本:- +##### label_keep_max_num + +- 默认值:1000 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:在一段时间内可以保留的最大数据导入作业数量。如果超过此数量,则会删除历史作业的信息。 +- 引入版本:- +##### label_keep_max_second + +- 默认值:3 * 24 * 3600 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:已完成且处于 FINISHED 或 CANCELLED 状态的导入作业的标签保留的最长时间(以秒为单位)。默认值为 3 天。超过此时间后,标签将被删除。此参数适用于所有类型的导入作业。值过大将消耗大量内存。 +- 引入版本:- +##### load_checker_interval_second + +- 默认值: 5 +- 类型: Int +- 单位: 秒 +- 是否可修改: 否 +- 描述: 滚动处理导入作业的时间间隔。 +- 引入版本: - +##### load_parallel_instance_num + +- 默认值:1 +- 类型:Int +- 单位:- +- 是否可变:是 +- 描述:控制在单个主机上为 Broker Load 和 Stream Load 创建的并行导入片段实例的数量。LoadPlanner 使用此值作为每个主机的并行度,除非会话启用了自适应 Sink DOP;如果会话变量 `enable_adaptive_sink_dop` 为 true,则会话的 `sink_degree_of_parallelism` 将覆盖此配置。当需要 shuffle 时,此值将应用于片段并行执行(扫描片段和 Sink 片段并行执行实例)。当不需要 shuffle 时,它用作 Sink Pipeline DOP。注意:从本地文件导入会被强制为单个实例(Pipeline DOP = 1,并行执行 = 1),以避免本地磁盘争用。增加此数字会提高每个主机的并发性和吞吐量,但可能会增加 CPU、内存和 I/O 争用。 +- 引入版本:v3.2.0 +##### load_straggler_wait_second + +- 默认值:300 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:BE 副本可以容忍的最大数据导入延迟。如果超过此值,则执行克隆以从其他副本克隆数据。 +- 引入版本:- +##### loads_history_retained_days + +- 默认值:30 +- 类型:Int +- 单位:天 +- 是否可修改:是 +- 描述:在内部 `_statistics_.loads_history` 表中保留数据导入历史记录的天数。此值用于表创建,以设置表属性 `partition_live_number`,并传递给 `TableKeeper`(最小限制为 1),以确定要保留的每日分区数。增加或减少此值会调整已完成的数据导入作业在每日分区中保留的时间;它会影响新表的创建和 keeper 的裁剪行为,但不会自动重新创建过去的分区。`LoadsHistorySyncer` 在管理数据导入历史记录生命周期时依赖于此保留期限;其同步频率由 `loads_history_sync_interval_second` 控制。 +- 引入版本:v3.3.6、v3.4.0、v3.5.0 +##### loads_history_sync_interval_second + +- 默认值:60 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:`LoadsHistorySyncer` 使用的时间间隔(以秒为单位),用于安排将已完成的导入作业从 `information_schema.loads` 定期同步到内部 `_statistics_.loads_history` 表。该值在构造函数中乘以 1000,以设置 FrontendDaemon 的时间间隔。同步器会跳过第一次运行(以允许创建表),并且仅导入一分钟前完成的导入;较小的值会增加 DML 和执行器的负载,而较大的值会延迟历史导入记录的可用性。有关目标表的保留/分区行为,请参见 `loads_history_retained_days`。 +- 引入版本:v3.3.6、v3.4.0、v3.5.0 +##### max_broker_load_job_concurrency + +- 默认值:5 +- 别名:async_load_task_pool_size +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:StarRocks 集群内允许的最大并发 Broker Load 作业数。此参数仅对 Broker Load 有效。此参数的值必须小于 `max_running_txn_num_per_db` 的值。从 v2.5 版本开始,默认值从 `10` 更改为 `5`。 +- 引入版本:- +##### max_load_timeout_second + +- 默认值:259200 +- 类型:Int +- 单位:秒 +- 是否可变:是 +- 描述:数据导入作业允许的最长超时时间。如果超过此限制,数据导入作业将失败。此限制适用于所有类型的数据导入作业。 +- 引入版本:- +##### max_routine_load_batch_size + +- 默认值: 4294967296 +- 类型: Long +- 单位: Bytes +- 是否可修改: 是 +- 描述: 单个 Routine Load 任务可以导入的最大数据量。 +- 引入版本: - +##### max_routine_load_task_concurrent_num + +- 默认值:5 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:每个 Routine Load 作业的最大并发任务数。 +- 引入版本:- +##### max_routine_load_task_num_per_be + +- 默认值:16 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:每个 BE 上并发的 Routine Load 任务的最大数量。自 v3.1.0 起,此参数的默认值从 5 增加到 16,并且不再需要小于或等于 BE 静态参数 `routine_load_thread_pool_size`(已弃用)的值。 +- 引入版本:- +##### max_running_txn_num_per_db + +- 默认值:1000 +- 类型:Int +- 单位:- +- 是否可变:是 +- 描述:每个数据库在 StarRocks 集群中允许运行的最大数据导入事务数。默认值为 `1000`。从 v3.1 版本开始,默认值从 `100` 更改为 `1000`。当数据库实际运行的数据导入事务数超过此参数的值时,将不会处理新的数据导入请求。同步数据导入作业的新请求将被拒绝,异步数据导入作业的新请求将被放入队列。我们不建议您增加此参数的值,因为这会增加系统负载。 +- 引入版本:- +##### max_stream_load_timeout_second + +- 默认值:259200 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:一个 Stream Load 任务允许的最长超时时间。 +- 引入版本:- +##### max_tolerable_backend_down_num + +- 默认值:0 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:允许的最大故障 BE 节点数。如果超过此数量,则无法自动恢复 Routine Load 作业。 +- 引入版本:- +##### min_bytes_per_broker_scanner + +- 默认值: 67108864 +- 类型: Long +- 单位: Bytes +- 是否可修改: 是 +- 描述: 单个 Broker Load 实例可以处理的最小数据量。 +- 引入版本: - +##### min_load_timeout_second + +- 默认值:1 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:允许的数据导入任务的最小超时时长。此限制适用于所有类型的数据导入任务。 +- 引入版本:- +##### min_routine_load_lag_for_metrics + +- 默认值:10000 +- 类型:INT +- 单位:- +- 是否可修改:是 +- 描述:在监控指标中显示的 Routine Load 作业的最小 offset 延迟。 offset 延迟大于此值的 Routine Load 作业将显示在指标中。 +- 引入版本:- +##### period_of_auto_resume_min + +- 默认值:5 +- 类型:Int +- 单位:分钟 +- 是否可修改:是 +- 描述:Routine Load 作业自动恢复的间隔时间。 +- 引入版本:- +##### prepared_transaction_default_timeout_second + +- 默认值: 86400 +- 类型: Int +- 单位: 秒 +- 是否可修改: 是 +- 描述: 预处理事务的默认超时时长。 +- 引入版本: - +##### routine_load_task_consume_second + +- 默认值:15 +- 类型:Long +- 单位:秒 +- 是否可变:是 +- 描述:集群中每个 Routine Load 任务消费数据的最大时长。自 v3.1.0 起,Routine Load 作业支持在 [job_properties](../../sql-reference/sql-statements/loading_unloading/routine_load/CREATE_ROUTINE_LOAD.md#job_properties) 中使用新参数 `task_consume_second`。此参数适用于 Routine Load 作业中的单个导入任务,更加灵活。 +- 引入版本:- +##### routine_load_task_timeout_second + +- 默认值:60 +- 类型:Long +- 单位:秒 +- 是否可变:是 +- 描述:集群中每个 Routine Load 任务的超时时长。自 v3.1.0 起,Routine Load 作业在 [job_properties](../../sql-reference/sql-statements/loading_unloading/routine_load/CREATE_ROUTINE_LOAD.md#job_properties) 中支持新的参数 `task_timeout_second`。此参数适用于 Routine Load 作业中的单个导入任务,更加灵活。 +- 引入版本:- +##### routine_load_unstable_threshold_second + +- 默认值: 3600 +- 类型: Long +- 单位: 秒 +- 是否可修改: 是 +- 描述: 如果某个 Routine Load 作业中的任何 task 滞后,则该 Routine Load 作业将设置为 UNSTABLE 状态。具体来说,如果正在消费的消息的时间戳与当前时间之差超过此阈值,并且数据源中存在未消费的消息,则会发生这种情况。 +- 引入版本: - +##### spark_dpp_version + +- 默认值:1.0.0 +- 类型:String +- 单位:- +- 是否可变:否 +- 描述:使用的 Spark 动态分区裁剪 (DPP) 的版本。 +- 引入版本:- +##### spark_home_default_dir + +- 默认值:StarRocksFE.STARROCKS_HOME_DIR + "/lib/spark2x" +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:Spark 客户端的根目录。 +- 引入版本:- +##### spark_launcher_log_dir + +- 默认值:sys_log_dir + "/spark_launcher_log" +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:存储 Spark 日志文件的目录。 +- 引入版本:- +##### spark_load_default_timeout_second + +- 默认值: 86400 +- 类型: Int +- 单位: 秒 +- 是否可修改: 是 +- 描述: 每个 Spark Load 作业的超时时间。 +- 引入版本: - +##### spark_load_submit_timeout_second + +- 默认值:300 +- 类型:long +- 单位:秒 +- 是否可修改:否 +- 描述:提交 Spark 应用程序后,等待 YARN 响应的最长时间(以秒为单位)。`SparkLauncherMonitor.LogMonitor` 将此值转换为毫秒,如果作业在 UNKNOWN/CONNECTED/SUBMITTED 状态的时间超过此超时时间,将停止监控并强制终止 spark launcher 进程。`SparkLoadJob` 将此配置读取为默认值,并允许通过 `LoadStmt.SPARK_LOAD_SUBMIT_TIMEOUT` 属性为每个导入单独设置。将其设置得足够高,以适应 YARN 队列延迟;设置得太低可能会中止合法排队的作业,而设置得太高可能会延迟故障处理和资源清理。 +- 引入版本:v3.2.0 +##### spark_resource_path + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可变:否 +- 描述:Spark 依赖包的根目录。 +- 引入版本:- +##### stream_load_default_timeout_second + +- 默认值:600 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:每个 Stream Load 任务的默认超时时长。 +- 引入版本:- +##### stream_load_max_txn_num_per_be + +- 默认值:-1 +- 类型:Int +- 单位:Transactions +- 是否可变:是 +- 描述:限制从单个 BE(后端)主机接受的并发 stream load 事务的数量。当设置为非负整数时,FrontendServiceImpl 会检查 BE 的当前事务计数(按客户端 IP),如果计数 >= 此限制,则拒绝新的 stream load begin 请求。值 < 0 表示禁用限制(无限制)。此检查发生在 stream load begin 期间,超出限制时可能会导致 `streamload txn num per be exceeds limit` 错误。相关的运行时行为使用 `stream_load_default_timeout_second` 作为请求超时回退。 +- 引入版本:v3.3.0、v3.4.0、v3.5.0 +##### stream_load_task_keep_max_num + +- 默认值:1000 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:StreamLoadMgr 在内存中保留的 Stream Load 任务的最大数量(全局,适用于所有数据库)。当跟踪的任务数 (`idToStreamLoadTask`) 超过此阈值时,StreamLoadMgr 首先调用 `cleanSyncStreamLoadTasks()` 以删除已完成的同步数据导入任务;如果大小仍然大于此阈值的一半,则调用 `cleanOldStreamLoadTasks(true)` 以强制删除较旧或已完成的任务。增加此值可在内存中保留更多任务历史记录;减少此值可降低内存使用率并使清理更积极。此值仅控制内存中的保留,不影响持久化/重放的任务。 +- 引入版本:v3.2.0 +##### stream_load_task_keep_max_second + +- 默认值:3 * 24 * 3600 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:已完成或已取消的 Stream Load 任务的保留窗口。如果一个任务达到最终状态,并且其结束时间戳早于此阈值(`currentMs - endTimeMs > stream_load_task_keep_max_second * 1000`),则它有资格被 `StreamLoadMgr.cleanOldStreamLoadTasks` 移除,并在加载持久化状态时被丢弃。适用于 `StreamLoadTask` 和 `StreamLoadMultiStmtTask`。如果任务总数超过 `stream_load_task_keep_max_num`,则可能会提前触发清理(同步任务由 `cleanSyncStreamLoadTasks` 优先处理)。设置此项以平衡历史记录/可调试性和内存使用。 +- 引入版本:v3.2.0 +##### transaction_clean_interval_second + +- 默认值: 30 +- 类型: Int +- 单位: 秒 +- 是否可修改: 否 +- 描述: 清理已完成事务的时间间隔。单位:秒。建议您指定一个较短的时间间隔,以确保及时清理已完成的事务。 +- 引入版本: - +##### transaction_stream_load_coordinator_cache_capacity + +- 默认值:4096 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:用于存储从事务标签到协调器节点的映射的缓存的容量。 +- 引入版本:- +##### transaction_stream_load_coordinator_cache_expire_seconds + +- 默认值:900 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:在协调器映射从缓存中逐出之前,缓存在缓存中保留的时间 (TTL)。 +- 引入版本:- +##### yarn_client_path + +- 默认值:StarRocksFE.STARROCKS_HOME_DIR + "/lib/yarn-client/hadoop/bin/yarn" +- 类型:String +- 单位:- +- 是否可变:否 +- 描述:Yarn 客户端包的根目录。 +- 引入版本:- +##### yarn_config_dir + +- 默认值:StarRocksFE.STARROCKS_HOME_DIR + "/lib/yarn-config" +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:存储 Yarn 配置文件的目录。 +- 引入版本:- +### 统计报告 +##### enable_collect_warehouse_metrics + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:如果设置为 `true`,系统会收集并导出每个 warehouse 的指标。启用此项会将 warehouse 级别的指标(slot/使用率/可用性)添加到指标输出中,并增加指标基数和收集开销。禁用此项会省略特定于 warehouse 的指标,并降低 CPU/网络和监控存储成本。 +- 引入版本:v3.5.0 +##### enable_http_detail_metrics + +- 默认值:false +- 类型:boolean +- 单位:- +- 是否可修改:是 +- 描述:如果为 true,HTTP 服务器会计算并公开详细的 HTTP worker 指标(特别是 `HTTP_WORKER_PENDING_TASKS_NUM` 指标)。启用此参数会导致服务器迭代 Netty worker 执行器,并在每个 `NioEventLoop` 上调用 `pendingTasks()` 以统计待处理的任务数;如果禁用此参数,则该指标返回 0,以避免产生开销。这种额外的收集可能会占用大量 CPU 资源并对延迟敏感 - 仅在调试或详细调查时启用。 +- 引入版本:v3.2.3 +##### proc_profile_collect_time_s + +- 默认值: 120 +- 类型: Int +- 单位: 秒 +- 是否可修改: 是 +- 描述: 单个进程 profile 收集的持续时间,以秒为单位。当 `proc_profile_cpu_enable` 或 `proc_profile_mem_enable` 设置为 `true` 时,AsyncProfiler 启动,收集器线程休眠此持续时间,然后停止 profiler 并写入 profile。较大的值会增加样本覆盖率和文件大小,但会延长 profiler 运行时并延迟后续收集;较小的值会降低开销,但可能产生不足的样本。确保此值与 `proc_profile_file_retained_days` 和 `proc_profile_file_retained_size_bytes` 等保留设置保持一致。 +- 引入版本: v3.2.12 +### 存储 +##### alter_table_timeout_second + +- 默认值: 86400 +- 类型: Int +- 单位: 秒 +- 是否可变: 是 +- 描述: `schema change` 操作 (ALTER TABLE) 的超时时长。 +- 引入版本: - +##### capacity_used_percent_high_water + +- 默认值:0.75 +- 类型:double +- 单位:小数 (0.0–1.0) +- 是否可变:是 +- 描述:用于计算后端负载评分时,磁盘已用容量百分比(已用容量占总容量的比例)的高水位阈值。`BackendLoadStatistic.calcSore` 使用 `capacity_used_percent_high_water` 来设置 `LoadScore.capacityCoefficient`:如果某个 BE 的已用百分比小于 0.5,则该系数等于 0.5;如果已用百分比 > `capacity_used_percent_high_water`,则该系数 = 1.0;否则,该系数通过 (2 * usedPercent - 0.5) 随已用百分比线性变化。当系数为 1.0 时,负载评分完全由容量比例驱动;较低的值会增加副本计数的权重。调整此值会改变 balancer 对具有高磁盘利用率的 BE 的惩罚力度。 +- 引入版本:v3.2.0 +##### catalog_trash_expire_second + +- 默认值:86400 +- 类型:Long +- 单位:秒 +- 是否可修改:是 +- 描述:数据库、表或分区删除后,元数据可以保留的最长时间。如果超过此时间,数据将被删除,并且无法通过 [RECOVER] (../../sql-reference/sql-statements/backup_restore/RECOVER.md) 命令恢复。 +- 引入版本:- +##### check_consistency_default_timeout_second + +- 默认值: 600 +- 类型: Long +- 单位: 秒 +- 是否可修改: 是 +- 描述: 副本一致性检查的超时时间。您可以根据您的 tablet 的大小设置此参数。 +- 引入版本: - +##### consistency_check_cooldown_time_second + +- 默认值:24 * 3600 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:控制同一 tablet 的一致性检查之间的最小间隔(以秒为单位)。在 tablet 选择期间,仅当 `tablet.getLastCheckTime()` 小于 `(currentTimeMillis - consistency_check_cooldown_time_second * 1000)` 时,tablet 才被认为是符合条件的。默认值 (24 * 3600) 强制每个 tablet 每天大约检查一次,以减少后端磁盘 I/O。降低此值会增加检查频率和资源使用量;提高此值会减少 I/O,但会降低不一致性检测的速度。该值在从索引的 tablet 列表中过滤掉已冷却的 tablet 时全局应用。 +- 引入版本:v3.5.5 +##### consistency_check_end_time + +- 默认值: "4" +- 类型: String +- 单位: 小时 (0-23) +- 是否可修改: 否 +- 描述: 指定 ConsistencyChecker 工作窗口的结束时间(一天中的小时)。该值通过系统时区中的 SimpleDateFormat("HH") 进行解析,并接受为 0–23(一位或两位数字)。StarRocks 将其与 `consistency_check_start_time` 一起使用,以确定何时调度和添加一致性检查作业。当 `consistency_check_start_time` 大于 `consistency_check_end_time` 时,窗口将跨越午夜(例如,默认值为 `consistency_check_start_time` = "23" 到 `consistency_check_end_time` = "4")。当 `consistency_check_start_time` 等于 `consistency_check_end_time` 时,检查器永远不会运行。解析失败会导致 FE 启动时记录错误并退出,因此请提供有效的小时字符串。 +- 引入版本: v3.2.0 +##### consistency_check_start_time + +- 默认值: "23" +- 类型: String +- 单位: 小时 (00-23) +- 是否可修改: 否 +- 描述: 指定 ConsistencyChecker 工作窗口的开始时间(一天中的小时)。该值通过系统时区中的 SimpleDateFormat("HH") 进行解析,并接受 0–23(一位或两位数字)。StarRocks 将其与 `consistency_check_end_time` 结合使用,以确定何时调度和添加一致性检查作业。当 `consistency_check_start_time` 大于 `consistency_check_end_time` 时,窗口将跨越午夜(例如,默认值为 `consistency_check_start_time` = "23" 到 `consistency_check_end_time` = "4")。当 `consistency_check_start_time` 等于 `consistency_check_end_time` 时,检查器永远不会运行。解析失败会导致 FE 启动时记录错误并退出,因此请提供有效的小时字符串。 +- 引入版本: v3.2.0 +##### consistency_tablet_meta_check_interval_ms + +- 默认值:2 * 3600 * 1000 +- 类型:Int +- 单位:毫秒 +- 是否可变:是 +- 描述:ConsistencyChecker 使用的间隔,用于在 `TabletInvertedIndex` 和 `LocalMetastore` 之间运行完整的 tablet 元数据一致性扫描。当 `当前时间 - lastTabletMetaCheckTime` 超过此值时,`runAfterCatalogReady` 中的守护程序会触发 checkTabletMetaConsistency。首次检测到无效 tablet 时,其 `toBeCleanedTime` 将设置为 `now + (consistency_tablet_meta_check_interval_ms / 2)`,因此实际删除将延迟到后续扫描。增加此值可降低扫描频率和负载(清理速度较慢);降低此值可更快地检测和删除过时的 tablet(开销更高)。 +- 引入版本:v3.2.0 +##### default_replication_num + +- 默认值:3 +- 类型:Short +- 单位:- +- 是否可修改:是 +- 描述:设置在 StarRocks 中创建表时,每个数据分区的默认副本数。您可以在创建表时,通过在 CREATE TABLE DDL 中指定 `replication_num=x` 来覆盖此设置。 +- 引入版本:- +##### enable_auto_tablet_distribution + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否自动设置 bucket 的数量。 + - 如果此参数设置为 `TRUE`,则在创建表或添加分区时,无需指定 bucket 的数量。StarRocks 会自动确定 bucket 的数量。 + - 如果此参数设置为 `FALSE`,则在创建表或添加分区时,需要手动指定 bucket 的数量。如果在向表中添加新分区时未指定 bucket 数量,则新分区将继承创建表时设置的 bucket 数量。但是,您也可以手动为新分区指定 bucket 的数量。 +- 从以下版本引入:v2.5.7 +##### enable_experimental_rowstore + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否启用 [行列混存](../../table_design/hybrid_table.md) 功能。 +- 引入版本:v3.2.3 +##### enable_fast_schema_evolution + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否为 StarRocks 集群中的所有表启用快速 schema change。有效值为 `TRUE` 和 `FALSE` (默认值)。启用快速 schema change 可以提高 schema change 的速度,并在添加或删除列时减少资源使用。 +- 引入版本:v3.2.0 + +> **注意** +> +> - StarRocks 存算分离集群从 v3.3.0 开始支持此参数。 +> - 如果您需要为特定表配置快速 schema change,例如禁用特定表的快速 schema change,您可以在创建表时设置表属性 [`fast_schema_evolution`](../../sql-reference/sql-statements/table_bucket_part_index/CREATE_TABLE.md#set-fast-schema-evolution) 。 +##### enable_online_optimize_table + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:控制 StarRocks 在创建优化任务时是否使用非阻塞在线优化路径。当 `enable_online_optimize_table` 为 true 且目标表满足兼容性检查(没有分区/keys/sort specification,分布不是 `RandomDistributionDesc`,存储类型不是 `COLUMN_WITH_ROW`,启用了副本存储,并且该表不是存算分离表或物化视图)时,planner 会创建一个 `OnlineOptimizeJobV2` 来执行优化,而不会阻塞写入。如果为 false 或任何兼容性条件失败,StarRocks 将回退到 `OptimizeJobV2`,这可能会在优化期间阻止写入操作。 +- 引入版本:v3.3.3, v3.4.0, v3.5.0 +##### enable_strict_storage_medium_check + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:用于指定在用户创建表时,FE 是否需要严格检查 BE 的存储介质。如果设置为 `TRUE`,则在用户创建表时,FE 会检查 BE 的存储介质,如果 BE 的存储介质与 CREATE TABLE 语句中指定的 `storage_medium` 参数不同,则会报错。例如,CREATE TABLE 语句中指定的存储介质为 SSD,但 BE 的实际存储介质为 HDD,则表创建会失败。如果此参数为 `FALSE`,则 FE 在用户创建表时不检查 BE 的存储介质。 +- 引入版本:- +##### max_bucket_number_per_partition + +- 默认值: 1024 +- 类型: Int +- 单位: - +- 是否可修改: 是 +- 描述: 一个分区中可以创建的最大 bucket 数量。 +- 引入版本: v3.3.2 +##### max_column_number_per_table + +- 默认值:10000 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:表中可以创建的最大列数。 +- 引入版本:v3.3.2 +##### max_dynamic_partition_num + +- 默认值:500 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:限制在分析或创建动态分区表时可以一次创建的最大分区数。在动态分区 property enforcement 期间,systemtask_runs_max_history_number 会计算预期的分区数(结束偏移量 + 历史分区数),如果总数超过 `max_dynamic_partition_num`,则会抛出 DDL 错误。仅当您期望有非常大的分区范围时才提高此值;增加此值允许创建更多分区,但会增加元数据大小、调度工作和操作复杂性。 +- 引入版本:v3.2.0 +##### max_partition_number_per_table + +- 默认值: 100000 +- 类型: Int +- 单位: - +- 是否可修改: 是 +- 描述: 一个表中可以创建的最大分区数。 +- 引入版本: v3.3.2 +##### max_task_consecutive_fail_count + +- 默认值:10 +- 类型:Int +- 单位:- +- 是否可变:是 +- 描述:任务在被调度器自动暂停之前可能连续失败的最大次数。当 `TaskSource.MV.equals(task.getSource())` 且 `max_task_consecutive_fail_count` 大于 0 时,如果任务的连续失败计数器达到或超过 `max_task_consecutive_fail_count`,则该任务将通过 TaskManager 暂停,并且对于物化视图任务,该物化视图将被停用。将抛出一个异常,指示暂停以及如何重新激活(例如,`ALTER MATERIALIZED VIEW ACTIVE`)。将此项设置为 0 或负值以禁用自动暂停。 +- 引入版本:- +##### partition_recycle_retention_period_secs + +- 默认值:1800 +- 类型:Long +- 单位:秒 +- 是否可修改:是 +- 描述:通过 INSERT OVERWRITE 或物化视图刷新操作删除的分区的元数据保留时间。请注意,此类元数据无法通过执行 [RECOVER](../../sql-reference/sql-statements/backup_restore/RECOVER.md) 进行恢复。 +- 引入版本:v3.5.9 +##### recover_with_empty_tablet + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否使用空 tablet 副本替换丢失或损坏的 tablet 副本。如果某个 tablet 副本丢失或损坏,则对该 tablet 或其他正常 tablet 的数据查询可能会失败。使用空 tablet 副本替换丢失或损坏的 tablet 副本可确保查询仍可执行。但是,由于数据丢失,结果可能不正确。默认值为 `FALSE`,表示不会使用空 tablet 副本替换丢失或损坏的 tablet 副本,并且查询失败。 +- 引入版本:- +##### storage_usage_hard_limit_percent + +- 默认值:95 +- 别名:storage_flood_stage_usage_percent +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:BE 目录中存储使用率的硬性限制百分比。如果 BE 存储目录的存储使用率(百分比)超过此值,并且剩余存储空间小于 `storage_usage_hard_limit_reserve_bytes`,则数据导入和恢复作业将被拒绝。您需要将此项与 BE 配置项 `storage_flood_stage_usage_percent` 一起设置,以使配置生效。 +- 引入版本:- +##### storage_usage_hard_limit_reserve_bytes + +- 默认值:100 * 1024 * 1024 * 1024 +- 别名:storage_flood_stage_left_capacity_bytes +- 类型:Long +- 单位:Bytes +- 是否可修改:是 +- 描述:BE 目录中剩余存储空间的硬性限制。如果 BE 存储目录中的剩余存储空间小于此值,并且存储使用率(百分比)超过 `storage_usage_hard_limit_percent`,则数据导入和恢复作业将被拒绝。您需要将此参数与 BE 配置项 `storage_flood_stage_left_capacity_bytes` 一起设置,以使配置生效。 +- 引入版本:- +##### storage_usage_soft_limit_percent + +- 默认值:90 +- 别名:storage_high_watermark_usage_percent +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:BE 目录中存储使用率的软限制百分比。如果 BE 存储目录的存储使用率(以百分比表示)超过此值,并且剩余存储空间小于 `storage_usage_soft_limit_reserve_bytes`,则无法将 tablet 克隆到此目录中。 +- 引入版本:- +##### storage_usage_soft_limit_reserve_bytes + +- 默认值:200 * 1024 * 1024 * 1024 +- 别名:storage_min_left_capacity_bytes +- 类型:Long +- 单位:Bytes +- 是否可修改:是 +- 描述:BE 目录中剩余存储空间的软限制。如果 BE 存储目录中的剩余存储空间小于此值,并且存储使用率(百分比)超过 `storage_usage_soft_limit_percent`,则无法将 tablet 克隆到此目录中。 +- 引入版本:- +##### tablet_checker_lock_time_per_cycle_ms + +- 默认值:1000 +- 类型:Int +- 单位:毫秒 +- 是否可修改:是 +- 描述:tablet checker 在释放并重新获取表锁之前,每个周期的最大锁持有时间。小于 100 的值将被视为 100。 +- 引入版本:v3.5.9, v4.0.2 +##### tablet_create_timeout_second + +- 默认值:10 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:创建 tablet 的超时时间。从 v3.1 版本开始,默认值从 1 秒更改为 10 秒。 +- 引入版本:- +##### tablet_delete_timeout_second + +- 默认值:2 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:删除一个 tablet 的超时时间。 +- 引入版本:- +##### tablet_sched_balance_load_disk_safe_threshold + +- 默认值:0.5 +- 别名:balance_load_disk_safe_threshold +- 类型:Double +- 单位:- +- 是否可变:是 +- 描述:用于确定BE磁盘使用率是否均衡的百分比阈值。如果所有BE的磁盘使用率都低于此值,则认为磁盘使用率是均衡的。如果磁盘使用率大于此值,并且最高和最低BE磁盘使用率之间的差异大于10%,则认为磁盘使用率不均衡,并将触发tablet重新平衡。 +- 引入版本:- +##### tablet_sched_balance_load_score_threshold + +- 默认值: 0.1 +- 别名: balance_load_score_threshold +- 类型: Double +- 单位: - +- 是否可变: 是 +- 描述: 用于确定BE负载是否均衡的百分比阈值。如果一个BE的负载低于所有BE的平均负载,并且差值大于此值,则该BE处于低负载状态。相反,如果一个BE的负载高于平均负载,并且差值大于此值,则该BE处于高负载状态。 +- 引入版本: - +##### tablet_sched_be_down_tolerate_time_s + +- 默认值:900 +- 类型:Long +- 单位:秒 +- 是否可修改:是 +- 描述:调度器允许 BE 节点保持非活动状态的最长时间。 达到时间阈值后,该 BE 节点上的 tablet 将迁移到其他活动的 BE 节点。 +- 引入版本:v2.5.7 +##### tablet_sched_disable_balance + +- 默认值:false +- 别名:disable_balance +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否禁用 tablet 均衡。`TRUE` 表示禁用 tablet 均衡。`FALSE` 表示启用 tablet 均衡。 +- 引入版本:- +##### tablet_sched_disable_colocate_balance + +- 默认值:false +- 别名:disable_colocate_balance +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否禁用 Colocate Table 的副本均衡。`TRUE` 表示禁用副本均衡。`FALSE` 表示启用副本均衡。 +- 引入版本:- +##### tablet_sched_max_balancing_tablets + +- 默认值:500 +- 别名:max_balancing_tablets +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:可以同时进行 re-balancing 的 tablet 的最大数量。如果超过此值,将跳过 tablet 的 re-balancing。 +- 引入版本:- +##### tablet_sched_max_clone_task_timeout_sec + +- 默认值: 2 * 60 * 60 +- 别名: max_clone_task_timeout_sec +- 类型: Long +- 单位: 秒 +- 是否可修改: 是 +- 描述: 克隆一个 tablet 的最大超时时间。 +- 引入版本: - +##### tablet_sched_max_not_being_scheduled_interval_ms + +- 默认值:15 * 60 * 1000 +- 类型:Long +- 单位:毫秒 +- 是否可修改:是 +- 描述:当 tablet 克隆任务正在被调度时,如果一个 tablet 在该参数指定的时间内没有被调度,StarRocks 会给它更高的优先级,以便尽快调度它。 +- 引入版本:- +##### tablet_sched_max_scheduling_tablets + +- 默认值: 10000 +- 别名: max_scheduling_tablets +- 类型: Int +- 单位: - +- 是否可修改: 是 +- 描述: 可同时调度的 tablet 的最大数量。如果超过此值,将跳过 tablet 均衡和修复检查。 +- 引入版本: - +##### tablet_sched_min_clone_task_timeout_sec + +- 默认值: 3 * 60 +- 别名: min_clone_task_timeout_sec +- 类型: Long +- 单位: 秒 +- 是否可修改: 是 +- 描述: 克隆一个 tablet 的最小超时时间。 +- 引入版本: - +##### tablet_sched_num_based_balance_threshold_ratio + +- 默认值:0.5 +- 别名:- +- 类型:Double +- 单位:- +- 是否可变:是 +- 描述:执行基于数量的均衡可能会打破磁盘大小的均衡,但是磁盘之间的最大差距不能超过 tablet_sched_num_based_balance_threshold_ratio * tablet_sched_balance_load_score_threshold。如果集群中有 tablet 不断地从 A 均衡到 B,又从 B 均衡到 A,请减小此值。如果希望 tablet 分布更加均衡,请增大此值。 +- 引入版本:- 3.1 +##### tablet_sched_repair_delay_factor_second + +- 默认值:60 +- 别名:tablet_repair_delay_factor_second +- 类型:Long +- 单位:秒 +- 是否可变:是 +- 描述:副本修复的间隔,以秒为单位。 +- 引入版本:- +##### tablet_sched_slot_num_per_path + +- 默认值:8 +- 别名:schedule_slot_num_per_path +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:BE 存储目录下可并发运行的与 tablet 相关的最大任务数。从 v2.5 版本开始,此参数的默认值从 `4` 更改为 `8`。 +- 引入版本:- +##### tablet_sched_storage_cooldown_second + +- 默认值:-1 +- 别名:storage_cooldown_second +- 类型:Long +- 单位:秒 +- 是否可修改:是 +- 描述:从表创建时开始自动降冷的延迟时间。默认值 `-1` 指定禁用自动降冷。如果要启用自动降冷,请将此参数设置为大于 `-1` 的值。 +- 引入版本:- +##### tablet_stat_update_interval_second + +- 默认值:300 +- 类型:Int +- 单位:秒 +- 是否可修改:否 +- 描述:FE 从每个 BE 检索 tablet 统计信息的时间间隔。 +- 引入版本:- +### 存算分离 +##### aws_s3_access_key + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可变:否 +- 描述:用于访问您的 S3 bucket 的 Access Key ID。 +- 引入版本:v3.0 +##### aws_s3_endpoint + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:否 +- 描述:用于访问您的 S3 bucket 的 endpoint,例如 `https://s3.us-west-2.amazonaws.com`。 +- 引入版本:v3.0 +##### aws_s3_external_id + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:否 +- 描述:用于跨账户访问 S3 bucket 的 AWS 账户的外部 ID。 +- 引入版本:v3.0 +##### aws_s3_iam_role_arn + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可变:否 +- 描述:拥有访问您 S3 bucket 中数据文件权限的 IAM 角色的 ARN。 +- 引入版本:v3.0 +##### aws_s3_path + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可变:否 +- 描述:用于存储数据的 S3 路径。它由您的 S3 存储桶的名称及其下的子路径(如果有)组成,例如 `testbucket/subpath`。 +- 引入版本:v3.0 +##### aws_s3_region + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可变:否 +- 描述:您的 S3 bucket 所在的区域,例如 `us-west-2`。 +- 引入版本:v3.0 +##### aws_s3_secret_key + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:否 +- 描述:用于访问您的 S3 bucket 的 Secret Access Key。 +- 引入版本:v3.0 +##### aws_s3_use_aws_sdk_default_behavior + +- 默认值:false +- 类型:布尔值 +- 单位:- +- 是否可修改:否 +- 描述:是否使用 AWS SDK 的默认身份验证凭证。有效值:true 和 false(默认)。 +- 引入版本:v3.0 +##### aws_s3_use_instance_profile + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:否 +- 描述:是否使用 Instance Profile 和 Assumed Role 作为访问 S3 的凭证方法。有效值:true 和 false(默认值)。 + - 如果您使用基于 IAM 用户的凭证(Access Key 和 Secret Key)访问 S3,则必须将此项指定为 `false`,并指定 `aws_s3_access_key` 和 `aws_s3_secret_key`。 + - 如果您使用 Instance Profile 访问 S3,则必须将此项指定为 `true`。 + - 如果您使用 Assumed Role 访问 S3,则必须将此项指定为 `true`,并指定 `aws_s3_iam_role_arn`。 + - 并且如果您使用外部 AWS 账户,您还必须指定 `aws_s3_external_id`。 +- 引入版本:v3.0 +##### azure_adls2_endpoint + +- 默认值:空字符串 +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:您的 Azure Data Lake Storage Gen2 账号的 endpoint,例如 `https://test.dfs.core.windows.net`。 +- 引入版本:v3.4.1 +##### azure_adls2_oauth2_client_id + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可变:否 +- 描述:用于授权对您的 Azure Data Lake Storage Gen2 请求的托管身份的客户端 ID。 +- 引入版本:v3.4.4 +##### azure_adls2_oauth2_tenant_id + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:否 +- 描述:用于授权对您的 Azure Data Lake Storage Gen2 的请求的托管身份的租户 ID。 +- 引入版本:v3.4.4 +##### azure_adls2_oauth2_use_managed_identity + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:否 +- 描述:是否使用托管身份验证 Azure Data Lake Storage Gen2 的请求。 +- 引入版本:v3.4.4 +##### azure_adls2_path + +- 默认值:空字符串 +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:用于存储数据的 Azure Data Lake Storage Gen2 路径。它由文件系统名称和目录名称组成,例如 `testfilesystem/starrocks`。 +- 引入版本:v3.4.1 +##### azure_adls2_sas_token + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可变:否 +- 描述:用于授权对您的 Azure Data Lake Storage Gen2 的请求的共享访问签名 (SAS)。 +- 引入版本:v3.4.1 +##### azure_adls2_shared_key + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:否 +- 描述:用于授权对您的 Azure Data Lake Storage Gen2 的请求的共享密钥。 +- 引入版本:v3.4.1 +##### azure_blob_endpoint + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:否 +- 描述:您的 Azure Blob Storage 账户的 endpoint,例如 `https://test.blob.core.windows.net`。 +- 引入版本:v3.1 +##### azure_blob_path + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:否 +- 描述:用于存储数据的 Azure Blob Storage 路径。它由存储帐户中容器的名称和容器下的子路径(如果有)组成,例如 `testcontainer/subpath`。 +- 引入版本:v3.1 +##### azure_blob_sas_token + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:否 +- 描述:用于授权对您的 Azure Blob Storage 的请求的共享访问签名 (SAS)。 +- 引入版本:v3.1 +##### azure_blob_shared_key + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:否 +- 描述:用于授权 Azure Blob Storage 请求的共享密钥。 +- 引入版本:v3.1 +##### azure_use_native_sdk + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否使用原生 SDK 访问 Azure Blob Storage,从而允许使用托管身份和服务主体进行身份验证。如果此项设置为 `false`,则仅允许使用共享密钥和 SAS Token 进行身份验证。 +- 引入版本:v3.4.4 +##### cloud_native_hdfs_url + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:否 +- 描述:HDFS 存储的 URL,例如 `hdfs://127.0.0.1:9000/user/xxx/starrocks/`。 +- 引入版本:- +##### cloud_native_meta_port + +- 默认值: 6090 +- 类型: Int +- 单位: - +- 是否可修改: 否 +- 描述: FE 云原生元数据服务器 RPC 监听端口。 +- 引入版本: - +##### cloud_native_storage_type + +- 默认值:S3 +- 类型:String +- 单位:- +- 是否可变:否 +- 描述:您使用的对象存储的类型。在存算分离模式下,StarRocks 支持将数据存储在 HDFS、Azure Blob (从 v3.1.1 版本开始支持)、Azure Data Lake Storage Gen2 (从 v3.4.1 版本开始支持)、Google Storage (使用原生 SDK,从 v3.5.1 版本开始支持) 以及与 S3 协议兼容的对象存储系统(例如 AWS S3 和 MinIO)中。有效值:`S3`(默认)、`HDFS`、`AZBLOB`、`ADLS2` 和 `GS`。如果您将此参数指定为 `S3`,则必须添加以 `aws_s3` 为前缀的参数。如果您将此参数指定为 `AZBLOB`,则必须添加以 `azure_blob` 为前缀的参数。如果您将此参数指定为 `ADLS2`,则必须添加以 `azure_adls2` 为前缀的参数。如果您将此参数指定为 `GS`,则必须添加以 `gcp_gcs` 为前缀的参数。如果您将此参数指定为 `HDFS`,则只需指定 `cloud_native_hdfs_url`。 +- 引入版本:- +##### enable_load_volume_from_conf + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:否 +- 描述:是否允许 StarRocks 使用 FE 配置文件中指定的对象存储相关属性来创建内置的存储卷。从 v3.4.1 版本开始,默认值从 `true` 更改为 `false`。 +- 引入版本:v3.1.0 +##### gcp_gcs_impersonation_service_account + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:否 +- 描述:如果您使用基于模拟的身份验证来访问 Google Storage,则您要模拟的服务帐户。 +- 引入版本:v3.5.1 +##### gcp_gcs_path + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可变:否 +- 描述:用于存储数据的 Google Cloud 路径。它由您的 Google Cloud 存储桶的名称以及其下的子路径(如果有)组成,例如 `testbucket/subpath`。 +- 引入版本:v3.5.1 +##### gcp_gcs_service_account_email + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:否 +- 描述:创建服务帐户时生成的 JSON 文件中的电子邮件地址,例如 `user@hello.iam.gserviceaccount.com`。 +- 引入版本:v3.5.1 +##### gcp_gcs_service_account_private_key + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:否 +- 描述:在创建服务帐户时生成的 JSON 文件中的私钥,例如 `-----BEGIN PRIVATE KEY----xxxx-----END PRIVATE KEY-----\n`。 +- 引入版本:v3.5.1 +##### gcp_gcs_service_account_private_key_id + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可变:否 +- 描述:创建服务帐户时生成的 JSON 文件中的私钥 ID。 +- 引入版本:v3.5.1 +##### gcp_gcs_use_compute_engine_service_account + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:否 +- 描述:是否使用绑定到您的 Compute Engine 的服务帐户。 +- 引入版本:v3.5.1 +##### hdfs_file_system_expire_seconds + +- 默认值:300 +- 类型:Int +- 单位:秒 +- 是否可变:是 +- 描述:由 HdfsFsManager 管理的未使用的缓存 HDFS/ObjectStore FileSystem 的生存时间(以秒为单位)。FileSystemExpirationChecker(每 60 秒运行一次)使用此值调用每个 HdfsFs.isExpired(...);过期时,管理器关闭底层 FileSystem 并将其从缓存中删除。访问器方法(例如 `HdfsFs.getDFSFileSystem`、`getUserName`、`getConfiguration`)更新上次访问的时间戳,因此过期是基于不活动状态。较低的值会减少空闲资源占用,但会增加重新打开的开销;较高的值会保持句柄更长时间,并可能消耗更多资源。 +- 引入版本:v3.2.0 +##### lake_autovacuum_grace_period_minutes + +- 默认值:30 +- 类型:Long +- 单位:分钟 +- 是否可修改:是 +- 描述: 存算分离集群中保留历史数据版本的时间范围。在此时间范围内的历史数据版本在 Compaction 后不会通过 AutoVacuum 自动清理。您需要将此值设置得大于最大查询时间,以避免正在运行的查询访问的数据在查询完成之前被删除。自 v3.3.0、v3.2.5 和 v3.1.10 起,默认值已从 `5` 更改为 `30`。 +- 引入版本:v3.1.0 +##### lake_autovacuum_parallel_partitions + +- 默认值:8 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:在存算分离集群中,可以同时进行 AutoVacuum 的最大分区数。AutoVacuum 是指 Compaction 之后的垃圾回收。 +- 引入版本:v3.1.0 +##### lake_autovacuum_partition_naptime_seconds + +- 默认值:180 +- 类型:Long +- 单位:秒 +- 是否可修改:是 +- 描述:在存算分离集群中,对同一分区执行 AutoVacuum 操作的最小间隔。 +- 引入版本:v3.1.0 +##### lake_autovacuum_stale_partition_threshold + +- 默认值:12 +- 类型:Long +- 单位:小时 +- 是否可修改:是 +- 描述:如果一个分区在此时间范围内没有更新(数据导入、DELETE 或 Compaction),系统将不会对该分区执行 AutoVacuum。 +- 引入版本:v3.1.0 +##### lake_compaction_allow_partial_success + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:如果设置为 `true`,当存算分离集群中的一个子任务成功时,系统会认为此次 Compaction 操作成功。 +- 引入版本:v3.5.2 +##### lake_compaction_disable_ids + +- 默认值:"" +- 类型:String +- 单位:- +- 是否可修改:是 +- 描述:在存算分离模式下,禁用 Compaction 的表或分区列表。格式为 `tableId1;partitionId2`,用分号分隔,例如 `12345;98765`。 +- 引入版本:v3.4.4 +##### lake_compaction_history_size + +- 默认值:20 +- 类型:Int +- 单位:- +- 是否可变:是 +- 描述:在存算分离集群中,保存在 Leader FE 节点内存中的最近成功完成的 Compaction 任务记录数。您可以使用 `SHOW PROC '/compactions'` 命令查看最近成功完成的 Compaction 任务记录。请注意,Compaction 历史记录存储在 FE 进程内存中,如果 FE 进程重启,这些记录将丢失。 +- 引入版本:v3.1.0 +##### lake_compaction_max_tasks + +- 默认值:-1 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:在存算分离集群中允许的最大并发 Compaction 任务数。如果将此项设置为 `-1`,则表示以自适应方式计算并发任务数。如果将此值设置为 `0`,则禁用 Compaction。 +- 引入版本:v3.1.0 +##### lake_compaction_score_selector_min_score + +- 默认值:10.0 +- 类型:Double +- 单位:- +- 是否可修改:是 +- 描述:触发存算分离集群执行 Compaction 操作的 Compaction Score 阈值。当某个 Partition 的 Compaction Score 大于或等于该值时,系统会对该 Partition 执行 Compaction。 +- 引入版本:v3.1.0 +##### lake_compaction_score_upper_bound + +- 默认值:2000 +- 类型:Long +- 单位:- +- 是否可修改:是 +- 描述:存算分离集群中,单个分区 Compaction Score 的上限。`0` 表示无上限。仅当 `lake_enable_ingest_slowdown` 设置为 `true` 时,此配置项生效。当分区的 Compaction Score 达到或超过此上限时,系统会拒绝新的数据导入任务。从 v3.3.6 版本开始,默认值从 `0` 更改为 `2000`。 +- 引入版本:v3.2.0 +##### lake_enable_balance_tablets_between_workers + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:在存算分离集群中,云原生表的 tablet 迁移期间,是否均衡计算节点上的 tablet 数量。`true` 表示均衡计算节点上的 tablet,`false` 表示禁用此功能。 +- 引入版本:v3.3.4 +##### lake_enable_ingest_slowdown + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否在存算分离集群中启用数据导入减速。启用数据导入减速后,如果某个分区的 Compaction Score 超过 `lake_ingest_slowdown_threshold`,则该分区上的导入任务将被限流。此配置仅在 `run_mode` 设置为 `shared_data` 时生效。从 v3.3.6 版本开始,默认值从 `false` 更改为 `true`。 +- 引入版本:v3.2.0 +##### lake_ingest_slowdown_threshold + +- 默认值:100 +- 类型:Long +- 单位:- +- 是否可修改:是 +- 描述:在存算分离集群中,触发数据导入减速的 Compaction Score 阈值。此配置仅在 `lake_enable_ingest_slowdown` 设置为 `true` 时生效。 +- 引入版本:v3.2.0 +##### lake_publish_version_max_threads + +- 默认值:512 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:在存算分离集群中,Version Publish 任务的最大线程数。 +- 引入版本:v3.2.0 +##### meta_sync_force_delete_shard_meta + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否允许直接删除存算分离集群的元数据,跳过清理远端存储文件。 仅当需要清理的分片数量过多,导致 FE JVM 内存压力过大时,才建议将此项设置为 `true`。 请注意,启用此功能后,属于分片或 tablet 的数据文件将无法自动清理。 +- 引入版本:v3.2.10,v3.3.3 +##### run_mode + +- 默认值:shared_nothing +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:StarRocks 集群的运行模式。有效值:`shared_data` 和 `shared_nothing`(默认)。 + - `shared_data` 表示在存算分离模式下运行 StarRocks。 + - `shared_nothing` 表示在存算一体模式下运行 StarRocks。 + + > **注意** + > + > - 您不能同时为 StarRocks 集群采用 `shared_data` 和 `shared_nothing` 模式。不支持混合部署。 + > - 集群部署后,请勿更改 `run_mode`。否则,集群将无法重启。不支持从存算一体集群转换为存算分离集群,反之亦然。 + +- 引入版本:- +##### shard_group_clean_threshold_sec + +- 默认值:3600 +- 类型:Long +- 单位:秒 +- 是否可修改:是 +- 描述:FE 清理存算分离集群中未使用的 tablet 和分片组的时间间隔。在此时间阈值内创建的 tablet 和分片组将不会被清理。 +- 引入版本:- +##### star_mgr_meta_sync_interval_sec + +- 默认值:600 +- 类型:Long +- 单位:秒 +- 是否可修改:否 +- 描述:在存算分离集群中,FE 与 StarMgr 运行周期性元数据同步的间隔。 +- 引入版本:- +##### starmgr_grpc_server_max_worker_threads + +- 默认值:1024 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:FE starmgr 模块中 gRPC 服务器使用的最大工作线程数。 +- 引入版本:v4.0.0,v3.5.8 +##### starmgr_grpc_timeout_seconds + +- 默认值:5 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述: +- 引入版本:- +### 数据湖 +##### files_enable_insert_push_down_schema + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:启用后,分析器将尝试将目标表结构推送到 `files()` 表函数中,以用于 INSERT ... FROM files() 操作。这仅在源是 FileTableFunctionRelation,目标是内表,并且 SELECT 列表包含相应的 slot-ref 列(或 *)时适用。分析器会将 select 列与目标列进行匹配(计数必须匹配),短暂锁定目标表,并将文件列类型替换为非复杂类型的深度复制目标列类型(跳过诸如 parquet json -> array<varchar> 之类的复杂类型)。保留原始 files 表中的列名。这减少了数据摄取期间基于文件的类型推断导致的类型不匹配和松散性。 +- 引入版本:v3.4.0,v3.5.0 +##### hdfs_read_buffer_size_kb + +- 默认值:8192 +- 类型:Int +- 单位:千字节 +- 是否可变:是 +- 描述:HDFS 读取缓冲区的大小,以千字节为单位。StarRocks 将此值转换为字节 (`<< 10`),并使用它来初始化 `HdfsFsManager` 中的 HDFS 读取缓冲区,并在不使用 Broker 访问时,填充发送到 BE 任务的 thrift 字段 `hdfs_read_buffer_size_kb`(例如,`TBrokerScanRangeParams`、`TDownloadReq`)。增加 `hdfs_read_buffer_size_kb` 可以提高顺序读取吞吐量,并减少系统调用开销,但会增加每个流的内存使用量;减少它可以减少内存占用,但可能会降低 IO 效率。调整时请考虑工作负载(许多小流与少量大型顺序读取)。 +- 引入版本:v3.2.0 +##### hdfs_write_buffer_size_kb + +- 默认值: 1024 +- 类型: Int +- 单位: KB +- 是否可修改: 是 +- 描述: 设置直接写入 HDFS 或对象存储时使用的 HDFS 写入缓冲区大小(以 KB 为单位,不使用 broker 时)。FE 将此值转换为字节 (`<< 10`) 并在 HdfsFsManager 中初始化本地写入缓冲区,并在 Thrift 请求(例如,TUploadReq、TExportSink、sink options)中传播,以便后端/代理使用相同的缓冲区大小。增加此值可以提高大型顺序写入的吞吐量,但会增加每个写入器的内存开销;减小此值会降低每个流的内存使用量,并可能降低小型写入的延迟。与 `hdfs_read_buffer_size_kb` 一起调整,并考虑可用内存和并发写入器。 +- 引入版本: v3.2.0 +##### lake_batch_publish_max_version_num + +- 默认值:10 +- 类型:Int +- 单位:个数 +- 是否可修改:是 +- 描述:设置在为 lake (云原生) 表构建发布批次时,可以分组在一起的连续事务版本的上限。该值会传递给事务图批处理例程(参见 getReadyToPublishTxnListBatch),并与 `lake_batch_publish_min_version_num` 一起确定 TransactionStateBatch 的候选范围大小。较大的值可以通过批量处理更多提交来提高发布吞吐量,但会增加原子发布的范围(更长的可见性延迟和更大的回滚面),并且当版本不连续时,可能会在运行时受到限制。根据工作负载和可见性/延迟要求进行调整。 +- 引入版本:v3.2.0 +##### lake_batch_publish_min_version_num + +- 默认值:1 +- 类型:Int +- 单位:- +- 是否可变:是 +- 描述:设置 lake 表形成发布批次所需的最小连续事务版本数。DatabaseTransactionMgr.getReadyToPublishTxnListBatch 将此值与 `lake_batch_publish_max_version_num` 一起传递给 transactionGraph.getTxnsWithTxnDependencyBatch,以选择依赖事务。值为 `1` 允许单事务发布(无批处理)。大于 1 的值要求至少有那么多连续版本、单表、非复制事务可用;如果版本不连续、出现复制事务或 schema change 消耗了一个版本,则批处理将中止。增加此值可以通过对提交进行分组来提高发布吞吐量,但可能会因等待足够的连续事务而延迟发布。 +- 引入版本:v3.2.0 +##### lake_enable_batch_publish_version + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:启用后,PublishVersionDaemon 会批量处理同一 Lake(存算分离)表/分区的就绪事务,并一起发布它们的版本,而不是为每个事务单独发布。在存算分离 RunMode 中,守护进程调用 getReadyPublishTransactionsBatch() 并使用 publishVersionForLakeTableBatch(...) 执行分组发布操作(减少 RPC 并提高吞吐量)。禁用后,守护进程会通过 publishVersionForLakeTable(...) 回退到每个事务单独发布。该实现在切换时使用内部集合来协调进行中的工作,以避免重复发布,并且受 `lake_publish_version_max_threads` 通过线程池大小的影响。 +- 引入版本:v3.2.0 +##### lake_enable_tablet_creation_optimization + +- 默认值:false +- 类型:boolean +- 单位:- +- 是否可变:是 +- 描述:启用后,StarRocks 会优化存算分离模式下云原生表和物化视图的 tablet 创建,为物理分区下的所有 tablet 创建单个共享 tablet 元数据,而不是为每个 tablet 创建不同的元数据。这样可以减少表创建、rollup 和 schema change 作业期间产生的 tablet 创建任务和元数据/文件数量。此优化仅适用于云原生表/物化视图,并与 `file_bundling` 结合使用(后者重用相同的优化逻辑)。注意:对于使用 `file_bundling` 的表,schema change 和 rollup 作业会显式禁用此优化,以避免覆盖具有相同名称的文件。请谨慎启用 - 它会更改创建的 tablet 元数据的粒度,并可能影响副本创建和文件命名的行为。 +- 引入版本:v3.3.1、v3.4.0、v3.5.0 +##### lake_use_combined_txn_log + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:如果设置为 `true`,系统允许 Lake 表对相关事务使用组合事务日志路径。仅适用于存算分离集群。 +- 引入版本:v3.3.7、v3.4.0、v3.5.0 +##### enable_iceberg_commit_queue + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否为 Iceberg 表启用提交队列,以避免并发提交冲突。Iceberg 使用乐观并发控制(OCC)进行元数据提交。当多个线程同时提交到同一张表时,可能会发生冲突,并出现如下错误:“Cannot commit: Base metadata location is not same as the current table metadata location”。启用后,每个 Iceberg 表都有其自己的单线程执行器来执行提交操作,从而确保对同一表的提交是序列化的,并防止 OCC 冲突。不同的表可以并发提交,从而保持整体吞吐量。这是一个系统级的优化,旨在提高可靠性,应默认启用。如果禁用,并发提交可能会因乐观加锁冲突而失败。 +- 引入版本:v4.1.0 +##### iceberg_commit_queue_timeout_seconds + +- 默认值:300 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:等待 Iceberg 提交操作完成的超时时间,以秒为单位。当使用提交队列 (`enable_iceberg_commit_queue=true`) 时,每个提交操作必须在此超时时间内完成。如果提交时间超过此超时时间,它将被取消并引发错误。影响提交时间的因素包括:正在提交的数据文件数量、表的元数据大小、底层存储的性能(例如,S3、HDFS)。 +- 引入版本:v4.1.0 +##### iceberg_commit_queue_max_size + +- 默认值:1000 +- 类型:Int +- 单位:Count +- 是否可变:否 +- 描述:每个 Iceberg 表的最大待处理提交操作数。当使用提交队列 (`enable_iceberg_commit_queue=true`) 时,此参数限制可以为一个表排队的提交操作数。当达到限制时,额外的提交操作将在调用线程中执行(阻塞直到容量可用)。此配置在 FE 启动时读取,并应用于新创建的表执行器。需要重启 FE 才能生效。如果您希望对同一表进行多次并发提交,请增加此值。如果此值太低,则在高并发期间,提交可能会在调用线程中阻塞。 +- 引入版本:v4.1.0 +### 其他 +##### agent_task_resend_wait_time_ms + +- 默认值:5000 +- 类型:Long +- 单位:毫秒 +- 是否可修改:是 +- 描述:FE 必须等待才能重新发送 agent task 的持续时间。只有当任务创建时间和当前时间之间的间隔超过此参数的值时,才能重新发送 agent task。此参数用于防止重复发送 agent task。 +- 引入版本:- +##### allow_system_reserved_names + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否允许用户创建以 `__op` 和 `__row` 开头的列名。要启用此功能,请将此参数设置为 `TRUE`。请注意,这些名称格式在 StarRocks 中保留用于特殊目的,创建此类列可能会导致未定义的行为。因此,默认情况下禁用此功能。 +- 引入版本:v3.2.0 +##### auth_token + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可变:否 +- 描述:用于 FE 所属的 StarRocks 集群内身份验证的令牌。如果未指定此参数,StarRocks 将在首次启动集群的 leader FE 时,为集群生成一个随机令牌。 +- 引入版本:- +##### authentication_ldap_simple_bind_base_dn + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:是 +- 描述:基本 DN,LDAP 服务器从该位置开始搜索用户的身份验证信息。 +- 引入版本:- +##### authentication_ldap_simple_bind_root_dn + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:是 +- 描述:用于搜索用户身份验证信息的管理员 DN。 +- 引入版本:- +##### authentication_ldap_simple_bind_root_pwd + +- 默认值:空字符串 +- 类型:String +- 单位:- +- 是否可修改:是 +- 描述:用于搜索用户身份验证信息的管理员密码。 +- 引入版本:- +##### authentication_ldap_simple_server_host + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:是 +- 描述:LDAP 服务器运行所在的主机。 +- 引入版本:- +##### authentication_ldap_simple_server_port + +- 默认值:389 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:LDAP服务器的端口。 +- 引入版本:- +##### authentication_ldap_simple_user_search_attr + +- 默认值: uid +- 类型: String +- 单位: - +- 是否可修改: 是 +- 描述: 用于标识 LDAP 对象中用户的属性名称。 +- 引入版本: - +##### backup_job_default_timeout_ms + +- 默认值: 86400 * 1000 +- 类型: Int +- 单位: 毫秒 +- 是否可修改: 是 +- 描述: 备份作业的超时时长。如果超过此值,备份作业将失败。 +- 引入版本: - +##### enable_collect_tablet_num_in_show_proc_backend_disk_path + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否开启在 `SHOW PROC /BACKENDS/{id}` 命令中收集每个磁盘上的 tablet 数量。 +- 引入版本:v4.0.1, v3.5.8 +##### enable_colocate_restore + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否为 Colocate Tables 启用备份和恢复功能。`true` 表示为 Colocate Tables 启用备份和恢复功能,`false` 表示禁用该功能。 +- 引入版本:v3.2.10,v3.3.3 +##### enable_materialized_view_concurrent_prepare + +- 默认值:true +- 类型:Boolean +- 单位: +- 是否可修改:是 +- 描述:是否并发准备物化视图以提升性能。 +- 引入版本:v3.4.4 +##### enable_metric_calculator + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:否 +- 描述:指定是否启用定期收集指标的功能。有效值:`TRUE` 和 `FALSE`。`TRUE` 表示启用此功能,`FALSE` 表示禁用此功能。 +- 引入版本:- +##### enable_mv_post_image_reload_cache + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否在 FE 加载镜像后执行重新加载标志检查。如果对基本物化视图执行检查,则不需要对与其相关的其他物化视图执行检查。 +- 引入版本:v3.5.0 +##### enable_mv_query_context_cache + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否开启查询级别的物化视图改写缓存,以提升查询改写性能。 +- 引入版本:v3.3 +##### enable_mv_refresh_collect_profile + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否默认对所有物化视图启用刷新物化视图时的 profile 收集。 +- 引入版本:v3.3.0 +##### enable_mv_refresh_extra_prefix_logging + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否在日志中启用物化视图名称的前缀,以便更好地进行调试。 +- 引入版本:v3.4.0 +##### enable_mv_refresh_query_rewrite + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否在物化视图刷新期间启用查询改写,以便查询可以直接使用改写后的物化视图,而不是基表,从而提高查询性能。 +- 引入版本:v3.3 +##### enable_trace_historical_node + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否允许系统跟踪历史节点。将此项设置为 `true`,您可以启用 Cache Sharing 功能,并允许系统在弹性伸缩期间选择正确的缓存节点。 +- 引入版本:v3.5.1 +##### es_state_sync_interval_second + +- 默认值: 10 +- 类型: Long +- 单位: 秒 +- 是否可修改: 否 +- 描述: FE 获取 Elasticsearch 索引并同步 StarRocks 外部表的元数据的时间间隔。 +- 引入版本: - +##### hive_meta_cache_refresh_interval_s + +- 默认值: 3600 * 2 +- 类型: Long +- 单位: 秒 +- 是否可修改: 否 +- 描述: 缓存的 Hive 外表的元数据更新的时间间隔。 +- 引入版本: - +##### hive_meta_store_timeout_s + +- 默认值:10 +- 类型:Long +- 单位:秒 +- 是否可修改:否 +- 描述:连接到 Hive Metastore 超时的时间。 +- 引入版本:- +##### jdbc_connection_idle_timeout_ms + +- 默认值:600000 +- 类型:Int +- 单位:毫秒 +- 是否可修改:否 +- 描述:访问 JDBC catalog 的连接在超时之前可以保持空闲的最长时间。超时的连接被视为空闲连接。 +- 引入版本:- +##### jdbc_connection_timeout_ms + +- 默认值:10000 +- 类型:Long +- 单位:毫秒 +- 是否可修改:否 +- 描述:HikariCP 连接池获取连接的超时时间,单位为毫秒。如果在指定时间内无法从连接池获取连接,则操作失败。 +- 引入版本:v3.5.13 +##### jdbc_query_timeout_ms + +- 默认值:30000 +- 类型:Long +- 单位:毫秒 +- 是否可修改:是 +- 描述:JDBC 语句查询执行的超时时间,单位为毫秒。此超时时间适用于通过 JDBC catalog 执行的所有 SQL 查询(例如,分区元数据查询)。该值在传递给 JDBC 驱动程序时会转换为秒。 +- 引入版本:v3.5.13 +##### jdbc_network_timeout_ms + +- 默认值:30000 +- 类型:Long +- 单位:毫秒 +- 是否可修改:是 +- 描述:JDBC网络操作(套接字读取)的超时时间,以毫秒为单位。此超时时间适用于数据库元数据调用(例如,getSchemas()、getTables()、getColumns()),以防止在外部数据库无响应时无限期阻塞。 +- 引入版本:v3.5.13 +##### jdbc_connection_pool_size + +- 默认值:8 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:用于访问 JDBC catalog 的 JDBC 连接池的最大容量。 +- 引入版本:- +##### jdbc_meta_default_cache_enable + +- 默认值:false +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否启用 JDBC Catalog 元数据缓存的默认值。如果设置为 True,则新建的 JDBC Catalog 默认启用元数据缓存。 +- 引入版本:- +##### jdbc_meta_default_cache_expire_sec + +- 默认值: 600 +- 类型: Long +- 单位: 秒 +- 是否可修改: 是 +- 描述: JDBC Catalog 元数据缓存的默认过期时间。当 `jdbc_meta_default_cache_enable` 设置为 true 时,新创建的 JDBC Catalog 默认会设置元数据缓存的过期时间。 +- 引入版本: - +##### jdbc_minimum_idle_connections + +- 默认值:1 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:用于访问 JDBC catalog 的 JDBC 连接池中空闲连接的最小数量。 +- 引入版本:- +##### jwt_jwks_url + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可变:否 +- 描述:JSON Web Key Set (JWKS) 服务的 URL,或者 `fe/conf` 目录下公钥本地文件的路径。 +- 引入版本:v3.5.0 +##### jwt_principal_field + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可变:否 +- 描述:用于标识 JWT 中指示主体 (`sub`) 的字段的字符串。默认值为 `sub`。此字段的值必须与登录 StarRocks 的用户名相同。 +- 引入版本:v3.5.0 +##### jwt_required_audience + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可变:否 +- 描述:用于标识 JWT 中的受众 (`aud`) 的字符串列表。只有当列表中的一个值与 JWT 受众匹配时,JWT 才被认为是有效的。 +- 引入版本:v3.5.0 +##### jwt_required_issuer + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可变:否 +- 描述:用于标识 JWT 中颁发者 (`iss`) 的字符串列表。仅当列表中的某个值与 JWT 颁发者匹配时,JWT 才被视为有效。 +- 引入版本:v3.5.0 +##### locale + +- 默认值:zh_CN.UTF-8 +- 类型:String +- 单位:- +- 是否可变:否 +- 描述:FE 使用的字符集。 +- 引入版本:- +##### max_agent_task_threads_num + +- 默认值:4096 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:Agent 任务线程池中允许的最大线程数。 +- 引入版本:- +##### max_download_task_per_be + +- 默认值:0 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:在每次 RESTORE 操作中,StarRocks 分配给每个 BE 节点的下载任务的最大数量。如果此项设置为小于等于 0,则不对任务数量进行限制。 +- 引入版本:v3.1.0 +##### max_mv_check_base_table_change_retry_times + +- 默认值:10 +- 类型:- +- 单位:- +- 是否可变:是 +- 描述:刷新物化视图时,检测基表变更的最大重试次数。 +- 引入版本:v3.3.0 +##### max_mv_refresh_failure_retry_times + +- 默认值:1 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:物化视图刷新失败时的最大重试次数。 +- 引入版本:v3.3.0 +##### max_mv_refresh_try_lock_failure_retry_times + +- 默认值:3 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:物化视图刷新失败时,尝试获取锁的最大重试次数。 +- 引入版本:v3.3.0 +##### max_small_file_number + +- 默认值:100 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:FE 目录中可以存储的小文件的最大数量。 +- 引入版本:- +##### max_small_file_size_bytes + +- 默认值:1024 * 1024 +- 类型:Int +- 单位:Bytes +- 是否可修改:是 +- 描述:小文件的最大大小。 +- 引入版本:- +##### max_upload_task_per_be + +- 默认值:0 +- 类型:Int +- 单位:- +- 是否可变:是 +- 描述:在每次 BACKUP 操作中,StarRocks 分配给一个 BE 节点的上传任务的最大数量。当此项设置为小于等于 0 时,则不对任务数量进行限制。 +- 引入版本:v3.1.0 +##### mv_create_partition_batch_interval_ms + +- 默认值:1000 +- 类型:Int +- 单位:ms +- 是否可修改:是 +- 描述:在物化视图刷新期间,如果需要批量创建多个分区,系统会将它们分成每批 64 个分区的批次。为了降低因频繁创建分区而导致的失败风险,系统会在每个批次之间设置一个默认间隔(以毫秒为单位),以控制创建频率。 +- 引入版本:v3.3 +##### mv_plan_cache_max_size + +- 默认值:1000 +- 类型:Long +- 单位: +- 是否可修改:是 +- 描述:物化视图计划缓存的最大大小(用于物化视图改写)。 如果有许多物化视图用于透明查询改写,您可以增加此值。 +- 引入版本:v3.2 +##### mv_plan_cache_thread_pool_size + +- 默认值:3 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:物化视图计划缓存的默认线程池大小(用于物化视图改写)。 +- 引入版本:v3.2 +##### mv_refresh_default_planner_optimize_timeout + +- 默认值: 30000 +- 类型: - +- 单位: - +- 是否可修改: 是 +- 描述: 刷新物化视图时,优化器规划阶段的默认超时时间。 +- 引入版本: v3.3.0 +##### mv_refresh_fail_on_filter_data + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:如果刷新中存在被过滤的数据,物化视图刷新是否失败。默认值为 true,表示失败;否则,表示忽略被过滤的数据并返回成功。 +- 引入版本:- +##### mv_refresh_try_lock_timeout_ms + +- 默认值:30000 +- 类型:Int +- 单位:毫秒 +- 是否可修改:是 +- 描述:物化视图刷新尝试获取其基表/物化视图的数据库锁的默认尝试锁超时时间。 +- 引入版本:v3.3.0 +##### oauth2_auth_server_url + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可变:否 +- 描述:授权 URL。用户的浏览器将被重定向到的 URL,以便开始 OAuth 2.0 授权过程。 +- 引入版本:v3.5.0 +##### oauth2_client_id + +- 默认值:空字符串 +- 类型:String +- 单位:- +- 是否可变:否 +- 描述:StarRocks 客户端的公共标识符。 +- 引入版本:v3.5.0 +##### oauth2_client_secret + +- 默认值:空字符串 +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:用于通过授权服务器授权 StarRocks 客户端的密钥。 +- 引入版本:v3.5.0 +##### oauth2_jwks_url + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:否 +- 描述:JSON Web Key Set (JWKS) 服务的 URL,或者是 `conf` 目录下本地文件的路径。 +- 引入版本:v3.5.0 +##### oauth2_principal_field + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可变:否 +- 描述:用于标识 JWT 中指示主体 (`sub`) 的字段的字符串。默认值为 `sub`。此字段的值必须与登录 StarRocks 的用户名相同。 +- 引入版本:v3.5.0 +##### oauth2_redirect_url + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:否 +- 描述:OAuth 2.0 认证成功后,用户的浏览器将被重定向到的 URL。授权码将被发送到此 URL。在大多数情况下,它需要配置为 `http://:/api/oauth2`。 +- 引入版本:v3.5.0 +##### oauth2_required_audience + +- 默认值:空字符串 +- 类型:String +- 单位:- +- 是否可变:否 +- 描述:用于标识 JWT 中受众 (`aud`) 的字符串列表。只有当列表中的一个值与 JWT 受众匹配时,JWT 才被认为是有效的。 +- 引入版本:v3.5.0 +##### oauth2_required_issuer + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:否 +- 描述:用于标识 JWT 中颁发者 (`iss`) 的字符串列表。仅当列表中的某个值与 JWT 颁发者匹配时,JWT 才被视为有效。 +- 引入版本:v3.5.0 +##### oauth2_token_server_url + +- 默认值:空字符串 +- 类型:字符串 +- 单位:- +- 是否可修改:否 +- 描述:授权服务器上 StarRocks 获取访问令牌的端点的 URL。 +- 引入版本:v3.5.0 +##### plugin_dir + +- 默认值: System.getenv("STARROCKS_HOME") + "/plugins" +- 类型: String +- 单位: - +- 是否可修改: 否 +- 描述: 存储插件安装包的目录。 +- 引入版本: - +##### plugin_enable + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:是否可以在 FE 上安装插件。插件只能在 Leader FE 上安装或卸载。 +- 引入版本:- +##### proc_profile_jstack_depth + +- 默认值:128 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:系统收集 CPU 和内存 profile 时,Java 堆栈的最大深度。此值控制为每个采样的堆栈捕获多少 Java 堆栈帧:较大的值会增加跟踪细节和输出大小,并可能增加 profiling 开销,而较小的值会减少细节。此设置在为 CPU 和内存 profiling 启动 profiler 时使用,因此请调整它以平衡诊断需求和性能影响。 +- 引入版本:- +##### proc_profile_mem_enable + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可修改:是 +- 描述:是否启用进程内存分配配置文件的收集。如果此项设置为 `true`,系统会在 `sys_log_dir/proc_profile` 目录下生成一个名为 `mem-profile-.html` 的 HTML 配置文件,休眠 `proc_profile_collect_time_s` 秒以进行采样,并使用 `proc_profile_jstack_depth` 作为 Java 堆栈深度。生成的文件会根据 `proc_profile_file_retained_days` 和 `proc_profile_file_retained_size_bytes` 进行压缩和清除。原生提取路径使用 `STARROCKS_HOME_DIR` 以避免 `/tmp` noexec 问题。此项旨在解决内存分配热点问题。启用此项会增加 CPU、I/O 和磁盘使用率,并可能生成大型文件。 +- 引入版本:v3.2.12 +##### query_detail_explain_level + +- 默认值:COSTS +- 类型:String +- 单位:- +- 是否可变:true +- 描述:EXPLAIN 语句返回的查询计划的详细程度。有效值:COSTS、NORMAL、VERBOSE。 +- 引入版本:v3.2.12、v3.3.5 +##### replication_interval_ms + +- 默认值:100 +- 类型:Int +- 单位:- +- 是否可修改:否 +- 描述:复制任务被调度的最小时间间隔。 +- 引入版本:v3.3.5 +##### replication_max_parallel_data_size_mb + +- 默认值:1048576 +- 类型:Int +- 单位:MB +- 是否可修改:是 +- 描述:允许并发同步的最大数据大小。 +- 引入版本:v3.3.5 +##### replication_max_parallel_replica_count + +- 默认值:10240 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:允许并发同步的 tablet 副本的最大数量。 +- 引入版本:v3.3.5 +##### replication_max_parallel_table_count + +- 默认值:100 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:允许的最大并发数据同步任务数。StarRocks 为每个表创建一个同步任务。 +- 引入版本:v3.3.5 +##### replication_transaction_timeout_sec + +- 默认值:86400 +- 类型:Int +- 单位:秒 +- 是否可修改:是 +- 描述:同步任务的超时时间。 +- 引入版本:v3.3.5 +##### skip_whole_phase_lock_mv_limit + +- 默认值: 5 +- 类型: Int +- 单位: - +- 是否可变: 是 +- 描述: 控制 StarRocks 何时对具有相关物化视图的表应用“非锁定”优化。当此项设置为小于 0 时,系统始终应用非锁定优化,并且不复制查询的相关物化视图(减少 FE 内存使用和元数据复制/锁定争用,但可能会增加元数据并发问题的风险)。当设置为 0 时,禁用非锁定优化(系统始终使用安全的复制和锁定路径)。当设置为大于 0 时,仅对相关物化视图数量小于或等于配置阈值的表应用非锁定优化。此外,当该值大于等于 0 时,planner 会将查询 OLAP 表记录到优化器上下文中,以启用与物化视图相关的重写路径;当该值小于 0 时,将跳过此步骤。 +- 引入版本: v3.2.1 +##### small_file_dir + +- 默认值: StarRocksFE.STARROCKS_HOME_DIR + "/small_files" +- 类型: String +- 单位: - +- 是否可修改: 否 +- 描述: 小文件的根目录。 +- 引入版本: - +##### task_runs_max_history_number + +- 默认值:10000 +- 类型:Int +- 单位:- +- 是否可修改:是 +- 描述:在内存中保留的最大 task run 记录数,并用作查询已归档 task run 历史记录时的默认 LIMIT。当 `enable_task_history_archive` 为 false 时,此值限制内存中的历史记录:强制 GC 修剪较旧的条目,因此仅保留最新的 `task_runs_max_history_number`。当查询归档历史记录(且未提供显式 LIMIT)时,如果此值大于 0,则 `TaskRunHistoryTable.lookup` 使用 `"ORDER BY create_time DESC LIMIT "`。注意:将其设置为 0 会禁用查询端的 LIMIT(无上限),但会导致内存中的历史记录截断为零(除非启用了归档)。 +- 引入版本:v3.2.0 +##### tmp_dir + +- 默认值:StarRocksFE.STARROCKS_HOME_DIR + "/temp_dir" +- 类型:String +- 单位:- +- 是否可修改:否 +- 描述:用于存储临时文件的目录,例如备份和恢复过程中生成的文件。这些过程完成后,生成的临时文件将被删除。 +- 引入版本:- +##### transform_type_prefer_string_for_varchar + +- 默认值:true +- 类型:Boolean +- 单位:- +- 是否可变:是 +- 描述:在物化视图创建和 CTAS 操作中,是否优先为固定长度的 varchar 列选择 string 类型。 +- 引入版本:v4.0.0 + + \ No newline at end of file