技术参数(GUC)

Domino 流计算引擎提供了丰富的 GUC 参数,用于精细控制组件行为。

Kernel GUC

参数 说明
mx_stream_default_version 默认版本,设为 2 则默认创建 v2 流。
mx_stream_internal_modify 流计算内部使用。控制是否允许向流表写入数据。
mx_stream_debug_snapshot 是否打印历史快照 debug 信息。
mx_stream_wal_keep_size Domino v1/v2 XLog日志保留最大值,超出该值流(v1)或者解码器(v2)失效。
mx_stream_enable_segment_set_launch 是否只在所在 segment_set 节点启动流计算。
mx_enable_stream Domino v1 全局开关。
mx_stream_set_do_not_stream 用于控制 REFRESH STREAM 所产生的 change 不要参与到下游的流计算当中。
mx_max_number_streams Domino v1 允许的最大流数量。
mx_stream_worker_launch_timeout Domino v1 流计算进程出错后,等待多久再次启动,默认 1 分钟。
mx_stream_gc_period Domino v1 检查和处理泄漏流进度或者 slot 的周期,默认 5 分钟,设为 0 关闭。
mx_stream_base_backup_timeout basebackup 等待流计算进度追上 startptr 的时长,超过该时长放弃 basebackup。
mx_stream_message_level Domino v1 日志级别。

Domino v1 GUC

参数 说明
mxstream.debug_tuple_decoding 控制 v1 是否打印解码 debug 信息。
mxstream.enable_sharescan 控制 v1 是否启用 sharescan。
mxstream.debug_plan 控制 v1 在创建流时打印 plan 的 explain 信息。
mxstream.debug_plan_costs / mxstream.debug_plan_verbose 控制 v1 在创建流时打印 plan 的 explain 信息中包含哪些信息。
mxstream.skip_decode 控制当前会话写入的内容不参与到流计算,v1 和 v2 都适用。
mxstream.scan_xlog_size_limit 控制 v1 一次流计算解码多少 XLog。
mxstream.scan_tuples_limit 控制 v1 一次流计算扫描多少 Tuple。
mxstream.skip_valid_xlog 控制 v1 流计算解码时跳过无关记录的 CRC 校验。

Domino v2 GUC

参数 说明
domino.debug / domino.debug2 开启/关闭调试日志。
domino.decode_interval 控制解码器解码间隔,仅当解码延迟低于该值时有效,如果已经超过该值则尽快解码。
domino.enabled domino v2 全局开关,控制是否启动 domino ticker 和 scheduler 进程。在 6.3.X 版本中默认为 off,需要重启生效。
domino.max_number_decoders v2 解码器最大数量,每个数据库用一个解码器,最多支持这么多个数据库。
domino.max_workers 控制 domino v2 worker 数量。假如多个数据库都有流表,则 worker 是多个数据库共享的。
domino.max_streams 控制domino v2 流数量上限,默认 1024。注意,这个是用于控制共享内存等大小,不是推荐创建 1024 个流。
domino.job_retry_timeout_ms 控制流运行出错后等多久重试,默认为 60s。
domino.scan_limit 一次扫描多少个 tick。有效值:-1 代表不限制;1 代表 1 个 tick。
domino.scan_interval 流计算两次 scan 之间的最小间隔,仅在流延迟小于 decode_interval + scan_interval 时生效。
domino.ticker_interval_mb / domino.ticker_interval_ms ticker 创建 tick 的间隔,等待多久或者 xlog 增大多少。
domino.tlog_keep_size (MB) 为流计算保留多少 TLog,如果流计算进度跟不上解码进度导致 TLog 保留量超出该值则该流不再保留 TLog,该流会报错“could not open tlog file ...”
domino.worker_timeout_ms 流计算进程工作多长时间后自动重启。
domino.streaming_leaf 试验特性 控制最后一层流的输出是否进行解码,默认关闭,性能遇到瓶颈时可以尝试打开。不推荐在正在创建流时打开,因为创建上游流时如果打开会被认为是最后一层,再创建下游流时会缺数据。