BE参数配置

本文介绍BE进程的相关配置项。

背景信息

BE进程的配置文件be.conf通常存放在BE部署路径的conf/目录下。而在0.14版本中会引入另一个配置文件be_custom.conf。该配置文件用于记录您在运行时动态配置并持久化的配置项。BE进程启动后,会先读取be.conf中的配置项,之后再读取be_custom.conf中的配置项。be_custom.conf中的配置项会覆盖be.conf中相同的配置项。

查看配置项

您可以通过访问BE的Web页面查看当前配置项:http://be_host:be_webserver_port/varz

设置配置项

BE的配置项有两种方式进行配置:

  • 静态配置

    conf/be.conf文件中添加和设置配置项。be.conf中的配置项会在BE进行启动时被读取。没有在be.conf中的配置项将使用默认值。

  • 动态配置

    BE启动后,可以通过以下命令动态设置配置项:

    curl -X POST http://{be_ip}:{be_http_port}/api/update_config?{key}={value}'

在0.13及之前版本,通过该方式修改的配置项将在BE进程重启后失效。在0.14及之后版本中,可以通过以下命令持久化修改后的配置,修改后的配置项存储在be_custom.conf文件中。

curl -X POST http://{be_ip}:{be_http_port}/api/update_config?{key}={value}&persist=true

应用举例

  • 静态方式修改max_base_compaction_concurrency。在be.cnf文件中添加max_base_compaction_concurrency=5之后,重启BE进程以生效该配置。

  • 动态方式修改streaming_load_max_mb。BE进程启动后,通过以下命令动态设置配置项:

    streaming_load_max_mb:curl -X POST http://{be_ip}:{be_http_port}/api/update_config?streaming_load_max_mb=1024

    返回值如下,则说明设置成功。

    {
        "status": "OK",
        "msg": ""
    }

    BE重启后该配置将失效。如果想持久化修改结果,请用如下命令:

    curl -X POST http://{be_ip}:{be_http_port}/api/update_config?streaming_load_max_mb=1024\&persist=true

配置项列表

alter_tablet_worker_count

  • 默认值:3

  • 说明:进行schema change的线程数。

generate_compaction_tasks_min_interval_ms

  • 默认值:10

  • 说明:生成compaction作业的最小间隔时间。单位:ms。

enable_vectorized_compaction

  • 默认值:true

  • 说明:是否开启向量化compaction。

base_compaction_interval_seconds_since_last_operation

  • 默认值:86400

  • 说明:BaseCompaction触发条件之一,表示上一次BaseCompaction距今的间隔。

base_compaction_num_cumulative_deltas

  • 默认值:5

  • 说明:BaseCompaction触发条件之一,表示Cumulative文件数目要达到的限制,达到这个限制之后会触发BaseCompaction。

base_compaction_write_mbytes_per_sec

  • 默认值:5

  • 说明:BaseCompaction任务每秒写磁盘最大速度。单位:MB。

base_cumulative_delta_ratio

  • 默认值:0.3

  • 说明:BaseCompaction触发条件之一,Cumulative文件大小达到Base文件的比例。

base_compaction_trace_threshold

  • 默认值:10

  • 类型:Int32

  • 说明:打印Base compaction的trace信息的阈值。单位:秒。

Base compaction是一个耗时较长的后台操作,为了跟踪其运行信息,可以调整这个阈值参数来控制trace日志的打印。打印信息如下:

W0610 11:26:33.804431 56452 storage_engine.cpp:552] Trace:
0610 11:23:03.727535 (+     0us) storage_engine.cpp:554] start to perform base compaction
0610 11:23:03.728961 (+  1426us) storage_engine.cpp:560] found best tablet 546859
0610 11:23:03.728963 (+     2us) base_compaction.cpp:40] got base compaction lock
0610 11:23:03.729029 (+    66us) base_compaction.cpp:44] rowsets picked
0610 11:24:51.784439 (+108055410us) compaction.cpp:46] got concurrency lock and start to do compaction
0610 11:24:51.784818 (+   379us) compaction.cpp:74] prepare finished
0610 11:26:33.359265 (+101574447us) compaction.cpp:87] merge rowsets finished
0610 11:26:33.484481 (+125216us) compaction.cpp:102] output rowset built
0610 11:26:33.484482 (+     1us) compaction.cpp:106] check correctness finished
0610 11:26:33.513197 (+ 28715us) compaction.cpp:110] modify rowsets finished
0610 11:26:33.513300 (+   103us) base_compaction.cpp:49] compaction finished
0610 11:26:33.513441 (+   141us) base_compaction.cpp:56] unused rowsets have been moved to GC queue
Metrics: {"filtered_rows":0,"input_row_num":3346807,"input_rowsets_count":42,"input_rowsets_data_size":1256413170,"input_segments_num":44,"merge_rowsets_latency_us":101574444,"merged_rows":0,"output_row_num":3346807,"output_rowset_data_size":1228439659,"output_segments_num":6}

be_port

  • 默认值:9060

  • 类型:Int32

  • 说明:BE进程上thrift server的端口号,用于接收来自FE的请求。

be_service_threads

  • 默认值:64

  • 类型:Int32

  • 说明:BE进程上thrift server service的执行线程数,代表可以用于执行FE请求的线程数。

brpc_max_body_size

此配置主要用来修改brpc的参数max_body_size。有时查询失败,在BE日志中会出现body_size is too large的错误信息。这可能发生在SQL模式为multi distinct、没有group by且涉及表数据量超过1T的情况下。这个错误表示brpc的包大小超过了配置值。此时可以通过调大该配置避免这个错误。

brpc_socket_max_unwritten_bytes

这个配置主要用来修改brpc的参数socket_max_unwritten_bytes。有时查询失败,BE日志中会出现The server is overcrowded的错误信息,表示连接上有过多的未发送数据。当查询需要发送较大的bitmap字段时,可能会遇到该问题,此时可以通过调大该配置避免该错误。

transfer_large_data_by_brpc

  • 默认值:true

  • 类型:Bool

  • 说明:该配置用来控制是否在Tuple或者Block data长度大于1.8 GB时,将protoBuf request序列化后和Tuple或者Block data一起嵌入到controller attachment后通过Http brpc发送。protoBuf request的长度超过2 GB时的,会出现Bad request, error_text=[E1003]Fail to compress request的错误信息。为了避免此错误信息,在过去的版本中,曾将Tuple、Block data放入Attachment后通过默认的baidu_std brpc发送,但Attachment超过2 GB时将被截断,通过Http brpc发送不存在2 GB的限制。

