-1005:GraphMemoryExceeded: (-2600)0..2、0..6可以查出来,*查不出来

  • nebula 版本:3.4.1

  • 部署方式:单机

  • 安装方式:DEB

  • 是否上生产环境:N

  • 硬件信息

  • MATCH (d:Dependency)-[*]->(m:Method) where id(d) == -2591779650016416358 return distinct(m) 0…2、0…6可以查出来(下图1、2),*查不出来(下图三),space内一共6494个method节点,边和节点加起来不到一万,0…2其实已经查出来了,只是我不确定需要几跳,所以用的是【*】



MATCH (d:Dependency)-[*]->(m:Method) where id(d) == -2591779650016416358 return distinct(m)  
1 个赞

* 用了全部的边,可能遍历产生的数据量太多了。可以用profile 看一下哪一步数据量太多。

2 个赞

一共不到1万条边,就算全部遍历256g内存是不是也够用啊

如果有 6494 个Method 节点,点边加起来不到一万,那这个图其实很稀疏了。需要多大内存这个和 点,边的属性大小也有关的。

你可以跑查询的时候看看内存监控的走向。 具体的profile 看看才会更清楚

1 个赞

result.csv (4.5 KB)
这是PROFILE结果,大佬可以帮分析下吗?

看起来这查询结果有两百多万的结果,结果集比较大吧。应该不是你说的space 只有不到一万的点边

2 个赞

貌似是因为图中有环导致的,有好的解决办法吗?


图中的环如上图

可以把需要说一下,为什么要这么查询。 看语句你只是想从某个点漫无目的的往外扩散,找出相关联的点? 有点想OLAP 的需求,可以考虑用图算法

1 个赞

话说,另外一个点我看了你点的属性似乎有个很大的string?(name),点多加上大的属性,容易超

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。