在gremlin-group和auriliusgraphs小组中发布相同的问题,没有任何帮助在此发布。
我正在评估titan + rexster + cassandra + gremlin,在我们的用例中写入图表非常简单,并且几乎总是通过使用titan buleprints API的java代码发生,但读取可以是非常动态的,可以来自客户端以不同的语言运行(java / python),因此想通过rexpro通过gremlin进行阅读。我观察到大量时间用于连接到rexster服务器〜每个请求500毫秒。目前我的macbook(2 CPU,8 GB,1600 MHz)运行的图表非常小,有〜3K顶点和〜30K边缘,我运行的是稍微复杂的查询,涉及两个邻居的遍历,但都涉及索引。如果我一次运行大约100个查询,则需要大约一秒钟才能完成,即每个查询需要10毫秒,但如果我逐个运行它需要大约50秒,即每个查询大约500毫秒。如果我运行多个并行客户端时间虽然不是线性增加,例如运行具有相同100个查询的5个并行客户端大约需要110秒,运行具有相同100个查询的10个并行客户端大约需要170秒。如果我使用带有RexsterClient的java,带有python-rexpro(https://github.com/bdeggleston/rexpro-python的python),使用-f选项直接在rexster-console上运行脚本或通过http客户端,结果是相似的。我在CentOS 6.5上的单节点集群上运行时看到了类似的结果。此外,性能与查询类型的差异不大,即使我只是使用g.V
,结果仍然相似。 AFAIK rexster使用灰熊,所以期望服务器性能更好。
<http>
<server-port>8182</server-port>
<server-host>0.0.0.0</server-host>
<base-uri>http://localhost</base-uri>
<web-root>public</web-root>
<character-set>UTF-8</character-set>
<enable-jmx>false</enable-jmx>
<enable-doghouse>true</enable-doghouse>
<max-post-size>2097152</max-post-size>
<max-header-size>8192</max-header-size>
<upload-timeout-millis>30000</upload-timeout-millis>
<thread-pool>
<worker>
<core-size>8</core-size>
<max-size>8</max-size>
</worker>
<kernal>
<core-size>4</core-size>
<max-size>4</max-size>
</kernal>
</thread-pool>
<io-strategy>leader-follower</io-strategy>
</http>
<rexpro>
<server-port>8184</server-port>
<server-host>0.0.0.0</server-host>
<session-max-idle>1790000</session-max-idle>
<session-check-interval>3000000</session-check-interval>
<connection-max-idle>180000</connection-max-idle>
<connection-check-interval>3000000</connection-check-interval>
<read-buffer>262144</read-buffer>
<enable-jmx>false</enable-jmx>
<thread-pool>
<worker>
<core-size>64</core-size>
<max-size>64</max-size>
</worker>
<kernal>
<core-size>32</core-size>
<max-size>32</max-size>
</kernal>
</thread-pool>
<io-strategy>leader-follower</io-strategy>
</rexpro>
可能出现什么问题?
谢谢&amp;问候, Apoorva