brpc_num_threads

此配置主要用来修改brpc中bthreads的数量。该配置的默认值为-1,这意味着bthreads的数量将被设置为机器的CPU核数。您可以将该配置的值调大以获取更好的QPS性能。更多信息,请参见incubator-brpc使用说明

brpc_port

  • 默认值:8060

  • 类型:Int32

  • 说明:BE进程上的brpc的端口,用于BE进程之间进行通讯。

buffer_pool_clean_pages_limit

  • 默认值:20

  • 说明:清理可能被缓冲池保存的Page。

buffer_pool_limit

  • 默认值:20%

  • 类型:String

  • 说明:buffer pool之中最大的可分配内存。

buffer pool是BE新的内存管理结构,是BE缓存池最大的内存可用量。通过buffer page来进行内存管理,并能够实现数据的落盘。并发的所有查询的内存申请都会通过buffer pool来申请。当前buffer pool仅作用在AggregationNode与ExchangeNode。

check_auto_compaction_interval_seconds

  • 默认值:5

  • 类型:Int32

  • 说明:当自动执行compaction的功能关闭时,检查自动compaction开关是否被开启的时间间隔。

check_consistency_worker_count

  • 默认值:1

  • 说明:计算tablet的校验和checksum的工作线程数。

chunk_reserved_bytes_limit

  • 默认值:20%

  • 类型:Int32

  • 说明:Chunk Allocator的reserved bytes限制,通常被设置为mem_limit的百分比。默认单位:字节,值必须是2的倍数,且必须大于0。如果大于物理内存,将被设置为物理内存大小。增加这个变量可以提高性能,但是会获得更多其他模块无法使用的空闲内存。

clear_transaction_task_worker_count

  • 默认值:1

  • 说明:用于清理事务的线程数。

clone_worker_count

  • 默认值:3

  • 类型:Int32

  • 说明:用于执行克隆任务的线程数。

cluster_id

  • 默认值:-1

  • 类型:Int32

  • 说明:配置BE进程所属的集群Id。

该值通常由FE通过心跳向BE下发,不需要额外进行配置。当确认某BE进程属于某一个确定的Drois集群时,可以进行配置,同时需要修改数据目录下的cluster_id文件,使二者相同。

column_dictionary_key_ratio_threshold

  • 默认值:0

  • 说明:字符串类型的取值比例,小于这个比例采用字典压缩算法。

column_dictionary_key_size_threshold

  • 默认值:0

  • 说明:字典压缩列大小,小于这个值采用字典压缩算法。

compaction_tablet_compaction_score_factor

  • 默认值:1

  • 类型:Int32

  • 说明:选择tablet进行compaction时,计算tablet score的公式中compaction score的权重。

compaction_tablet_scan_frequency_factor

  • 默认值:0

  • 类型:Int32

  • 说明:选择tablet进行compaction时,计算tablet score的公式中tablet scan frequency的权重。

选择一个tablet执行compaction任务时,可以将tablet的scan频率作为一个选择依据,对当前最近一段时间频繁scan的tablet优先执行compaction。tablet score可以通过以下公式计算:

tablet_score = compaction_tablet_scan_frequency_factor tablet_scan_frequency + compaction_tablet_compaction_score_factor compaction_score

compaction_task_num_per_disk

  • 默认值:2

  • 类型:Int32

  • 说明:每个磁盘(HDD)可以并发执行的compaction任务数量。

compaction_task_num_per_fast_disk

  • 默认值:4

  • 类型:Int32

  • 说明:每个高速磁盘(SSD)可以并发执行的compaction任务数量。

compress_rowbatches

  • 默认值:true

  • 类型:Bool

  • 说明:序列化RowBatch时是否使用Snappy压缩算法进行数据压缩。

create_tablet_worker_count

  • 默认值:3

  • 说明:BE创建tablet的工作线程数。

cumulative_compaction_rounds_for_each_base_compaction_round

  • 默认值:9

  • 类型:Int32

  • 说明:Compaction任务的生产者每次连续生产多少轮cumulative compaction任务后生产一轮base compaction。

disable_auto_compaction

  • 默认值:false

  • 类型:Bool

  • 说明:关闭自动执行compaction任务。

一般需要为关闭状态,当调试或测试环境中想要手动操作compaction任务时,可以对该配置进行开启。

cumulative_compaction_budgeted_bytes

  • 默认值:104857600

  • 说明:BaseCompaction触发条件之一,Singleton文件大小限制为100 MB。

cumulative_compaction_trace_threshold

  • 默认值:2

  • 类型:Int32

  • 说明:打印cumulative compaction的trace信息的阈值,单位:秒。

disable_compaction_trace_log

  • 默认值:true

  • 类型:Bool

  • 说明:关闭compaction的trace日志。

如果设置为true,cumulative_compaction_trace_thresholdbase_compaction_trace_threshold将不起作用。并且trace日志将关闭。

cumulative_compaction_policy

  • 默认值:size_based

  • 类型:String

  • 说明:配置cumulative compaction阶段的合并策略,目前实现了两种合并策略:num_based和size_based。取值说明如下:

    • ordinary:最初版本的cumulative compaction合并策略,做一次cumulative compaction之后直接base compaction流程。

    • size_base:是ordinary策略的优化版本,仅当rowset的磁盘体积在相同数量级时才进行版本合并。合并之后满足条件的rowset进行晋升到base compaction阶段。能够做到在大量小批量导入的情况下:降低base compact的写入放大率,并在读取放大率和空间放大率之间进行权衡,同时减少了文件版本的数据。

cumulative_size_based_promotion_size_mbytes

  • 默认值:1024

  • 类型:Int64

  • 说明:在size_based策略下,cumulative compaction的输出rowset总磁盘大小超过了此配置大小,该rowset将用于base compaction。单位是m字节。

一般情况下,配置在2G以内,为了防止cumulative compaction时间过长,导致版本积压。

cumulative_size_based_promotion_ratio

  • 默认值:0.05

  • 类型:Double

  • 说明:在size_based策略下,cumulative compaction的输出rowset总磁盘大小超过base版本rowset的配置比例时,该rowset将用于base compaction。

一般情况下,建议此配置项不要高于0.1且不低于0.02。

