BE 配置
一些 BE 配置项是动态参数,您可以在 BE 节点在线时以交互方式设置它们。 其余的是静态参数。 您只能通过更改相应的配置文件 be.conf 中的静态参数并重新启动 BE 节点来使更改生效,从而设置 BE 节点的静态参数。
查看 BE 配置项
您可以使用以下命令查看 BE 配置项
curl http://<BE_IP>:<BE_HTTP_PORT>/varz
配置 BE 参数
配置 BE 动态参数
您可以使用 curl
命令配置 BE 节点的动态参数。
curl -XPOST http://be_host:http_port/api/update_config?<configuration_item>=<value>
配置 BE 静态参数
您只能通过更改相应的配置文件 be.conf 中的静态参数并重新启动 BE 来使更改生效,从而设置 BE 的静态参数。
了解 BE 参数
服务器
priority_networks
- 默认值:空字符串
- 类型:字符串
- 单位:-
- 是否可变:否
- 描述:声明具有多个 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
来更改此行为。 - 引入版本:-
net_use_ipv6_when_priority_networks_empty
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否可变:否
- 描述:一个布尔值,用于控制在未指定
priority_networks
时是否优先使用 IPv6 地址。true
表示允许系统在托管节点的服务器同时具有 IPv4 和 IPv6 地址且未指定priority_networks
时优先使用 IPv6 地址。 - 引入版本:v3.3.0
mem_limit
- 默认值:90%
- 类型:字符串
- 单位:-
- 是否可变:否
- 描述:BE 进程内存上限。您可以将其设置为百分比(“80%”)或物理限制(“100G”)。默认硬限制为服务器内存大小的 90%,软限制为 80%。如果您想在同一服务器上使用其他内存密集型服务部署 StarRocks,则需要配置此参数。
- 引入版本:-
num_threads_per_core
- 默认值:3
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:每个 CPU 内核上启动的线程数。
- 引入版本:-
be_http_port
- 默认值:8040
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:BE HTTP 服务器端口。
- 引入版本:-
be_http_num_workers
- 默认值:48
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:HTTP 服务器使用的线程数。
- 引入版本:-
be_exit_after_disk_write_hang_second
- 默认值:60
- 类型:Int
- 单位:秒
- 是否可变:否
- 描述:BE 在磁盘挂起后等待退出的时间长度。
- 引入版本:-
compress_rowbatches
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否可变:否
- 描述:一个布尔值,用于控制是否压缩 BE 之间 RPC 中的行批处理。
true
表示压缩行批处理,false
表示不压缩。 - 引入版本:-
serialize_batch
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否可变:否
- 描述:一个布尔值,用于控制是否序列化 BE 之间 RPC 中的行批处理。
true
表示序列化行批处理,false
表示不序列化。 - 引入版本:-
Thrift
be_port
- 默认值:9060
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:BE thrift 服务器端口,用于接收来自 FE 的请求。
- 引入版本:-
thrift_client_retry_interval_ms
- 默认值:100
- 类型:Int
- 单位:毫秒
- 是否可变:是
- 描述:thrift 客户端重试的时间间隔。
- 引入版本:-
thrift_rpc_timeout_ms
- 默认值:5000
- 类型:Int
- 单位:毫秒
- 是否可变:是
- 描述:thrift RPC 的超时时间。
- 引入版本:-
thrift_rpc_strict_mode
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否可变:否
- 描述:是否启用 thrift 的严格执行模式。 有关 thrift 严格模式的更多信息,请参阅 Thrift Binary protocol encoding。
- 引入版本:-
thrift_rpc_max_body_size
- 默认值:0
- 类型:Int
- 单位
- 是否可变:否
- 描述:RPC 的最大字符串主体大小。
0
表示大小不受限制。 - 引入版本:-
thrift_rpc_connection_max_valid_time_ms
- 默认值:5000
- 类型:Int
- 单位:毫秒
- 是否可变:否
- 描述:thrift RPC 连接的最大有效时间。 如果连接在连接池中存在的时间长于此值,则会关闭该连接。 必须将其设置为与 FE 配置
thrift_client_timeout_ms
一致。 - 引入版本:-
bRPC
brpc_port
- 默认值:8060
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:BE bRPC 端口,用于查看 bRPC 的网络统计信息。
- 引入版本:-
brpc_num_threads
- 默认值:-1
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:bRPC 的 bthread 数量。 值
-1
表示与 CPU 线程数相同。 - 引入版本:-
brpc_max_body_size
- 默认值:2147483648
- 类型:Int
- 单位:字节
- 是否可变:否
- 描述:bRPC 的最大正文大小。
- 引入版本:-
心跳
heartbeat_service_port
- 默认值:9050
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:BE 心跳服务端口,用于接收来自 FE 的心跳。
- 引入版本:-
heartbeat_service_thread_count
- 默认值:1
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:BE 心跳服务的线程数。
- 引入版本:-
日志记录
sys_log_dir
- 默认值:
${STARROCKS_HOME}/log
- 类型:字符串
- 单位:-
- 是否可变:否
- 描述:存储系统日志(包括 INFO、WARNING、ERROR 和 FATAL)的目录。
- 引入版本:-
sys_log_level
- 默认值:INFO
- 类型:字符串
- 单位:-
- 是否可变:是(从 v3.3.0、v3.2.7 和 v3.1.12 开始)
- 描述:系统日志条目分类到的严重级别。 有效值:INFO、WARN、ERROR 和 FATAL。 此项从 v3.3.0、v3.2.7 和 v3.1.12 开始更改为动态配置。
- 引入版本:-
sys_log_roll_mode
- 默认值:SIZE-MB-1024
- 类型:字符串
- 单位:-
- 是否可变:否
- 描述:系统日志分割成日志卷的方式。 有效值包括
TIME-DAY
、TIME-HOUR
和SIZE-MB-
size。 默认值表示日志被分割成卷,每个卷为 1 GB。 - 引入版本:-
sys_log_roll_num
- 默认值:10
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:要保留的日志卷数。
- 引入版本:-
sys_log_verbose_modules
- 默认
- 类型:字符串
- 单位:-
- 是否可变:否
- 描述:要打印的日志模块。 例如,如果将此配置项设置为 OLAP,则 StarRocks 仅打印 OLAP 模块的日志。 有效值是 BE 中的命名空间,包括
starrocks
、starrocks::debug
、starrocks::fs
、starrocks::io
、starrocks::lake
、starrocks::pipeline
、starrocks::query_cache
、starrocks::stream
和starrocks::workgroup
。 - 引入版本:-
sys_log_verbose_level
- 默认值:10
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:要打印的日志级别。 此配置项用于控制使用代码中的 VLOG 发起的日志的输出。
- 引入版本:-
log_buffer_level
- 默认值:空字符串
- 类型:字符串
- 单位:-
- 是否可变:否
- 描述:刷新日志的策略。 默认值表示日志缓存在内存中。 有效值为
-1
和0
。-1
表示日志不缓存在内存中。 - 引入版本:-
统计报告
report_task_interval_seconds
- 默认值:10
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:报告任务状态的时间间隔。 任务可以是创建表、删除表、加载数据或更改表架构。
- 引入版本:-
report_disk_state_interval_seconds
- 默认值:60
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:报告存储卷状态(包括卷中数据大小)的时间间隔。
- 引入版本:-
report_tablet_interval_seconds
- 默认值:60
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:报告所有 Tablet 的最新版本的时间间隔。
- 引入版本:-
report_workgroup_interval_seconds
- 默认值:5
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:报告所有工作组的最新版本的时间间隔。
- 引入版本:-
status_report_interval
- 默认值:5
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:查询报告其 Profile 的时间间隔,FE 可以使用该 Profile 进行查询统计信息收集。
- 引入版本:-
periodic_counter_update_period_ms
- 默认值:500
- 类型:Int
- 单位:毫秒
- 是否可变:是
- 描述:收集 Counter 统计信息的时间间隔。
- 引入版本:-
存储
primary_key_limit_size
- 默认值:128
- 类型:Int
- 单位:字节
- 是否可变:是
- 描述:主键表中键列的最大大小。
- 引入版本:v2.5
drop_tablet_worker_count
- 默认值:3
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:用于删除 Tablet 的线程数。
- 引入版本:-
alter_tablet_worker_count
- 默认值:3
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:用于架构更改的线程数。
- 引入版本:-
avro_ignore_union_type_tag
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否可变:是
- 描述:是否从 Avro Union 数据类型序列化的 JSON 字符串中剥离类型标签。
- 引入版本:v3.3.7、v3.4
clone_worker_count
- 默认值:3
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:用于 Clone 的线程数。
- 引入版本:-
storage_medium_migrate_count
- 默认值:3
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:用于存储介质迁移(从 SATA 到 SSD)的线程数。
- 引入版本:-
check_consistency_worker_count
- 默认值:1
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:用于检查 Tablet 一致性的线程数。
- 引入版本:-
upload_worker_count
- 默认值:0
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:BE 节点上备份作业上传任务的最大线程数。
0
表示将该值设置为 BE 所在的机器上的 CPU 内核数。 - 引入版本:-
download_worker_count
- 默认值:0
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:BE 节点上还原作业下载任务的最大线程数。
0
表示将该值设置为 BE 所在的机器上的 CPU 内核数。 - 引入版本:-
make_snapshot_worker_count
- 默认值:5
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:BE 节点上 make 快照任务的最大线程数。
- 引入版本:-
release_snapshot_worker_count
- 默认值:5
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:BE 节点上 release 快照任务的最大线程数。
- 引入版本:-
max_download_speed_kbps
- 默认值:50000
- 类型:Int
- 单位:KB/秒
- 是否可变:是
- 描述:每个 HTTP 请求的最大下载速度。 此值会影响 BE 节点之间的数据副本同步性能。
- 引入版本:-
download_low_speed_limit_kbps
- 默认值:50
- 类型:Int
- 单位:KB/秒
- 是否可变:是
- 描述:每个 HTTP 请求的下载速度下限。 当 HTTP 请求持续以低于此值的速度运行且持续时间达到配置项
download_low_speed_time
中指定的时间范围时,HTTP 请求会中止。 - 引入版本:-
download_low_speed_time
- 默认值:300
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:HTTP 请求以低于限制的速度运行的最大时间。 当 HTTP 请求持续以低于
download_low_speed_limit_kbps
的速度运行时,该请求将中止,且持续时间达到此配置项中指定的时间范围。 - 引入版本:-
memory_limitation_per_thread_for_schema_change
- 默认值:2
- 类型:Int
- 单位:GB
- 是否可变:是
- 描述:每个架构更改任务允许的最大内存大小。
- 引入版本:-
update_cache_expire_sec
- 默认值:360
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:更新缓存的过期时间。
- 引入版本:-
file_descriptor_cache_clean_interval
- 默认值:3600
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:清理在一段时间内未使用的文件描述符的时间间隔。
- 引入版本:-
disk_stat_monitor_interval
- 默认值:5
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:监视磁盘运行状况的时间间隔。
- 引入版本:-
replication_threads
- 默认值:0
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:用于复制的最大线程数。
0
表示将线程数设置为 BE CPU 内核数的四倍。 - 引入版本:v3.3.5
replication_max_speed_limit_kbps
- 默认值:50000
- 类型:Int
- 单位:KB/s
- 是否可变:是
- 描述:每个复制线程的最大速度。
- 引入版本:v3.3.5
replication_min_speed_limit_kbps
- 默认值:50
- 类型:Int
- 单位:KB/s
- 是否可变:是
- 描述:每个复制线程的最小速度。
- 引入版本:v3.3.5
replication_min_speed_time_seconds
- 默认值:300
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:允许复制线程以低于最小速度运行的时间。 如果实际速度低于
replication_min_speed_limit_kbps
的时间超过此值,则复制将失败。 - 引入版本:v3.3.5
clear_expired_replication_snapshots_interval_seconds
- 默认值:3600
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:系统清除异常复制留下的过期快照的时间间隔。
- 引入版本:v3.3.5
unused_rowset_monitor_interval
- 默认值:30
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:清理过期 Rowset 的时间间隔。
- 引入版本:-
storage_root_path
- 默认值:
${STARROCKS_HOME}/storage
- 类型:字符串
- 单位:-
- 是否可变:否
- 描述:存储卷的目录和介质。 示例:
/data1,medium:hdd;/data2,medium:ssd
。- 多个卷用分号 (
;
) 分隔。 - 如果存储介质是 SSD,请在目录末尾添加
,medium:ssd
。 - 如果存储介质是 HDD,请在目录末尾添加
,medium:hdd
。
- 多个卷用分号 (
- 引入版本:-
max_percentage_of_error_disk
- 默认值:0
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:在相应的 BE 节点退出之前,存储卷中可容忍的最大错误百分比。
- 引入版本:-
default_num_rows_per_column_file_block
- 默认值:1024
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:每个行块中可以存储的最大行数。
- 引入版本:-
max_tablet_num_per_shard
- 默认值:1024
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:每个分片中的最大 Tablet 数。 此配置项用于限制每个存储目录下 Tablet 子目录的数量。
- 引入版本:-
pending_data_expire_time_sec
- 默认值:1800
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:存储引擎中待处理数据的过期时间。
- 引入版本:-
inc_rowset_expired_sec
- 默认值:1800
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:传入数据的过期时间。 此配置项在增量 Clone 中使用。
- 引入版本:-
tablet_rowset_stale_sweep_time_sec
- 默认值:1800
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:清扫 Tablet 中过时 Rowset 的时间间隔。
- 引入版本:-
max_garbage_sweep_interval
- 默认值:3600
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:存储卷上垃圾回收的最大时间间隔。 从 v3.0 开始,此配置更改为动态配置。
- 引入版本:-
min_garbage_sweep_interval
- 默认值:180
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:存储卷上垃圾回收的最小时间间隔。 从 v3.0 开始,此配置更改为动态配置。
- 引入版本:-
snapshot_expire_time_sec
- 默认值:172800
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:快照文件的过期时间。
- 引入版本:-
trash_file_expire_time_sec
- 默认值:86400
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:清理垃圾文件的时间间隔。 自 v2.5.17、v3.0.9 和 v3.1.6 以来,默认值已从 259,200 更改为 86,400。
- 引入版本:-
compact_threads
- 默认值:4
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:用于并发 Compaction 任务的最大线程数。 从 v3.1.7 和 v3.2.2 开始,此配置更改为动态配置。
- 引入于:v3.0.0
base_compaction_check_interval_seconds
- 默认值:60
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:线程轮询 Base Compaction 的时间间隔。
- 引入版本:-
min_base_compaction_num_singleton_deltas
- 默认值:5
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:触发 Base Compaction 的最小段数。
- 引入版本:-
max_base_compaction_num_singleton_deltas
- 默认值:100
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:每次 Base Compaction 中可以压缩的最大段数。
- 引入版本:-
base_compaction_num_threads_per_disk
- 默认值:1
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:用于每个存储卷上 Base Compaction 的线程数。
- 引入版本:-
base_cumulative_delta_ratio
- 默认值:0.3
- 类型:双精度
- 单位:-
- 是否可变:是
- 描述:累积文件大小与基础文件大小的比率。 达到此值的比率是触发 Base Compaction 的条件之一。
- 引入版本:-
base_compaction_interval_seconds_since_last_operation
- 默认值:86400
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:自上次 Base Compaction 以来的时间间隔。 此配置项是触发 Base Compaction 的条件之一。
- 引入版本:-
cumulative_compaction_check_interval_seconds
- 默认值:1
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:线程轮询 Cumulative Compaction 的时间间隔。
- 引入版本:-
min_cumulative_compaction_num_singleton_deltas
- 默认值:5
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:触发 Cumulative Compaction 的最小段数。
- 引入版本:-
max_cumulative_compaction_num_singleton_deltas
- 默认值:1000
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:单个 Cumulative Compaction 中可以合并的最大段数。 如果在 Compaction 期间发生 OOM,您可以减小此值。
- 引入版本:-
cumulative_compaction_num_threads_per_disk
- 默认值:1
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:每个磁盘的 Cumulative Compaction 线程数。
- 引入版本:-
max_compaction_candidate_num
- 默认值:40960
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:Compaction 的候选 Tablet 的最大数量。 如果值太大,会导致内存使用率高和 CPU 负载高。
- 引入版本:-
update_compaction_check_interval_seconds
- 默认值:10
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:检查主键表 Compaction 的时间间隔。
- 引入版本:-
update_compaction_num_threads_per_disk
- 默认值:1
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:每个磁盘的主键表 Compaction 线程数。
- 引入版本:-
update_compaction_per_tablet_min_interval_seconds
- 默认值:120
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:触发主键表中每个 Tablet Compaction 的最小时间间隔。
- 引入版本:-
max_update_compaction_num_singleton_deltas
- 默认值:1000
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:单个主键表 Compaction 中可以合并的最大 Rowset 数。
- 引入版本:-
update_compaction_size_threshold
- 默认值:268435456
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:主键表的 Compaction Score 基于文件大小计算,这与其他表类型不同。 此参数可用于使主键表的 Compaction Score 与其他表类型相似,从而方便用户理解。
- 引入版本:-
update_compaction_result_bytes
- 默认值:1073741824
- 类型:Int
- 单位:字节
- 是否可变:是
- 描述:主键表的单个 Compaction 的最大结果大小。
- 引入版本:-
update_compaction_delvec_file_io_amp_ratio
- 默认值:2
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:用于控制主键表中包含 Delvec 文件的 Rowset 的 Compaction 优先级。 值越大,优先级越高。
- 引入版本:-
update_compaction_ratio_threshold
- 默认值:0.5
- 类型:双精度
- 单位:-
- 是否可变:是
- 描述:在共享数据集群中,Compaction 可以为某个主键表合并的最大数据比例。 如果单个 Tablet 变得过大,建议缩小此值。
- 引入版本:v3.1.5
repair_compaction_interval_seconds
- 默认值:600
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:轮询 Repair Compaction 线程的时间间隔。
- 引入版本:-
manual_compaction_threads
- 默认值:4
- 类型:Int
- 单位:-
- 是否可变:否
- Description: 手动 Compaction 的线程数。
- 引入版本:-
min_compaction_failure_interval_sec
- 默认值:120
- 类型:Int
- 单位:秒
- 是否可变:是
- Description: 自上次 compaction 失败后,可以调度 Tablet Compaction 的最小时间间隔(秒)。
- 引入版本:-
min_cumulative_compaction_failure_interval_sec
- 默认值:30
- 类型:Int
- 单位:秒
- 是否可变:是
- Description: 累计 Compaction 在失败后重试的最小时间间隔(秒)。
- 引入版本:-
max_compaction_concurrency
- 默认值:-1
- 类型:Int
- 单位:-
- 是否可变:是
- Description: Compaction 的最大并发数(包括 Base Compaction 和 Cumulative Compaction)。值
-1
表示对并发数没有限制。0
表示禁用 Compaction。当启用基于事件的 Compaction 框架时,此参数是可变的。 - 引入版本:-
compaction_trace_threshold
- 默认值:60
- 类型:Int
- 单位:秒
- 是否可变:是
- Description: 每个 Compaction 的时间阈值。如果 Compaction 花费的时间超过时间阈值,StarRocks 会打印相应的 trace。
- 引入版本:-
compaction_memory_limit_per_worker
- 默认值:2147483648
- 类型:Int
- 单位:字节
- 是否可变:否
- Description: 每个 Compaction 线程允许的最大内存大小。
- 引入版本:-
enable_rowset_verify
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否可变:是
- Description: 是否验证生成的 Rowset 的正确性。启用后,将在 Compaction 和 Schema Change 后检查生成的 Rowset 的正确性。
- 引入版本:-
vertical_compaction_max_columns_per_group
- 默认值:5
- 类型:Int
- 单位:-
- 是否可变:否
- Description: Vertical Compaction 中每组的最大列数。
- 引入版本:-
enable_event_based_compaction_framework
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否可变:否
- Description: 是否启用基于事件的 Compaction 框架。
true
表示启用基于事件的 Compaction 框架,而false
表示禁用它。在存在大量 Tablet 或单个 Tablet 具有大量数据的场景中,启用基于事件的 Compaction 框架可以大大减少 Compaction 的开销。 - 引入版本:-
enable_size_tiered_compaction_strategy
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否可变:否
- Description: 是否启用 Size-tiered Compaction 策略(不包括 Primary Key 表)。
true
表示启用 Size-tiered Compaction 策略,而false
表示禁用它。 - 引入版本:-
enable_pk_size_tiered_compaction_strategy
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否可变:否
- Description: 是否为 Primary Key 表启用 Size-tiered Compaction 策略。
true
表示启用 Size-tiered Compaction 策略,而false
表示禁用它。 - Introduced in: 此项从 v3.2.4 和 v3.1.10 起对共享数据集群生效,从 v3.2.5 和 v3.1.10 起对共享存储集群生效。
size_tiered_min_level_size
- Default: 131072
- 类型:Int
- 单位:字节
- 是否可变:是
- Description: Size-tiered Compaction 策略中最小级别的数据大小。小于此值的 Rowset 会立即触发数据 compaction。
- 引入版本:-
size_tiered_level_multiple
- 默认值:5
- 类型:Int
- 单位:-
- 是否可变:是
- Description: Size-tiered Compaction 策略中两个连续级别之间的数据大小倍数。
- 引入版本:-
size_tiered_level_multiple_dupkey
- 默认值:10
- 类型:Int
- 单位:-
- 是否可变:是
- Description: 在 Size-tiered Compaction 策略中,Duplicate Key 表的两个相邻级别之间的数据量差异倍数。
- 引入版本:-
size_tiered_level_num
- Default: 7
- 类型:Int
- 单位:-
- 是否可变:是
- Description: Size-tiered Compaction 策略的级别数。每个级别最多保留一个 Rowset。因此,在稳定条件下,Rowset 的数量最多为此配置项中指定的级别数。
- 引入版本:-
enable_check_string_lengths
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否可变:否
- Description: 是否在加载期间检查数据长度,以解决由越界 VARCHAR 数据引起的 compaction 失败。
- 引入版本:-
max_row_source_mask_memory_bytes
- Default: 209715200
- 类型:Int
- 单位:字节
- 是否可变:否
- Description: 行源掩码缓冲区的最大内存大小。当缓冲区大于此值时,数据将持久化到磁盘上的临时文件。此值应设置为低于
compaction_memory_limit_per_worker
的值。 - 引入版本:-
memory_maintenance_sleep_time_s
- 默认值:10
- 类型:Int
- 单位:秒
- 是否可变:是
- Description: 触发 ColumnPool GC 的时间间隔。 StarRocks 定期执行 GC,并将释放的内存返回给操作系统。
- 引入版本:-
load_process_max_memory_limit_bytes
- Default: 107374182400
- 类型:Int
- 单位:字节
- 是否可变:否
- Description: BE 节点上所有加载进程可以占用的内存资源的最大大小限制。
- 引入版本:-
load_process_max_memory_limit_percent
- 默认值:30
- 类型:Int
- 单位:-
- 是否可变:否
- Description: BE 节点上所有加载进程可以占用的内存资源的软限制(百分比)。
- 引入版本:-
load_process_max_memory_hard_limit_ratio
- 默认值:2
- 类型:Int
- 单位:-
- 是否可变:是
- Description: BE 节点上所有加载进程可以占用的内存资源的硬限制(比率)。 当
enable_new_load_on_memory_limit_exceeded
设置为false
时,并且所有加载进程的内存消耗超过load_process_max_memory_limit_percent * load_process_max_memory_hard_limit_ratio
时,将拒绝新的加载进程。 - Introduced in: v3.3.2
enable_new_load_on_memory_limit_exceeded
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否可变:是
- Description: 当达到硬内存资源限制时,是否允许新的加载进程。
true
表示允许新的加载进程,而false
表示拒绝它们。 - Introduced in: v3.3.2
sync_tablet_meta
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否可变:是
- Description: 一个布尔值,用于控制是否启用 Tablet 元数据的同步。
true
表示启用同步,而false
表示禁用同步。 - 引入版本:-
storage_flood_stage_usage_percent
- Default: 95
- 类型:Int
- 单位:-
- 是否可变:是
- Description: 所有 BE 目录中存储使用率的硬限制。 如果 BE 存储目录的存储使用率(百分比)超过此值,并且剩余存储空间小于
storage_flood_stage_left_capacity_bytes
,则会拒绝 Load 和 Restore 作业。 您需要将此项目与 FE 配置项目storage_usage_hard_limit_percent
一起设置才能使配置生效。 - 引入版本:-
storage_flood_stage_left_capacity_bytes
- Default: 107374182400
- 类型:Int
- 单位:字节
- 是否可变:是
- Description: 所有 BE 目录中剩余存储空间的硬限制。 如果 BE 存储目录的剩余存储空间小于此值,并且存储使用率(百分比)超过
storage_flood_stage_usage_percent
,则会拒绝 Load 和 Restore 作业。 您需要将此项目与 FE 配置项目storage_usage_hard_limit_reserve_bytes
一起设置才能使配置生效。 - 引入版本:-
tablet_meta_checkpoint_min_new_rowsets_num
- 默认值:10
- 类型:Int
- 单位:-
- 是否可变:是
- Description: 自上次 TabletMeta Checkpoint 以来要创建的最小 Rowset 数。
- 引入版本:-
tablet_meta_checkpoint_min_interval_secs
- 默认值:600
- 类型:Int
- 单位:秒
- 是否可变:是
- Description: 线程轮询 TabletMeta Checkpoint 的时间间隔。
- 引入版本:-
tablet_map_shard_size
- Default: 32
- 类型:Int
- 单位:-
- 是否可变:否
- Description: Tablet Map 分片大小。 该值必须是 2 的幂。
- 引入版本:-
tablet_max_versions
- 默认值:1000
- 类型:Int
- 单位:-
- 是否可变:是
- Description: Tablet 上允许的最大版本数。 如果版本数超过此值,则新的写入请求将失败。
- 引入版本:-
tablet_max_pending_versions
- 默认值:1000
- 类型:Int
- 单位:-
- 是否可变:是
- Description: Primary Key Tablet 上可容忍的最大挂起版本数。 挂起版本是指已提交但尚未应用的版本。
- 引入版本:-
tablet_stat_cache_update_interval_second
- 默认值:300
- 类型:Int
- 单位:秒
- Is mutable: 是
- Description: Tablet Stat Cache 更新的时间间隔。
- 引入版本:-
enable_bitmap_union_disk_format_with_set
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否可变:是
- Description: 一个布尔值,用于控制是否启用 BITMAP 类型的新存储格式,这可以提高 bitmap_union 的性能。
true
表示启用新存储格式,而false
表示禁用它。 - 引入版本:-
pindex_major_compaction_limit_per_disk
- 默认值:1
- 类型:Int
- 单位:-
- 是否可变:是
- Description: 磁盘上 compaction 的最大并发数。 这解决了由于 compaction 导致磁盘 I/O 不均匀的问题。 此问题可能导致某些磁盘的 I/O 过高。
- Introduced in: v3.0.9
Loading
push_worker_count_normal_priority
- 默认值:3
- 类型:Int
- 单位:-
- 是否可变:否
- Description: 用于处理具有 NORMAL 优先级的加载任务的线程数。
- 引入版本:-
push_worker_count_high_priority
- 默认值:3
- 类型:Int
- 单位:-
- 是否可变:否
- Description: 用于处理具有 HIGH 优先级的加载任务的线程数。
- 引入版本:-
transaction_publish_version_worker_count
- 默认值:0
- 类型:Int
- 单位:-
- 是否可变:是
- Description: 用于发布版本的最大线程数。 当此值设置为小于或等于
0
时,系统使用 CPU 核心计数作为该值,以避免在高导入并发但仅使用固定数量的线程时线程资源不足。 从 v2.5 开始,默认值已从8
更改为0
。 - 引入版本:-
clear_transaction_task_worker_count
- 默认值:1
- 类型:Int
- 单位:-
- 是否可变:否
- Description: 用于清除事务的线程数。
- 引入版本:-
load_data_reserve_hours
- 默认值:4
- 类型:Int
- Unit: 小时
- 是否可变:否
- Description: 小规模加载生成的文件保留时间。
- 引入版本:-
load_error_log_reserve_hours
- 默认值:48
- 类型:Int
- Unit: 小时
- 是否可变:是
- Description: 数据加载日志的保留时间。
- 引入版本:-
number_tablet_writer_threads
- Default: 16
- 类型:Int
- 单位:-
- 是否可变:是
- Description: 用于 Stream Load 的线程数。 从 v3.1.7 开始,此配置已更改为动态。
- 引入版本:-
streaming_load_max_mb
- Default: 102400
- 类型:Int
- Unit: MB
- 是否可变:是
- Description: 可以流式传输到 StarRocks 中的文件的最大大小。 从 v3.0 开始,默认值已从
10240
更改为102400
。 - 引入版本:-
streaming_load_max_batch_size_mb
- 默认值:100
- 类型:Int
- Unit: MB
- 是否可变:是
- Description: 可以流式传输到 StarRocks 中的 JSON 文件的最大大小。
- 引入版本:-
streaming_load_rpc_max_alive_time_sec
- Default: 1200
- 类型:Int
- 单位:秒
- 是否可变:否
- Description: Stream Load 的 RPC 超时。
- 引入版本:-
write_buffer_size
- Default: 104857600
- 类型:Int
- 单位:字节
- 是否可变:是
- Description: 内存中 MemTable 的缓冲区大小。 此配置项是触发刷新的阈值。
- 引入版本:-
load_process_max_memory_limit_bytes
- Default: 107374182400
- 类型:Int
- 单位:字节
- 是否可变:否
- Description: BE 节点上所有加载进程可以占用的内存资源的最大大小限制。
- 引入版本:-
txn_commit_rpc_timeout_ms (Deprecated)
- Default: 60000
- 类型:Int
- 单位:毫秒
- 是否可变:是
- Description: 事务提交 RPC 的超时。 从 v3.2.0 开始,此参数已弃用。
- 引入版本:-
max_consumer_num_per_group
- 默认值:3
- 类型:Int
- 单位:-
- 是否可变:是
- Description: Routine Load 的消费者组中的最大消费者数。
- 引入版本:-
flush_thread_num_per_store
- 默认值:2
- 类型:Int
- 单位:-
- 是否可变:是
- Description: 每个存储中用于刷新 MemTable 的线程数。
- 引入版本:-
lake_flush_thread_num_per_store
- 默认值:0
- 类型:Int
- 单位:-
- 是否可变:是
- Description: 在共享数据模式下,每个存储中用于刷新 MemTable 的线程数。 当此值设置为
0
时,系统使用 CPU 核心计数的两倍作为该值。 当此值设置为小于0
时,系统使用其绝对值与 CPU 核心计数的乘积作为该值。 - Introduced in: 3.1.12, 3.2.7
max_runnings_transactions_per_txn_map
- 默认值:100
- 类型:Int
- 单位:-
- 是否可变:是
- Description: 每个分区中可以并发运行的最大事务数。
- 引入版本:-
enable_stream_load_verbose_log
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否可变:是
- Description: 指定是否记录 Stream Load 作业的 HTTP 请求和响应。
- Introduced in: v2.5.17, v3.0.9, v3.1.6, v3.2.1
查询引擎
scanner_thread_pool_thread_num
- 默认值:48
- 类型:Int
- 单位:-
- 是否可变:是
- Description: 存储引擎用于并发存储卷扫描的线程数。 所有线程都在线程池中管理。
- 引入版本:-
scanner_thread_pool_queue_size
- Default: 102400
- 类型:Int
- 单位:-
- 是否可变:否
- Description: 存储引擎支持的扫描任务数。
- 引入版本:-
scanner_row_num
- Default: 16384
- 类型:Int
- 单位:-
- 是否可变:是
- Description: 扫描中每个扫描线程返回的最大行数。
- 引入版本:-
max_scan_key_num
- 默认值:1024
- 类型:Int
- 单位:-
- 是否可变:是
- Description: 每个查询分段的最大扫描键数。
- 引入版本:-
max_pushdown_conditions_per_column
- 默认值:1024
- 类型:Int
- 单位:-
- 是否可变:是
- Description: 每列中允许下推的最大条件数。 如果条件数超过此限制,则谓词不会下推到存储层。
- 引入版本:-
exchg_node_buffer_size_bytes
- Default: 10485760
- 类型:Int
- 单位:字节
- 是否可变:是
- Description: 每个查询的交换节点接收端上的最大缓冲区大小。 此配置项是软限制。 当数据以过快的速度发送到接收端时,会触发反压。
- 引入版本:-
file_descriptor_cache_capacity
- Default: 16384
- 类型:Int
- 单位:-
- 是否可变:否
- Description: 可以缓存的文件描述符的数量。
- 引入版本:-
min_file_descriptor_number
- Default: 60000
- 类型:Int
- 单位:-
- 是否可变:否
- Description: BE 进程中的最小文件描述符数。
- 引入版本:-
index_stream_cache_capacity
- Default: 10737418240
- 类型:Int
- 单位:字节
- 是否可变:否
- Description: BloomFilter、Min 和 Max 的统计信息的缓存容量。
- 引入版本:-
storage_page_cache_limit
- Default: 20%
- 类型:字符串
- 单位:-
- 是否可变:是
- Description: PageCache 大小。 可以指定为大小,例如
20G
、20,480M
、20,971,520K
或21,474,836,480B
。 也可以指定为内存大小的比率(百分比),例如20%
。 它仅在disable_storage_page_cache
设置为false
时生效。 - 引入版本:-
disable_storage_page_cache
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否可变:是
- Description: 一个布尔值,用于控制是否禁用 PageCache。
- 启用 PageCache 时,StarRocks 会缓存最近扫描的数据。
- 当频繁重复类似的查询时,PageCache 可以显着提高查询性能。
true
表示禁用 PageCache。- 自 StarRocks v2.4 以来,此项的默认值已从
true
更改为false
。
- 引入版本:-
fragment_pool_thread_num_min
- Default: 64
- 类型:Int
- Unit: 分钟
- 是否可变:否
- Description: 用于查询的最小线程数。
- 引入版本:-
fragment_pool_thread_num_max
- Default: 4096
- 类型:Int
- 单位:-
- 是否可变:否
- Description: 用于查询的最大线程数。
- 引入版本:-
fragment_pool_queue_size
- Default: 2048
- 类型:Int
- 单位:-
- 是否可变:否
- Description: 可以在每个 BE 节点上处理的查询数的上限。
- 引入版本:-
enable_prefetch
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否可变:是
- Description: 一个布尔值,用于控制是否启用查询的预取。
true
表示启用预取,而false
表示禁用它。 - 引入版本:-
query_pool_spill_mem_limit_threshold
- Default: 1.0
- 类型:双精度
- 单位:-
- 是否可变:否
- Description: 如果启用了自动溢出,则当所有查询的内存使用量超过
query_pool 内存限制 * query_pool_spill_mem_limit_threshold
时,将触发中间结果溢出。 - Introduced in: v3.2.7
result_buffer_cancelled_interval_time
- 默认值:300
- 类型:Int
- 单位:秒
- 是否可变:是
- Description: BufferControlBlock 释放数据之前的等待时间。
- 引入版本:-
max_memory_sink_batch_count
- Default: 20
- 类型:Int
- 单位:-
- 是否可变:是
- Description: Scan Cache 的最大批次数。
- 引入版本:-
scan_context_gc_interval_min
- 默认值:5
- 类型:Int
- Unit: 分钟
- 是否可变:是
- Description: 清理 Scan Context 的时间间隔。
- 引入版本:-
path_gc_check_step
- 默认值:1000
- 类型:Int
- 单位:-
- 是否可变:是
- Description: 每次可以连续扫描的最大文件数。
- 引入版本:-
path_gc_check_step_interval_ms
- 默认值:10
- 类型:Int
- 单位:毫秒
- 是否可变:是
- Description: 文件扫描之间的时间间隔。
- 引入版本:-
path_scan_interval_second
- 默认值:86400
- 类型:Int
- 单位:秒
- 是否可变:是
- Description: GC 清理过期数据的时间间隔。
- 引入版本:-
pipeline_connector_scan_thread_num_per_cpu
- Default: 8
- 类型:双精度
- 单位:-
- 是否可变:是
- Description: 在 BE 节点中为每个 CPU 核心分配给 Pipeline Connector 的扫描线程数。 从 v3.1.7 开始,此配置已更改为动态。
- 引入版本:-
pipeline_scan_thread_pool_queue_size
- Default: 102400
- 类型:Int
- 单位:-
- 是否可变:否
- Description: Pipeline 执行引擎的 SCAN 线程池的最大任务队列长度。
- 引入版本:-
pipeline_prepare_thread_pool_thread_num
- 默认值:0
- 类型:Int
- 单位:-
- 是否可变:否
- Description: Pipeline 执行引擎 PREPARE 片段线程池中的线程数。
0
表示该值等于系统 VCPU 核心数。 - 引入版本:-
pipeline_prepare_thread_pool_queue_size
- Default: 102400
- 类型:Int
- 单位:-
- 是否可变:否
- Description: Pipeline 执行引擎 PREPARE 片段线程池的最大队列长度。
- 引入版本:-
pipeline_poller_timeout_guard_ms
- 默认值:-1
- 类型:Int
- 单位:毫秒
- 是否可变:是
- Description: 当此项设置为大于
0
时,如果驱动程序在轮询器中的单次调度花费的时间超过pipeline_poller_timeout_guard_ms
,则会打印驱动程序和运算符的信息。 - 引入版本:-
pipeline_prepare_timeout_guard_ms
- 默认值:-1
- 类型:Int
- 单位:毫秒
- 是否可变:是
- Description: 当此项设置为大于
0
时,如果计划片段在 PREPARE 过程中超过pipeline_prepare_timeout_guard_ms
,则会打印计划片段的堆栈跟踪。 - 引入版本:-
max_hdfs_file_handle
- 默认值:1000
- 类型:Int
- 单位:-
- 是否可变:是
- Description: 可以打开的最大 HDFS 文件描述符数。
- 引入版本:-
object_storage_connect_timeout_ms
- 默认值:-1
- 类型:Int
- 单位:毫秒
- 是否可变:否
- Description: 与对象存储建立套接字连接的超时时间。
-1
表示使用 SDK 配置的默认超时时间。 - Introduced in: v3.0.9
object_storage_request_timeout_ms
- 默认值:-1
- 类型:Int
- 单位:毫秒
- 是否可变:否
- Description: 与对象存储建立 HTTP 连接的超时时间。
-1
表示使用 SDK 配置的默认超时时间。 - Introduced in: v3.0.9
parquet_late_materialization_enable
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否可变:否
- Description: 一个布尔值,用于控制是否启用 Parquet 读取器的延迟物化以提高性能。
true
表示启用延迟物化,而false
表示禁用它。 - 引入版本:-
parquet_late_materialization_v2_enable
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否可变:否
- Description: 一个布尔值,用于控制是否启用 Parquet 读取器的延迟物化 v2 以提高性能。
true
表示启用延迟物化 v2,而false
表示禁用它。 在 v3.3 中,仅使用parquet_late_materialization_enable
,此变量已弃用。 - Introduced in: v3.2
parquet_page_index_enable
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否可变:否
- Description: 一个布尔值,用于控制是否启用 Parquet 文件的 pageindex 以提高性能。
true
表示启用 pageindex,而false
表示禁用它。 - Introduced in: v3.3
parquet_reader_bloom_filter_enable
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否可变:是
- Description: 一个布尔值,用于控制是否启用 Parquet 文件的 bloom filter 以提高性能。
true
表示启用 bloom filter,而false
表示禁用它。 您还可以使用系统变量enable_parquet_reader_bloom_filter
在会话级别控制此行为。 Parquet 中的 Bloom filter 在 每个行组内的列级别 维护。 如果 Parquet 文件包含某些列的 bloom filter,则查询可以使用这些列上的谓词来有效地跳过行组。 - Introduced in: v3.5
io_coalesce_adaptive_lazy_active
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否可变:是
- Description: 根据谓词的选择性,自适应地确定是否合并谓词列和非谓词列的 I/O。
- Introduced in: v3.2
hdfs_client_enable_hedged_read
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否可变:否
- Description: 指定是否启用有界读取功能。
- Introduced in: v3.0
hdfs_client_hedged_read_threadpool_size
- 默认值:128
- 类型:Int
- 单位:-
- 是否可变:否
- Description: 指定 HDFS 客户端上有界读取线程池的大小。 线程池大小限制了专用于在 HDFS 客户端中运行有界读取的线程数。 它等效于 HDFS 集群的 hdfs-site.xml 文件中的
dfs.client.hedged.read.threadpool.size
参数。 - Introduced in: v3.0
hdfs_client_hedged_read_threshold_millis
- Default: 2500
- 类型:Int
- 单位:毫秒
- 是否可变:否
- Description: 指定启动有界读取之前要等待的毫秒数。 例如,您已将此参数设置为
30
。 在这种情况下,如果从块的读取在 30 毫秒内未返回,则 HDFS 客户端会立即启动对不同块副本的新读取。 它等效于 HDFS 集群的 hdfs-site.xml 文件中的dfs.client.hedged.read.threshold.millis
参数。 - Introduced in: v3.0
query_cache_capacity
- Default: 536870912
- 类型:Int
- 单位:字节
- 是否可变:否
- Description: BE 中查询缓存的大小。 默认大小为 512 MB。 大小不能小于 4 MB。 如果 BE 的内存容量不足以提供您预期的查询缓存大小,则可以增加 BE 的内存容量。
- 引入版本:-
enable_json_flat
- 默认值:false
- 类型:Boolean
- 单位
- 是否可变:是
- Description: 是否启用 Flat JSON 功能。 启用此功能后,新加载的 JSON 数据将自动展平,从而提高 JSON 查询性能。
- 引入版本:v3.3.0
json_flat_null_factor
- 默认值:0.3
- 类型:双精度
- 单位
- 是否可变:是
- Description: 列中 NULL 值的比例,用于提取 Flat JSON。 如果列中 NULL 值的比例高于此阈值,则不会提取该列。 此参数仅在
enable_json_flat
设置为true
时生效。 - 引入版本:v3.3.0
json_flat_sparsity_factor
- Default: 0.9
- 类型:双精度
- 单位
- 是否可变:是
- Description: Flat JSON 中具有相同名称的列的比例。 如果具有相同名称的列的比例低于此值,则不执行提取。 此参数仅在
enable_json_flat
设置为true
时生效。 - 引入版本:v3.3.0
json_flat_column_max
- 默认值:100
- 类型:Int
- 单位
- 是否可变:是
- Description: Flat JSON 可以提取的最大子字段数。 此参数仅在
enable_json_flat
设置为true
时生效。 - 引入版本:v3.3.0
enable_compaction_flat_json
- Default: True
- 类型:Boolean
- 单位
- 是否可变:是
- Description: 是否为 Flat JSON 数据启用 compaction。
- Introduced in: v3.3.3
enable_lazy_dynamic_flat_json
- Default: True
- 类型:Boolean
- 单位
- 是否可变:是
- 描述:查询在读取过程中未命中 Flat JSON schema 时,是否启用 Lazy Dynamic Flat JSON。 当此项设置为
true
时,StarRocks 会将 Flat JSON 操作推迟到计算过程而不是读取过程。 - Introduced in: v3.3.3
jit_lru_cache_size
- 默认值:0
- 类型:Int
- 单位:字节
- 是否可变:是
- 描述:用于 JIT 编译的 LRU 缓存大小。如果设置为大于 0 的值,则表示缓存的实际大小。如果设置为小于或等于 0 的值,系统将使用公式
jit_lru_cache_size = min(mem_limit*0.01, 1GB)
自适应地设置缓存(节点的mem_limit
必须大于或等于 16 GB)。 - 引入版本:-
Shared-Data
starlet_port
- 默认值:9070
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:BE 和 CN 的额外 Agent 服务端口。
- 引入版本:-
starlet_use_star_cache
- 默认值:v3.1 中为 false,v3.2.3 起为 true
- 类型:Boolean
- 单位:-
- 是否可变:是
- 描述:是否在共享数据集群中启用数据缓存。
true
表示启用此功能,false
表示禁用此功能。 从 v3.2.3 开始,默认值从false
设置为true
。 - 引入版本:v3.1
starlet_star_cache_disk_size_percent
- 默认值:80
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:共享数据集群中数据缓存最多可以使用的磁盘容量百分比。
- 引入版本:v3.1
starlet_fslib_s3client_request_timeout_ms
- 默认值:-1
- 类型:Int
- 单位:毫秒
- 是否可变:否
- 描述:
object_storage_request_timeout_ms
的别名。 有关详细信息,请参阅 object_storage_request_timeout_ms。 - 引入版本:v3.3.9
starlet_filesystem_instance_cache_capacity
- 默认值:10000
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:Starlet 文件系统实例的缓存容量。
- 引入版本:v3.2.16、v3.3.11、v3.4.1
starlet_filesystem_instance_cache_ttl_sec
- 默认值:86400
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:Starlet 文件系统实例的缓存过期时间。
- 引入版本:v3.3.15、3.4.5
lake_compaction_stream_buffer_size_bytes
- 默认值:1048576
- 类型:Int
- 单位:字节
- 是否可变:是
- 描述:共享数据集群中云原生表 Compaction 的读取器的远程 I/O 缓冲区大小。 默认值为 1MB。 您可以增加此值以加速 Compaction 过程。
- 引入版本:v3.2.3
lake_pk_compaction_max_input_rowsets
- 默认值:500
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:共享数据集群中主键表 Compaction 任务允许的最大输入 Rowset 数量。 此参数的默认值自 v3.2.4 和 v3.1.10 起从
5
更改为1000
,自 v3.3.1 和 v3.2.9 起更改为500
。 在为主键表启用分层 Compaction 策略后(通过将enable_pk_size_tiered_compaction_strategy
设置为true
),StarRocks 不需要限制每次 Compaction 的 Rowset 数量以减少写入放大。 因此,增加了此参数的默认值。 - 引入版本:v3.1.8、v3.2.3
loop_count_wait_fragments_finish
- 默认值:2
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:BE/CN 进程退出时要等待的循环次数。 每个循环是 10 秒的固定间隔。 您可以将其设置为
0
以禁用循环等待。 从 v3.4 开始,此项已更改为可变,其默认值从0
更改为2
。 - 引入版本:v2.5
graceful_exit_wait_for_frontend_heartbeat
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否可变:是
- 描述:确定是否在完成优雅退出之前等待至少一个前端心跳响应,该响应指示 SHUTDOWN 状态。 启用后,优雅关闭过程将保持活动状态,直到通过心跳 RPC 响应 SHUTDOWN 确认,从而确保前端有足够的时间来检测两个常规心跳间隔之间的终止状态。
- 引入版本:v3.4.5
数据湖
jdbc_connection_pool_size
- Default: 8
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:JDBC 连接池大小。 在每个 BE 节点上,使用相同
jdbc_url
访问外部表的查询共享相同的连接池。 - 引入版本:-
jdbc_minimum_idle_connections
- 默认值:1
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:JDBC 连接池中空闲连接的最小数量。
- 引入版本:-
jdbc_connection_idle_timeout_ms
- 默认值:600000
- 类型:Int
- 单位:毫秒
- 是否可变:否
- 描述:JDBC 连接池中空闲连接过期的时长。 如果 JDBC 连接池中的连接空闲时间超过此值,则连接池将关闭超过配置项
jdbc_minimum_idle_connections
中指定的数量的空闲连接。 - 引入版本:-
datacache_enable
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否可变:否
- 描述:是否启用数据缓存。
true
表示启用数据缓存,false
表示禁用数据缓存。 从 v3.3 开始,默认值更改为true
。 - 引入版本:-
datacache_mem_size
- 默认值:0
- 类型:字符串
- 单位:-
- 是否可变:否
- 描述:可以在内存中缓存的最大数据量。 您可以将其设置为百分比(例如,
10%
)或物理限制(例如,10G
、21474836480
)。 - 引入版本:-
datacache_disk_size
- 默认值:0
- 类型:字符串
- 单位:-
- 是否可变:否
- 描述:可以在单个磁盘上缓存的最大数据量。 您可以将其设置为百分比(例如,
80%
)或物理限制(例如,2T
、500G
)。 例如,如果您使用两个磁盘并将datacache_disk_size
参数的值设置为21474836480
(20 GB),则最多可以在这两个磁盘上缓存 40 GB 数据。 默认值为0
,表示仅使用内存来缓存数据。 - 引入版本:-
datacache_auto_adjust_enable
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否可变:是
- 描述:是否启用数据缓存磁盘容量的自动缩放。 启用后,系统会根据当前磁盘使用率动态调整缓存容量。
- 引入版本:v3.3.0
datacache_disk_high_level
- 默认值:90
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:触发缓存容量自动扩大的磁盘使用率上限(百分比)。 当磁盘使用率超过此值时,系统会自动从数据缓存中清除缓存数据。 从 v3.4.0 开始,默认值从
80
更改为90
。 - 引入版本:v3.3.0
datacache_disk_safe_level
- 默认值:80
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:数据缓存的磁盘使用率安全级别(百分比)。 当数据缓存执行自动缩放时,系统会调整缓存容量,以使磁盘使用率尽可能接近此值。 从 v3.4.0 开始,默认值从
70
更改为80
。 - 引入版本:v3.3.0
datacache_disk_low_level
- 默认值:60
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:触发缓存容量自动缩小的磁盘使用率下限(百分比)。 当磁盘使用率在
datacache_disk_idle_seconds_for_expansion
中指定的时间段内保持低于此值,并且为数据缓存分配的空间已完全利用时,系统将通过增加上限来自动扩展缓存容量。 - 引入版本:v3.3.0
datacache_disk_adjust_interval_seconds
- 默认值:10
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:数据缓存自动容量缩放的间隔。 系统会定期检查缓存磁盘使用率,并在必要时触发自动缩放。
- 引入版本:v3.3.0
datacache_disk_idle_seconds_for_expansion
- 默认值:7200
- 类型:Int
- 单位:秒
- 是否可变:是
- 描述:数据缓存自动扩展的最短等待时间。 仅当磁盘使用率在超过此持续时间内保持低于
datacache_disk_low_level
时,才会触发自动放大。 - 引入版本:v3.3.0
datacache_min_disk_quota_for_adjustment
- Default: 107374182400
- 类型:Int
- 单位:字节
- 是否可变:是
- 描述:数据缓存自动缩放的最小有效容量。 如果系统尝试将缓存容量调整到小于此值,则会将缓存容量直接设置为
0
,以防止由于缓存容量不足而导致频繁的缓存填充和清除造成的次优性能。 - 引入版本:v3.3.0
datacache_block_buffer_enable
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否可变:否
- 描述:是否启用块缓冲区以优化数据缓存效率。 启用块缓冲区后,系统会从数据缓存中读取块数据并将其缓存在临时缓冲区中,从而减少频繁缓存读取造成的额外开销。
- 引入版本:v3.2.0
datacache_tiered_cache_enable
- 默认值:false
- 类型:Boolean
- 单位:-
- 是否可变:否
- 描述:是否为数据缓存启用分层缓存模式。 启用分层缓存模式后,数据缓存配置有两个缓存层,内存和磁盘。 当磁盘数据变为热数据时,会自动加载到内存缓存中;当内存缓存中的数据变为冷数据时,会自动刷新到磁盘。 如果未启用分层缓存模式,则为数据缓存配置的内存和磁盘会形成两个单独的缓存空间并缓存不同类型的数据,它们之间没有数据流。
- 引入版本:v3.2.5
datacache_eviction_policy
- 默认值:slru
- 类型:字符串
- 单位:-
- 是否可变:否
- 描述:数据缓存的驱逐策略。 有效值:
lru
(最近最少使用)和slru
(分段 LRU)。 - 引入于:v3.4.0
datacache_inline_item_count_limit
- 默认值:130172
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:数据缓存中内联缓存项的最大数量。 对于某些特别小的缓存块,数据缓存以
inline
模式存储它们,该模式将块数据和元数据一起缓存在内存中。 - 引入于:v3.4.0
query_max_memory_limit_percent
- 默认值:90
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:查询池可以使用的最大内存。 它表示为进程内存限制的百分比。
- 引入于:v3.1.0
rocksdb_write_buffer_memory_percent
- 默认值:5
- 类型:Int64
- 单位:-
- 是否可变:否
- 描述:它是 rocksdb 中用于元数据的写缓冲区的内存百分比。 默认为系统内存的 5%。 但是,除此之外,写缓冲区内存的最终计算大小将不小于 64MB,也不会超过 1G (rocksdb_max_write_buffer_memory_bytes)
- 引入版本:v3.5.0
rocksdb_max_write_buffer_memory_bytes
- 默认值:1073741824
- 类型:Int64
- 单位:-
- 是否可变:否
- 描述:它是 rocksdb 中用于元数据的写缓冲区的最大大小。 默认为 1GB。
- 引入版本:v3.5.0
lake_service_max_concurrency
- 默认值:0
- 类型:Int
- 单位:-
- 是否可变:否
- 描述:共享数据集群中 RPC 请求的最大并发数。 达到此阈值时,将拒绝传入的请求。 当此项设置为
0
时,对并发数没有限制。 - 引入版本:-
lake_enable_vertical_compaction_fill_data_cache
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否可变:是
- 描述:是否允许垂直 Compaction 任务在共享数据集群中将数据缓存在本地磁盘上。
- 引入版本:v3.1.7、v3.2.3
其他
user_function_dir
- 默认值:
${STARROCKS_HOME}/lib/udf
- 类型:字符串
- 单位:-
- 是否可变:否
- 描述:用于存储用户定义函数 (UDF) 的目录。
- 引入版本:-
default_mv_resource_group_memory_limit
- 默认值:0.8
- 类型:双精度
- 单位
- 是否可变:是
- 描述:资源组
default_mv_wg
中物化视图刷新任务可以使用的最大内存比例(每个 BE 节点)。 默认值表示 80% 的内存。 - 引入版本:v3.1
default_mv_resource_group_cpu_limit
- 默认值:1
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:资源组
default_mv_wg
中物化视图刷新任务可以使用的最大 CPU 核心数(每个 BE 节点)。 - 引入版本:v3.1
default_mv_resource_group_concurrency_limit
- 默认值:0
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:资源组
default_mv_wg
中物化视图刷新任务的最大并发数(每个 BE 节点)。 默认值0
表示没有限制。 - 引入版本:v3.1
default_mv_resource_group_spill_mem_limit_threshold
- 默认值:0.8
- 类型:双精度
- 单位:-
- 是否可变:是
- 描述:资源组
default_mv_wg
中物化视图刷新任务触发中间结果溢出之前的内存使用阈值。 默认值表示 80% 的内存。 - 引入版本:v3.1
enable_token_check
- 默认值:true
- 类型:Boolean
- 单位:-
- 是否可变:是
- 描述:一个布尔值,用于控制是否启用令牌检查。
true
表示启用令牌检查,false
表示禁用令牌检查。 - 引入版本:-
small_file_dir
- 默认值:
${STARROCKS_HOME}/lib/small_file/
- 类型:字符串
- 单位:-
- 是否可变:否
- 描述:用于存储文件管理器下载的文件的目录。
- 引入版本:-
max_length_for_to_base64
- 默认值:200000
- 类型:Int
- 单位:字节
- 是否可变:否
- 描述:to_base64() 函数的输入值的最大长度。
- 引入版本:-
max_length_for_bitmap_function
- 默认值:1000000
- 类型:Int
- 单位:字节
- 是否可变:否
- 描述:Bitmap 函数的输入值的最大长度。
- 引入版本:-
report_exec_rpc_request_retry_num
- 默认值:10
- 类型:Int
- 单位:-
- 是否可变:是
- 描述:向 FE 报告 exec rpc 请求的 rpc 请求的重试次数。 默认值为 10,这意味着如果 rpc 请求失败,则只会重试 10 次(仅当它是 fragment instatnce 完成 rpc 时)。 报告 exec rpc 请求对于加载作业很重要,如果一个 fragment instance 完成报告失败,则加载作业将挂起直到超时。
- 引入版本:-
load_replica_status_check_interval_ms_on_success
- 默认值:15000
- 类型:Int
- 单位:毫秒
- 是否可变:是
- 描述:如果上次检查 rpc 成功,则辅助副本检查其在主副本上的状态的间隔。
- 引入版本:3.5.1
load_replica_status_check_interval_ms_on_failure
- 默认值:2000
- 类型:Int
- 单位:毫秒
- 是否可变:是
- 描述:如果上次检查 rpc 失败,则辅助副本检查其在主副本上的状态的间隔。
- 引入版本:3.5.1