GreatSQL社区

搜索

[已解决] tpch 1T,稳定出现 Secondary engine operation failed 报错;

638 2 2024-3-13 17:21
现象:

数据已经都导入,并且load到 rapid引擎当中。
参数:
rapid_worker_threads = 16
set global rapid_hash_table_memory_limit = 80;
set global rapid_memory_limit = 190737418240

+ 出现如下异常现象:
运行脚本,某一条开始失败,失败之后尝试走rapid引擎查询会报错:
ERROR 3889 (HY000): Secondary engine operation failed. use_secondary_engine is FORCED but query could not be executed in secondary engine.

如果对所有的表都 load一次,之后可以继续查询,即便实际上load报错失败(毕竟此前已经把数据导入到AP引擎当中了)。


+ 已发现在如下两个条件下可以稳定触发异常现象:

run-tpch.sh 脚本,
1,如果将22条语句循环次数改为2, 会在21条跑到第二次开始报错:
报错信息为:


ERROR 2013 (HY000) at line 2: Lost connection to MySQL server during query
ERROR 2003 (HY000): Can't connect to MySQL server on '10.229.31.45' (111)


此后尝试利用ap引擎查询,会出现异常现象。

2, 将22条语句的循环次数改为1,会在22条运行时报错。
ERROR 2003 (HY000): Can't connect to MySQL server on '10.229.31.45' (111)

top观察发现内存占用内存不断上升,直到进程消失,然后再自动拉起,消失同时脚本报错。


+ 解决方案:

set global rapid_hash_table_memory_limit = 60;
set global rapid_memory_limit = 150737418240;

都可以。



全部回复(2)
yejr 2024-3-13 17:26:03
rapid_hash_table_memory_limit这个值设置太高了,很容易发生OOM。
一般在较为复杂的(多层JOIN、子查询)的场景下,最高不超过30。

详见参考:https://greatsql.cn/docs/8032-25 ... 8%E8%AF%B4%E6%98%8E
yejr 2024-3-13 17:27:15
另外,一般建议设置 SET use_secondary_engine = ON 就好,不要设置为 FORCED,否则总是强制使用secondary engine,但如果无法使用时,则会报错。

详见文档:https://greatsql.cn/docs/8032-25 ... 2%E6%95%88%E7%8E%87
cse_engineer

10

主题

0

博客

32

贡献

注册会员

Rank: 2

积分
53

助人为乐(铜)勤学好问(铜)

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-11-21 19:55 , Processed in 0.019308 second(s), 14 queries , Redis On.
快速回复 返回顶部 返回列表