cumulative_size_based_promotion_min_size_mbytes

  • 默认值:64

  • 类型:Int32

  • 说明:在size_based策略下,cumulative compaction的输出rowset总磁盘大小低于此配置大小,该rowset将不进行base compaction,仍然处于cumulative compaction流程中。单位是m字节。

一般情况下,建议配置在512 MB以内,配置过大会导致base版本早期的大小过小,一直不进行base compaction。

cumulative_size_based_compaction_lower_size_mbytes

  • 默认值:64

  • 类型:Int64

  • 说明:在size_based策略下,cumulative compaction进行合并时,选出的要进行合并的rowset的总磁盘大小大于此配置时,才按级别策略划分合并。小于这个配置时,直接执行合并。单位是m字节。

一般情况下,配置在128 MB以内,配置过大会导致cumulative compaction写放大较多。

custom_config_dir

配置be_custom.conf文件的位置。默认为conf/目录下。在某些部署环境下,conf/目录可能因为系统的版本升级被覆盖掉。这会导致在运行时,持久化修改的配置项也被覆盖。这时,您可以将be_custom.conf存储在另一个指定的目录中,以防止配置文件被覆盖。

default_num_rows_per_column_file_block

  • 默认值:1024

  • 类型:Int32

  • 说明:配置单个RowBlock之中包含多少行的数据。

default_rowset_type

  • 默认值:BETA

  • 类型:String

  • 说明:标识BE默认选择的存储格式,可配置的参数为ALPHABETA。主要起以下两个作用:

    • 当建表的storage_format设置为Default时,通过该配置来选取BE的存储格式。

    • 进行Compaction时选择BE的存储格式。

delete_worker_count

  • 默认值:3

  • 说明:执行数据删除任务的线程数。

disable_mem_pools

  • 默认值:false

  • 说明:是否禁用内存缓存池,默认不禁用。

disable_storage_page_cache

  • 默认值:false

  • 类型:Bool

  • 说明:是否进行使用page cache进行index的缓存,该配置仅在BETA存储格式时生效。

disk_stat_monitor_interval

  • 默认值:5

  • 说明:磁盘状态检查时间间隔。单位:秒。

doris_cgroups

说明:分配给doris的cgroups。

doris_max_pushdown_conjuncts_return_rate

  • 默认值:90

  • 类型:Int32

  • 说明:BE在进行HashJoin时,会采取动态分区裁剪的方式将join条件下推到OlapScanner上。当OlapScanner扫描的数据大于32768行时,BE会进行过滤条件检查,如果该过滤条件的过滤率低于该配置,则Doris会停止使用动态分区裁剪的条件进行数据过滤。

doris_max_scan_key_num

  • 默认值:1024

  • 类型:Int

  • 说明:用于限制一个查询请求中,Scan node节点能拆分的最大scan key的个数。当一个带有条件的查询请求到达Scan node节点时,Scan node会尝试将查询条件中Key列相关的条件拆分成多个Scan key range。之后这些Scan key range会被分配给多个Scanner线程进行数据扫描。较大的数值通常意味着可以使用更多的Scanner线程来提升扫描操作的并行度。但在高并发场景下,过多的线程可能会带来更大的调度开销和系统负载,反而会降低查询响应速度。一个经验数值为50。

当在高并发场景下发下并发度无法提升时,可以尝试降低该数值并观察影响。

doris_scan_range_row_count

  • 默认值:524288

  • 类型:Int32

  • 说明:BE在进行数据扫描时,会将同一个扫描范围拆分为多个ScanRange。该参数代表了每个ScanRange代表扫描数据范围。通过该参数可以限制单个OlapScanner占用IO线程的时间。

doris_scanner_queue_size

  • 默认值:1024

  • 类型:Int32

  • 说明:TransferThread与OlapScanner之间RowBatch的缓存队列的长度。Doris进行数据扫描时是异步进行的,OlapScanner扫描上来的Rowbatch会放入缓存队列之中,等待上层TransferThread取走。

doris_scanner_row_num

  • 默认值:16384

  • 说明:每个扫描线程单次执行最多返回的数据行数。

doris_scanner_thread_pool_queue_size

  • 默认值:102400

  • 类型:Int32

  • 说明:Scanner线程池的队列长度。在Doris的扫描任务之中,每一个Scanner会作为一个线程task提交到线程池之中等待被调度,而提交的任务数目超过线程池队列的长度之后,后续提交的任务将阻塞直到队列之中有新的空缺。

doris_scanner_thread_pool_thread_num

  • 默认值:48

  • 类型:Int32

  • 说明:Scanner线程池线程数目。在Doris的扫描任务之中,每一个Scanner会作为一个线程task提交到线程池之中等待被调度,该参数决定了Scanner线程池的大小。

download_low_speed_limit_kbps

  • 默认值:50

  • 说明:下载最低限速,单位:KB/s。

download_low_speed_time

  • 默认值:300

  • 说明:下载时间限制,单位:秒。

download_worker_count

  • 默认值:1

  • 说明:下载线程数。

drop_tablet_worker_count

  • 默认值:3

  • 说明:删除tablet的线程数。

enable_metric_calculator

  • 默认值:true

  • 说明:如果设置为true,Metric Calculator将运行,收集BE相关指标信息,如果设置成false将不运行。

enable_partitioned_aggregation

  • 默认值:true

  • 类型:Bool

  • 说明:BE节点是否通过PartitionAggregateNode来实现聚合操作,如果设置为false,将会执行AggregateNode完成聚合。非特殊需求场景不建议设置为false。

enable_prefetch

  • 默认值:true

  • 类型:Bool

  • 说明:当使用PartitionedHashTable进行聚合和join计算时,是否进行HashBuket的预取,推荐设置为true。

enable_quadratic_probing

  • 默认值:true

  • 类型:Bool

  • 说明:当使用PartitionedHashTable时发生Hash冲突时,是否采用平方探测法来解决Hash冲突。该值为false的话,则选用线性探测发来解决Hash冲突。关于平法探测法,详情请参见quadratic_probing

enable_system_metrics

  • 默认值:true

  • 说明:控制打开和关闭系统指标。

enable_token_check

  • 默认值:true

  • 说明:用于向前兼容,稍后将被删除。

enable_stream_load_record

  • 默认值:false

  • 说明:是否开启stream load操作记录,默认不启用。

es_http_timeout_ms

  • 默认值:5000

  • 说明:通过HTTP连接ES的超时时间。单位:ms。

