✅ stream load事务堆积

【Doris 使用环境】生产

【Doris 版本】doris-1.2.2-rc01

【问题描述】

报错信息:flink做stream load时,会有commited txn堆积,导致入库效率变慢,查询失败。

导入频率及量级下图。


目前be中调大了publish_version_worker_count = 120,对txn的发布没有效果。
已经重启过fe和be commited txn 也没有什么变化。还能调整那些参数,防止txn的堆积。

具体表现:

【操作系统】

【机器配置】CPU核数 32+, 内存120G+,磁盘1T+,目前1fe+9be

【复现路径】

【附件】

flink 任务报错的时候对应的fe的日志截图有吗,另外这个参数 max_running_txn_num_per_db 有修改吗

max_running_txn_num_per_db调整过,开始设置了10000,txn没有减少,flink任务已经开始报错到达10000的阈值,临时调整到20000,重启了fe,还是没有下降。
label_keep_max_second 也调整到了6小时
截图是异常时期的部分日志,里面有很多当时query异常的日志,
之后就是大量的超出阈值的日志。fe和be反复重启了几次txn堆积也没有减少。


看日志,你集群中有很多损坏的tablet,可以先看看集群中有多少不正常的tablet,然后想办法先把这个修复一下,然后缩小一下导入的频率,再观察一下

出问题的时间段,发现repair过多,停掉了均衡任务,暂时停止了数据的写入,发现repair任务没有running,都在pending,committed txn也在一直堆积没有处理。期间反复重启了fe和be,目的是放弃txn的堆积,没有成功。最终出现了下面的情况,事务堆积到最大的20000,所有入库和查询失败。但在第二天时我又尝试重启fe和be,txn事务堆积清0了,堆积的数据开始高频率入库,返回的状态都为Publish Timeout。


导入任务和副本均衡任务会有冲突,会导致repair任务都在pending,出现这种情况,优先让repair将副本修复完成,都有健康的副本后,导入任务才不会容易出现异常情况。

目前把doris版本升级到1.2.6后,没有在出现上面的问题,后续在观察下。

1 个赞