作为容量和性能测试的一部分,我正在尝试使用 java 线程并行执行多个 gremlin 请求(图遍历)。它工作正常较少的线程数。
当我增加线程数(比如 500)时,我收到以下错误
线程“Thread-34”中的异常 java.lang.RuntimeException:java.lang.RuntimeException:java.util.concurrent.TimeoutException:等待可用主机超时。在 org.apache.tinkerpop.gremlin.driver.Client.submit(Client.java:146) 在 com.tests.java.titan.Vertices.exists(Vertices.java:37) 在 com.tests.java.titan.Complex .searchNodesRelatedByRelation(Complex.java:110) at com.tests.java.perfTests.TitanThread.run(ParallelGraphTraversal.java:112) 原因:java.lang.RuntimeException: java.util.concurrent.TimeoutException: 超时等待可用的主机。在 org.apache.tinkerpop.gremlin.driver.Client.submitAsync(Client.java:194) 在 org.apache.tinkerpop.gremlin.driver.Client.submitAsync(Client.java:174) 在 org.apache.tinkerpop.gremlin .driver.Client。
我尝试将 threadPoolWorker 的值从 1 增加到 2,将 gremlinPool 从 8 增加到 16(在文件 gremlin-server.yaml 中)。但我没有注意到任何区别。
有人遇到过这个问题吗?您能否告诉我可能的最大同时连接数是否有限制?
我们的环境:CDH 5.7.1、Titan 1.1.0-SNAPSHOT、Solr 4.10.3、HBase 1.2.0、titan-tp3-driver 用于创建与 gremlin 服务器的远程连接并用于查询