es_scroll_keepalive

  • 默认值:5

  • 说明:es scroll Keeplive的保持时间。单位:分钟。

etl_thread_pool_queue_size

  • 默认值:256

  • 说明:ETL线程池的大小。

exchg_node_buffer_size_bytes

  • 默认值:10485760

  • 类型:Int32

  • 说明:ExchangeNode节点Buffer队列的大小,单位为byte。来自Sender端发送的数据量大于ExchangeNode的Buffer大小之后,后续发送的数据将阻塞直到Buffer腾出可写入的空间。

file_descriptor_cache_capacity

  • 默认值:32768

  • 说明:文件句柄缓存的容量,默认缓存32768个文件句柄。

cache_clean_interval

  • 默认值:1800

  • 说明:文件句柄缓存清理的间隔,用于清理长期不用的文件句柄。 同时也是Segment Cache的清理间隔时间。单位:秒。

flush_thread_num_per_store

  • 默认值:2

  • 说明:每个store用于刷新内存表的线程数。

fragment_pool_queue_size

  • 默认值:2048

  • 说明:单节点上能够处理的查询请求上限。

fragment_pool_thread_num_min

  • 默认值:64

  • 说明:fragment执行线程池最小线程数。

fragment_pool_thread_num_max

  • 默认值:256

  • 说明:查询线程数,默认最小启动64个线程,后续查询请求动态创建线程,最大创建256个线程。

heartbeat_service_port

  • 默认值:9050

  • 类型:Int32

  • 说明:BE上心跳服务端口(thrift),用于接收来自FE的心跳。

heartbeat_service_thread_count

  • 默认值:1

  • 类型:Int32

  • 说明:执行BE上心跳服务的线程数,不建议修改默认值。

ignore_broken_disk

  • 默认值:false

  • 说明:当BE启动时,会检查storage_root_path配置下的所有路径。

    • ignore_broken_disk设置为true时,如果路径不存在或路径下无法进行读写文件(坏盘),将忽略此路径,如果有其他可用路径则不中断启动。

    • ignore_broken_disk设置为false时,如果路径不存在或路径下无法进行读写文件(坏盘),将中断启动失败退出。

ignore_load_tablet_failure

  • 默认值:false

  • 类型:Bool

  • 说明:用来决定在有tablet加载失败的情况下是否忽略错误,继续启动BE。

BE启动时,会对每个数据目录单独启动一个线程进行tablet header元信息的加载。默认配置下,如果某个数据目录有tablet加载失败,则启动进程会终止。同时会在be.INFO日志中看到如下错误信息:

load tablets from header failed, failed tablets size: xxx, path=xxx

表示该数据目录共有多少tablet加载失败。同时,日志中也会有加载失败的tablet的具体信息。此时需要人工介入来对错误原因进行排查。排查后,通常有两种方式进行恢复:

  • tablet信息不可修复,在确保其他副本正常的情况下,可以通过meta_tool工具将错误的tablet删除。

  • 将ignore_load_tablet_failure设置为true,则BE会忽略这些错误的tablet,正常启动。

ignore_rowset_stale_unconsistent_delete

  • 默认值:false

  • 类型:Bool

  • 说明:用来决定当删除过期的合并过的rowset后无法构成一致的版本路径时,是否仍要删除。

合并的过期rowset版本路径会在半个小时后进行删除。在异常下,删除这些版本会出现构造不出查询一致路径的问题,当配置为false时,程序检查比较严格,程序会直接报错退出。 当配置为true时,程序会正常运行,忽略这个错误。一般情况下,忽略这个错误不会对查询造成影响,仅会在fe下发了合并过的版本时出现-230错误。

inc_rowset_expired_sec

  • 默认值:1800

  • 说明:导入激活的数据,存储引擎保留的时间,用于增量克隆。单位:秒。

index_stream_cache_capacity

  • 默认值:10737418240

  • 说明:BloomFilter、Min、Max等统计信息缓存的容量。

kafka_api_version_request

  • 默认值:true

  • 说明:如果依赖的kafka版本低于0.10.0.0,该值应该被设置为false。

kafka_broker_version_fallback

  • 默认值:0.10.0

  • 说明:如果依赖的kafka版本低于0.10.0.0,当kafka_api_version_request值为false的时候,将使用回退版本kafka_broker_version_fallback设置的值,有效值为:0.9.0.x、0.8.x.y。

load_data_reserve_hours

  • 默认值:4

  • 说明:用于mini load。mini load数据文件将在此时间后被删除。单位:小时。

load_error_log_reserve_hours

  • 默认值:48

  • 说明:load错误日志将在此时间后删除。单位:小时。

load_process_max_memory_limit_bytes

  • 默认值:107374182400

  • 说明:单节点上所有的导入线程占据的内存上限,默认值:100G。将这些默认值设置得很大,是为了在您升级Doris时提供更好的负载性能。

load_process_max_memory_limit_percent

  • 默认值:80

  • 说明:单节点上所有的导入线程占据的内存上限比例,默认80%。将这些默认值设置得很大,是为了在您升级Doris时提供更好的负载性能。

log_buffer_level

说明:日志刷盘的策略,默认保持在内存中。

madvise_huge_pages

  • 默认值:false

  • 说明:是否使用Linux内存大页,默认不启用。

make_snapshot_worker_count

  • 默认值:5

  • 说明:制作快照的线程数。

max_client_cache_size_per_host

  • 默认值:10

  • 说明:每个主机的最大客户端缓存数,BE中有多种客户端缓存,但目前我们使用相同的缓存大小配置。如有必要,使用不同的配置来设置不同的客户端缓存。

max_base_compaction_threads

  • 默认值:4

  • 类型:Int32

  • 说明:Base Compaction线程池中线程数量的最大值。

max_cumu_compaction_threads

  • 默认值:10

  • 类型:Int32

  • 说明:Cumulative Compaction线程池中线程数量的最大值。

max_consumer_num_per_group

  • 默认值:3

  • 说明:一个数据消费者组中的最大消费者数量,用于routine load。

min_cumulative_compaction_num_singleton_deltas

  • 默认值:5

  • 说明:Cumulative Compaction策略,表示最小增量文件的数量。

max_cumulative_compaction_num_singleton_deltas

  • 默认值:1000

  • 说明:Cumulative Compaction策略,表示最大增量文件的数量。

max_download_speed_kbps

  • 默认值:50000

  • 说明:最大下载速度限制。单位:kb/s。

