matrixone
matrixone copied to clipboard
[Bug]: cte recursive: multi recursive layers, insufficient memory error reported
Is there an existing issue for the same bug?
- [X] I have checked the existing issues.
Environment
- Version or commit-id (e.g. v0.1.0 or 8b23a93):6828ed04cefb5e2b306120f655ab34c16c56aa1a
- Hardware parameters:
- OS type:
- Others:
Actual Behavior
mo limit 100 iterations,mem 16GB mac execute sql reported :Invalid alloc size 1147486208,about 1GB
mysql:
Expected Behavior
No response
Steps to Reproduce
with recursive cte_ab_8(productID,price) as(select p_id,price from product union all select c.productID,p.price from product p join cte_ab_8 c on p.p_id = c.productID)select * from cte_ab_8;
ddl:
create table product (id int primary key,p_id int,p_name varchar(25),price decimal(10,3));
insert into product values (3,2,"bed",3560.98),(2,null,"chair",1599.00),(4,1,"desk",2999.99),(5,3,"door",8123.09),(6,3,"mirrors",698.00),(7,4,"tv",5678);
Additional information
No response
@iamlinjunhong plz confirm
retest on 128 server, it is reported same error :internal error: Invalid alloc size 1147486208
so it is two questions: 1.Invalid alloc size 1147486208, about 1GB is small? 2.which priority is higher for memory limit and limit 100 limit errors? mysql returns limit errors quickly during execution
无进度,在看其他问题
在看其他问题
join 的结果是个超过 1G 的batch,导致在 dup 的时候出错
把join probe 出来的大 batch,切分成小 batch 后由于递归计算出的中结果太大(几十上百亿行数据),mo 跑一段时间会 oom,需要做 spill。mysql 在 129 上还未能跑出结果
mysql 在 128上报错
还需要做 spill
Not working on this today
不需要做spill。应该把大的batch按8192行切块。等pipeline重构吧
not working on this
not working on this today
Not started
Not started
Not started
pipeline重构之后可自然解决
暂无进展
暂无进展
暂无进展
本周请假
暂无进展
暂无进展
https://github.com/matrixorigin/matrixone/pull/14136 这个pr合入后会长时间不报错
还需要限制递归深度
暂无进展
暂无进展
暂无进展
暂无进展
暂无进展