nebula java-client客户端代码查询 nebula直接挂掉

( 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掉了,你的机器是怎么个配置

执行了ulimit -n 130000 也没用

查询不出来结果,就会挂掉

修改配置文件: 在nebula-graphd.conf文件中修改–storage_client_timeout_ms参数的值,以增加Storage client的连接超时时间。该值的单位为毫秒(ms)。例如,设置–storage_client_timeout_ms=60000。如果nebula-graphd.conf文件中未配置该参数,请手动增加。提示:请在配置文件开头添加–local_config=true再重启服务

这也改了

https://docs.nebula-graph.com.cn/site/pdf/NebulaGraph-book.pdf 6.1.3

还是会挂掉

上面哪里告诉你修改哪些参数就好了,不是已经说明是因为内存不够被kill了吗?你看下你导入neula-graph的数据量多大,内存多少,你要调整你的query,你的query一下子查询的数据量太大,内存不够。match查询会占用很多内存,假如你内存很小,建议你用match的时候,不要大范围的捞数据,要用就用查询的点边是具体的。不然就用go去代替。

是查询不到数据,超时,然后修改了配置的超时时间

你现在查询服务不会挂了是吧,现在变成超时了,你在哪里看到的超时,还有你客户端配置的超时时间是多少?

会挂,感觉是查询超时的原因挂的

不知道怎么解决

有什么配置,假如到一定的时间查询不出来,就不要查询了

不是查询超时导致挂,还是你查询的数据量大,服务被kill了,你修改的你查询语句吧。

没有,你这种是内存不够挂的,最新版本支持大query的终止,但是大query已经在执行了,内部不够还是会挂,后续我们会支持内存控制,这样就会好些。

怎么把内存改大

给你机器加内存

1234

te.getType()==4就会挂掉