max_free_io_buffers

  • 默认值:128

  • 说明:对于每个io缓冲区大小,IoMgr将保留的最大缓冲区数从1024B到8MB的缓冲区,最多约为2GB的缓冲区。

max_garbage_sweep_interval

  • 默认值:3600

  • 说明:磁盘进行垃圾清理的最大间隔,默认一个小时。

max_memory_sink_batch_count

  • 默认值:20

  • 说明:最大外部扫描缓存批次计数,表示缓存max_memory_cache_batch_count batch_size row,默认为20,batch_size的默认值为1024,表示将缓存20次,每次1024行。

max_percentage_of_error_disk

  • 默认值:0

  • 类型:Int32

  • 说明:存储引擎允许存在损坏硬盘的百分比,损坏硬盘超过改比例后,BE将会自动退出。

max_pushdown_conditions_per_column

  • 默认值:1024

  • 类型:Int

  • 说明:用于限制一个查询请求中,针对单个列,能够下推到存储引擎的最大条件数量。在查询计划执行的过程中,一些列上的过滤条件可以下推到存储引擎,这样可以利用存储引擎中的索引信息进行数据过滤,减少查询需要扫描的数据量。比如等值条件、IN 谓词中的条件等。这个参数在绝大多数情况下仅影响包含 IN 谓词的查询。例如WHERE colA IN (1,2,3,4,...)。较大的数值意味值 IN 谓词中更多的条件可以推送给存储引擎,但过多的条件可能会导致随机读的增加,某些情况下可能会降低查询效率。该配置可以单独进行会话级别的配置 。

示例表结构为id INT, col2 INT, col3 varchar(32), ...。查询请求为... WHERE id IN (v1, v2, v3, ...)。如果IN谓词中的条件数量超过了该配置,则可以尝试增加该配置值,观察查询响应是否有所改善。

max_runnings_transactions_per_txn_map

  • 默认值:100

  • 说明:txn管理器中每个txn_partition_map的最大txns数,这是一种自我保护,以避免在管理器中保存过多的txns。

max_send_batch_parallelism_per_job

  • 默认值:5

  • 类型:Int

  • 说明:OlapTableSink发送批处理数据的最大并行度,为send_batch_parallelism设置的值不允许超过 max_send_batch_parallelism_per_job,如果超过那么send_batch_parallelism将被设置为max_send_batch_parallelism_per_job的值。

max_tablet_num_per_shard

  • 默认值:1024

  • 说明:每个shard的tablet数目,用于划分tablet,防止单个目录下tablet子目录过多。

max_tablet_version_num

  • 默认值:500

  • 类型:Int

  • 说明:限制单个tablet最大version的数量。用于防止导入过于频繁,或compaction不及时导致的大量version堆积问题。当超过限制后,导入任务将被拒绝。

mem_limit

  • 默认值:80%

  • 类型:String

  • 说明:限制BE进程使用服务器最大内存百分比。用于防止BE内存挤占太多的机器内存,该参数必须大于0,当百分大于100%之后,该值会默认为100%。

memory_limitation_per_thread_for_schema_change

  • 默认值:2

  • 说明:单个schema change任务允许占用的最大内存。单位:GB。

memory_maintenance_sleep_time_s

  • 默认值:10

  • 说明:内存维护迭代之间的休眠时间。单位:秒。

memory_max_alignment

  • 默认值:16

  • 说明:最大校对内存。

read_size

  • 默认值:8388608

  • 说明:读取大小是发送到OS的读取大小。 在延迟和整个过程之间进行权衡,试图让磁盘保持忙碌但不引入磁盘寻址。 对于8 MB读取,随机IO和顺序IO的性能相似。

min_buffer_size

  • 默认值:1024

  • 说明:最小读取缓冲区大小。单位:字节。

min_compaction_failure_interval_sec

  • 默认值:5

  • 类型:Int32

  • 说明:在Cumulative Compaction过程中,当选中tablet没能成功的进行版本合并,则会等待一段时间后才会再次有可能被选中。等待的这段时间就是这个配置的值。单位:秒。

min_compaction_threads

  • 默认值:10

  • 类型:Int32

  • 说明:Compaction线程池中线程数量的最小值。

min_file_descriptor_number

  • 默认值:60000

  • 说明:BE进程的文件句柄limit要求的下限。

min_garbage_sweep_interval

  • 默认值:180

  • 说明:磁盘进行垃圾清理的最小时间间隔,单位:秒。

mmap_buffers

  • 默认值:false

  • 说明:是否使用mmap分配内存,默认不使用。

num_cores

  • 默认值:0

  • 类型:Int32

  • 说明:BE可以使用CPU的核数。当该值为0时,BE将从/proc/cpuinfo之中获取本机的CPU核数。

num_disks

  • 默认值:0

  • 说明:控制机器上的磁盘数量。 如果为0,则来自系统设置。

num_threads_per_core

  • 默认值:3

  • 说明:控制每个内核运行工作的线程数。 通常选择2倍或3倍的内核数量。 这使核心保持忙碌而不会导致过度抖动。

num_threads_per_disk

  • 默认值:0

  • 说明:每个磁盘的最大线程数也是每个磁盘的最大队列深度。

number_tablet_writer_threads

  • 默认值:16

  • 说明:tablet写线程数。

path_gc_check

  • 默认值:true

  • 说明:是否启用回收扫描数据线程检查,默认启用。

path_gc_check_interval_second

  • 默认值:86400

  • 说明:回收扫描数据线程检查时间间隔,单位:秒。

path_gc_check_step

  • 默认值:1000

  • 说明:gc检查的步长。

path_gc_check_step_interval_ms

  • 默认值:10

  • 说明:两次gc检查之间的时间间隔。

path_scan_interval_second

  • 默认值:86400

  • 说明:gc前路径扫描的时间间隔。

pending_data_expire_time_sec

  • 默认值:1800

  • 说明:存储引擎保留的未生效数据的最大时长,默认单位:秒。

periodic_counter_update_period_ms

  • 默认值:500

  • 说明:更新速率计数器和采样计数器的周期,默认单位:毫秒。

plugin_path

  • 默认值:${DORIS_HOME}/plugin

  • 说明:插件路径。

port

  • 默认值:20001

  • 类型:Int32

  • 说明:BE单测时使用的端口。

