( match path=(n:Company{code:'142417250861'})-[r:IndustryCompanyRelationship]-(b:Industry)-[g:IndustryRelationship | IndustryMinceRelationship*4]-(m:Industry{code:'49030105'}) WITH nodes(path) as w,r.start_valid_date as start_valid_date,r.failure_date as failure_date,path as path where date(start_valid_date)<date() and date(failure_date) > date() UNWIND w as w1 return size(collect(distinct w1)) as testLength,path,length(path)+1 as pathLength,length(path) as le | yield $-.path as p,$-.le as le,$-.testLength as testLength,$-.pathLength as pathLength where $-.testLength==$-.pathLength ) | order by $-.le asc | OFFSET 1 LIMIT 10
com.vesoft.nebula.client.graph.exception.IOErrorException: All servers are broken.
at com.vesoft.nebula.client.graph.net.ConnObjectPool.create(ConnObjectPool.java:24)
at com.vesoft.nebula.client.graph.net.ConnObjectPool.create(ConnObjectPool.java:10)
at org.apache.commons.pool2.BasePooledObjectFactory.makeObject(BasePooledObjectFactory.java:58)
at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:889)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:424)
at com.vesoft.nebula.client.graph.net.NebulaPool.getSession(NebulaPool.java:96)
com.vesoft.nebula.client.graph.exception.IOErrorException
at com.vesoft.nebula.client.graph.net.SyncConnection.execute(SyncConnection.java:71)
at com.vesoft.nebula.client.graph.net.Session.execute(Session.java:46)
你看下服务端是不是oom了,dmesg|grep nebula
你的机器内存太小了,服务都被kill掉了,你的机器是怎么个配置
查询不出来结果,就会挂掉
修改配置文件: 在nebula-graphd.conf文件中修改–storage_client_timeout_ms参数的值,以增加Storage client的连接超时时间。该值的单位为毫秒(ms)。例如,设置–storage_client_timeout_ms=60000。如果nebula-graphd.conf文件中未配置该参数,请手动增加。提示:请在配置文件开头添加–local_config=true再重启服务
这也改了
还是会挂掉
上面哪里告诉你修改哪些参数就好了,不是已经说明是因为内存不够被kill了吗?你看下你导入neula-graph的数据量多大,内存多少,你要调整你的query,你的query一下子查询的数据量太大,内存不够。match查询会占用很多内存,假如你内存很小,建议你用match的时候,不要大范围的捞数据,要用就用查询的点边是具体的。不然就用go去代替。
是查询不到数据,超时,然后修改了配置的超时时间
你现在查询服务不会挂了是吧,现在变成超时了,你在哪里看到的超时,还有你客户端配置的超时时间是多少?
会挂,感觉是查询超时的原因挂的
不知道怎么解决
有什么配置,假如到一定的时间查询不出来,就不要查询了
不是查询超时导致挂,还是你查询的数据量大,服务被kill了,你修改的你查询语句吧。
没有,你这种是内存不够挂的,最新版本支持大query的终止,但是大query已经在执行了,内部不够还是会挂,后续我们会支持内存控制,这样就会好些。
怎么把内存改大
给你机器加内存
te.getType()==4就会挂掉