pprof_profile_dir

  • 默认值:${DORIS_HOME}/log

  • 说明:pprof profile保存目录。

priority_networks

为一些有很多IP的服务器声明一个选择策略。 请注意,最多应该有一个IP与此列表匹配。 这是一个以分号分隔格式的列表,用CIDR表示法,例如:10.10.10.0/24 , 如果没有匹配这条规则的IP,会随机选择一个。

priority_queue_remaining_tasks_increased_frequency

  • 默认值:512

  • 说明:BlockingPriorityQueue中任务优先级的调整频率。

publish_version_worker_count

  • 默认值:8

  • 说明:生效版本的线程数。

pull_load_task_dir

  • 默认值:${DORIS_HOME}/var/pull_load

  • 说明:拉取Laod任务的目录。

push_worker_count_high_priority

  • 默认值:3

  • 说明:导入线程数,用于处理HIGH优先级任务。

push_worker_count_normal_priority

  • 默认值:3

  • 说明:导入线程数,用于处理NORMAL优先级任务。

push_write_mbytes_per_sec

  • 默认值:10

  • 类型:Int32

  • 说明:导入数据速度控制,默认最快每秒10MB。适用于所有的导入方式。单位:MB。

query_scratch_dirs

  • 默认值:${DORIS_HOME}

  • 类型:String

  • 说明:BE进行数据落盘时选取的目录来存放临时数据,与存储路径配置类似,多目录之间用分号(;)分隔。

release_snapshot_worker_count

  • 默认值:5

  • 说明:释放快照的线程数。

report_disk_state_interval_seconds

  • 默认值:60

  • 说明:代理向FE报告磁盘状态的间隔时间。单位:秒。

report_tablet_interval_seconds

  • 默认值:60

  • 说明:代理向FE报告olap表的间隔时间。单位:秒。

report_task_interval_seconds

  • 默认值:10

  • 说明:代理向FE报告任务签名的间隔时间。单位:秒。

result_buffer_cancelled_interval_time

  • 默认值:300

  • 说明:结果缓冲区取消时间。单位:秒。

routine_load_thread_pool_size

  • 默认值:10

  • 说明:routine load任务的线程池大小。 这应该大于FE配置的max_concurrent_task_num_per_be(默认 5)。

row_nums_check

  • 默认值:true

  • 说明:检查BE、CE和schema更改的行号。 true是打开的,false是关闭的。

row_step_for_compaction_merge_log

  • 默认值:0

  • 类型:Int64

  • 可动态修改:是

  • 说明:Compaction执行过程中,每次合并row_step_for_compaction_merge_log行数据会打印一条LOG。如果该参数被设置为0,表示merge过程中不需要打印LOG。

scan_context_gc_interval_min

  • 默认值:5

  • 说明:此配置用于上下文gc线程调度周期。单位:分钟。

send_batch_thread_pool_thread_num

  • 默认值:256

  • 类型:Int32

  • 说明:SendBatch线程池线程数目。在NodeChannel的发送数据任务之中,每一个NodeChannel的SendBatch操作会作为一个线程task提交到线程池之中等待被调度,该参数决定了SendBatch线程池的大小。

send_batch_thread_pool_queue_size

  • 默认值:102400

  • 类型:Int32

  • 说明:SendBatch线程池的队列长度。在NodeChannel的发送数据任务之中,每一个NodeChannel的SendBatch操作会作为一个线程task提交到线程池之中等待被调度,而提交的任务数目超过线程池队列的长度之后,后续提交的任务将阻塞直到队列之中有新的空缺。

serialize_batch

  • 默认值:false

  • 说明:BE之间rpc通信是否序列化RowBatch,用于查询层之间的数据传输。

sleep_one_second

  • 默认值:1

  • 类型:Int32

  • 说明:全局变量,用于BE线程休眠1秒,不应该被修改。

small_file_dir

  • 默认值:${DORIS_HOME}/lib/small_file/

  • 说明:用于保存SmallFileMgr下载的文件的目录。

snapshot_expire_time_sec

  • 默认值:172800

  • 说明:快照文件清理的间隔,默认值:48小时。

status_report_interval

  • 默认值:5

  • 说明:配置文件报告之间的间隔。单位:秒。

storage_flood_stage_left_capacity_bytes

  • 默认值:1073741824

  • 说明:数据目录应该剩下的最小存储空间,默认1 GB。

storage_flood_stage_usage_percent

  • 默认值:95

  • 说明:数据目录的最大已用容量百分比。storage_flood_stage_usage_percentstorage_flood_stage_left_capacity_bytes两个配置限制了数据目录的磁盘容量的最大使用。如果这两个阈值都达到,则无法将更多数据写入该数据目录。

storage_medium_migrate_count

  • 默认值:1

  • 说明:要克隆的线程数。

storage_page_cache_limit

  • 默认值:20%

  • 说明:缓存存储页大小。

storage_page_cache_shard_size

  • 默认值:16

  • 说明:StoragePageCache的分片大小,值为 2^n (n=0,1,2,...)。建议设置为接近BE CPU核数的值,可减少StoragePageCache的锁竞争。

index_page_cache_percentage

  • 默认值:10

  • 类型:Int32

  • 说明:索引页缓存占总页面缓存的百分比,取值为[0, 100]。

storage_root_path

  • 默认值:${DORIS_HOME}

  • 类型:String

  • 说明:BE数据存储的目录,多目录之间用英文状态的分号(;)分隔。可以通过路径区别存储目录的介质,HDD或SSD。可以添加容量限制在每个路径的末尾,通过英文状态逗号(,)隔开。 如果不是SSD和HDD磁盘混合使用的情况,不需要按照如下示例一和示例二的配置方法配置,只需指定存储目录即可;也不需要修改FE的默认存储介质配置。

    • 示例一:storage_root_path=/home/disk1/doris.HDD;/home/disk2/doris.SSD;/home/disk2/doris,如果是SSD磁盘要在目录后面加上.SSD,HDD磁盘在目录后面加.HDD。

    • 示例二:storage_root_path=/home/disk1/doris,medium:hdd;/home/disk2/doris,不论HHD磁盘目录还是SSD磁盘目录,文件夹目录名称都无需添加后缀,storage_root_path参数里指定medium即可。

      说明

      medium:ssd说明如下:

      • /home/disk1/doris.HDD,表示存储介质是HDD。

      • /home/disk2/doris.SSD,表示存储介质是SSD。

      • /home/disk2/doris,存储介质默认为HDD。

      • /home/disk1/doris,medium:hdd,表示存储介质是HDD。

      • /home/disk2/doris,medium:ssd,表示存储介质是SSD。

storage_strict_check_incompatible_old_format

  • 默认值:true

  • 类型:Bool

  • 可动态修改:否

  • 说明:用来检查不兼容的旧版本格式时是否使用严格的验证方式。

配置用来检查不兼容的旧版本格式时是否使用严格的验证方式,当含有旧版本的hdr格式时,使用严谨的方式时,程序会打出fatal log并且退出运行;否则,程序仅打印warn log。

streaming_load_max_mb

  • 默认值:10240

  • 类型:Int64

  • 可动态修改:是

  • 说明:用于限制数据格式为csv的一次Stream Load导入中允许的最大数据量。单位:MB。

Stream Load一般适用于导入几个GB以内的数据,不适合导入过大的数据。

streaming_load_json_max_mb

  • 默认值:100

  • 类型:Int64

  • 可动态修改:是

  • 说明:用于限制数据格式为JSON Stream Load导入中,允许的最大数据量。单位:MB。

一些数据格式,如JSON,无法进行拆分处理,必须读取全部数据到内存后才能开始解析,因此,这个值用于限制此类格式数据单次导入最大数据量。

streaming_load_rpc_max_alive_time_sec

  • 默认值:1200

  • 说明:TabletsChannel的存活时间。如果此时通道没有收到任何数据, 通道将被删除。

sync_tablet_meta

  • 默认值:false

  • 说明:存储引擎是否开sync保留到磁盘上。

sys_log_dir

  • 默认值:${DORIS_HOME}/log

  • 类型:String

  • 说明:BE日志数据的存储目录。

sys_log_level

  • 默认值:INFO

  • 说明:日志级别。日志级别从低到高的顺序为:INFO<WARNING<ERROR<FATAL。

sys_log_roll_mode

  • 默认值:SIZE-MB-1024

  • 说明:日志拆分的大小,每1 GB拆分一个日志文件。

sys_log_roll_num

  • 默认值:10

  • 说明:日志文件保留的数目。

sys_log_verbose_level

  • 默认值:10

  • 说明:日志显示的级别,用于控制代码中VLOG开头的日志输出。

sys_log_verbose_modules

日志打印的模块,写olap就只打印olap模块下的日志。

tablet_map_shard_size

  • 默认值:1

  • 说明:tablet_map_lock分片大小,值为 2^n, n=0,1,2,3,4 ,这是为了更好地管理tablet。

tablet_meta_checkpoint_min_interval_secs

  • 默认值:600

  • 说明:TabletMeta Checkpoint线程轮询的时间间隔。单位:秒。

tablet_meta_checkpoint_min_new_rowsets_num

  • 默认值:10

  • 说明:TabletMeta Checkpoint的最小Rowset数目。

tablet_scan_frequency_time_node_interval_second

  • 默认值:300

  • 类型:Int64

  • 说明:用来表示记录metric发生query_scan_count的时间间隔。为了计算当前一段时间的tablet的scan频率,需要每隔一段时间记录一次metric的query_scan_count。

tablet_stat_cache_update_interval_second

  • 默认值:300

  • 说明:tablet状态缓存的更新间隔,单位:秒。

tablet_rowset_stale_sweep_time_sec

  • 默认值:1800

  • 类型:Int64

  • 说明:用来表示清理合并版本的过期时间,当当前时间now() 减去一个合并的版本路径中rowset最近创建时间大于tablet_rowset_stale_sweep_time_sec时,对当前路径进行清理,删除这些合并过的rowset,单位为秒。

当写入过于频繁,磁盘空间不足时,可以配置较少这个时间。不过这个时间过短小于5分钟时,可能会引发FE查询不到已经合并过的版本,引发查询-230错误。

tablet_writer_open_rpc_timeout_sec

  • 默认值:60

  • 说明:在远程BE 中打开tablet writer的rpc超时。 操作时间短,可设置短超时时间导入过程中,发送一个 Batch(1024行)的RPC超时时间。默认60秒。因为该RPC可能涉及多个分片内存块的写盘操作,所以可能会因为写盘导致RPC超时,可以适当调整这个超时时间来减少超时错误(如 send batch fail 错误)。同时,如果调大write_buffer_size配置,也需要适当调大这个参数。

tablet_writer_ignore_eovercrowded

  • 默认值:false

  • 类型:Bool

  • 说明:写入时可忽略brpc的'[E1011]The server is overcrowded'错误。

当遇到'[E1011]The server is overcrowded'的错误时,可以调整配置项brpc_socket_max_unwritten_bytes,但这个配置项不能动态调整。所以可通过设置此项为true来临时避免写失败。注意,此配置项只影响写流程,其他的rpc请求依旧会检查是否overcrowded。

tc_free_memory_rate

  • 默认值:20

  • 说明:可用内存,取值范围:[0-100]。

tc_max_total_thread_cache_bytes

  • 默认值:1073741824

  • 类型:Int64

  • 说明:用来限制tcmalloc中总的线程缓存大小。这个限制不是硬限,因此实际线程缓存使用可能超过这个限制。详情请参见TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES

如果发现系统在高压力场景下,通过BE线程堆栈发现大量线程处于tcmalloc的锁竞争阶段,如大量的SpinLock相关堆栈,则可以尝试增大该参数来提升系统性能。

tc_use_memory_min

  • 默认值:10737418240

  • 说明:TCmalloc的最小内存,当使用的内存小于这个时,不返回给操作系统。

thrift_client_retry_interval_ms

  • 默认值:1000

  • 类型:Int64

  • 说明:用来为be的thrift客户端设置重试间隔,避免fe的thrift server发生雪崩问题,单位:ms。

thrift_connect_timeout_seconds

  • 默认值:3

  • 说明:默认thrift客户端连接超时时间。单位:秒。

thrift_rpc_timeout_ms

  • 默认值:5000

  • 说明:thrift默认超时时间。单位:ms。

thrift_server_type_of_fe

该配置表示FE的Thrift服务使用的服务模型, 类型为string, 大小写不敏感,该参数需要和fe的thrift_server_type参数的设置保持一致。目前该参数的取值有两个:THREADED和THREAD_POOL。

  • 若该参数为THREADED,该模型为非阻塞式I/O模型。

  • 若该参数为THREAD_POOL,该模型为阻塞式I/O模型

total_permits_for_compaction_score

  • 默认值:10000

  • 类型:Int64

  • 可动态修改:是

  • 说明:被所有的compaction任务所能持有的permits上限,用来限制compaction占用的内存。

trash_file_expire_time_sec

  • 默认值:259200

  • 说明:回收站清理的间隔,当磁盘空间不足时,trash下的文件保存期可不遵守此参数。

txn_commit_rpc_timeout_ms

  • 默认值:10000

  • 说明:txn提交rpc超时时间。

txn_map_shard_size

  • 默认值:128

  • 说明:txn_map_lock分片大小,取值为2^n,n=0,1,2,3,4。这是一项增强功能,可提高管理txn的性能。

txn_shard_size

  • 默认值:1024

  • 说明:txn_lock分片大小,取值为2^n,n=0,1,2,3,4, 这是一项增强功能,可提高提交和发布txn的性能。

unused_rowset_monitor_interval

  • 默认值:30

  • 说明:清理过期Rowset的时间间隔。单位:秒。

upload_worker_count

  • 默认值:1

  • 说明:上传文件最大线程数。

use_mmap_allocate_chunk

  • 默认值:false

  • 说明:是否使用mmap分配块。 如果启用此功能,建议增加vm.max_map_count的值,其默认值为65530。您可以通过 sysctl -w vm.max_map_count=262144echo 262144 > /proc/sys/vm/max_map_count命令以root身份进行操作max_map_count,当这个设置生效时,您必须将chunk_reserved_bytes_limit设置为一个相对较大的数字,否则性能可能非常差。

user_function_dir

  • 默认值:${DORIS_HOME}/lib/udf

  • 说明:udf函数目录。

webserver_num_workers

  • 默认值:48

  • 说明:webserver默认工作线程数。

webserver_port

  • 默认值:8040

  • 类型:Int32

  • 说明:BE上的http server的服务端口。

write_buffer_size

  • 默认值:104857600

  • 说明:刷写前缓冲区的大小导入数据在BE上会先写入到一个内存块,当这个内存块达到阈值后才会写回磁盘。默认大小是100 MB。过小的阈值可能导致BE上存在大量的小文件。可以适当提高这个阈值减少文件数量。但过大的阈值可能导致RPC超时。

zone_map_row_num_threshold

  • 默认值:20

  • 类型:Int32

  • 说明:如果一个page中的行数小于这个值就不会创建zonemap,用来减少数据膨胀。

aws_log_level

  • 默认值:3

  • 类型:Int32

  • 说明:AWS SDK 的日志级别。示例如下:

    Off = 0,
       Fatal = 1,
       Error = 2,
       Warn = 3,
       Info = 4,
       Debug = 5,
       Trace = 6

enable_tcmalloc_hook

  • 默认值:true

  • 类型:Bool

  • 说明:是否Hook TCmalloc new/delete,目前在Hook中统计thread local MemTracker。

mem_tracker_consume_min_size_bytes

  • 默认值:1048576

  • 类型:Int32

  • 说明:TCMalloc Hook consume/release MemTracker时的最小长度,小于该值的consume size会持续累加,避免频繁调用MemTracker的consume/release,减小该值会增加consume/release的频率,增大该值会导致MemTracker统计不准,理论上一个MemTracker的统计值与真实值相差 = (mem_tracker_consume_min_size_bytes × 这个MemTracker所在的BE线程数)。

max_segment_num_per_rowset

  • 默认值:200

  • 类型:Int32

  • 说明:用于限制导入时,新产生的rowset中的segment数量。如果超过阈值,导入会失败并报错 -238。过多的segment会导致compaction占用大量内存引发OOM错误。

remote_storage_read_buffer_mb

  • 默认值:16

  • 类型:Int32

  • 说明:读取hdfs或者对象存储上的文件时,使用的缓存大小。单位:MB。增大这个值可以减少远端数据读取的调用次数,但会增加内存开销。

external_table_connect_timeout_sec

  • 默认值:5

  • 类型:Int32

  • 说明:和外部表建立连接的超时时间。单位:秒。

segment_cache_capacity

  • 默认值:1000000

  • 类型:Int32

  • 说明:Segment Cache缓存的Segment最大数量。

默认值目前只是一个经验值,可能需要根据实际场景修改。增大该值可以缓存更多的segment从而避免一些IO。减少该值则会降低内存使用。

auto_refresh_brpc_channel

  • 默认值:false

  • 类型:Bool

  • 说明:获取brpc连接时,通过hand_shake rpc判断连接的可用性,如果不可用则重新建立连接。

high_priority_flush_thread_num_per_store

  • 默认值:1

  • 类型:Int32

  • 说明:每个存储路径所分配的用于高优导入任务的flush线程数量。

routine_load_consumer_pool_size

  • 默认值:10

  • 类型:Int32

  • 说明:routine load所使用的data consumer的缓存数量。

load_task_high_priority_threshold_second

  • 默认值:120

  • 类型:Int32

  • 说明:当一个导入任务的超时时间小于这个阈值是,Doris将认为他是一个高优任务。高优任务会使用独立的flush线程池。

min_load_rpc_timeout_ms

  • 默认值:20

  • 类型:Int32

  • 说明:load作业中各个rpc的最小超时时间。

doris_scan_range_max_mb

  • 默认值:1024

  • 类型:Int32

  • 说明:每个OlapScanner读取的最大数据量。

string_type_length_soft_limit_bytes

  • 默认值:1048576

  • 类型:Int32

  • 说明:String类型最大长度的软限。单位:字节。

enable_quick_compaction

  • 默认值:false

  • 类型:Bool

  • 说明:是否开启quick_compaction,主要用在小数据量频繁导入的场景,通过快速compaction的机制及时合并导入版本可以有效避免-235的问题,小数据量的定义目前是根据行数来定义。

quick_compaction_max_rows

  • 默认值:1000

  • 类型:Int32

  • 说明:当导入的行数小于这个值认为这次导入是小数据量的导入,在快速合并时会被选中。

quick_compaction_batch_size

  • 默认值:10

  • 类型:Int32

  • 说明:快速合并的触发时机,导入次数达到quick_compaction_batch_size时触发一次。

quick_compaction_min_rowsets

  • 默认值:10

  • 类型:Int32

  • 说明:最少进行合并的版本数,当选中的小数据量的rowset个数,大于这个值是才会进行真正的合并。