我已经为修补程序图运行了一个gremlin服务器会话。
gremlin.graph=org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph
gremlin.tinkergraph.vertexIdManager=LONG
gremlin.tinkergraph.graphLocation=data/db.kryo
gremlin.tinkergraph.graphFormat=gryo在会议期间,我创建了许多顶点和边。目前,当我到达180 k顶点和350 k边缘时,服务器显示的性能很差。它不能执行简单的查询,例如:> g.V(999).values('name')。
此外,当我关闭服务器时,它没有像上面定义的那样成功地将内容写入graphLocation=data/db.kryo。所以我失去了所有关于180 k顶点和350 k边的信息。
我想知道TinkerGraph和gremlin服务器的容量:
发布于 2018-06-17 10:25:27
一个图的边、顶点和大小可以处理多少?
TinkerGraph只受你给它的记忆的限制。您可以通过增加-Xmx JVM设置来控制该内存。如果您的图形托管在Gremlin中,并且您没有更改它的-Xmx设置,那么您开始在那里看到一些性能问题也就不足为奇了,因为Gremlin在512m中的初始值很低,如这里所示。
在关闭服务器和将内容写入文件时,有什么方法可以避免数据丢失吗?
数据丢失可能与内存问题有关。怎么说呢。值得注意的是,TinkerGraph在关闭时向磁盘进行的刷新可能会遇到问题,这意味着图形越大,将整个程序写入磁盘所需的时间越长,在写入过程中出错的可能性就越大(即电源故障)。
我应该考虑使用非内存图表吗?例如,neo4j。
这取决于你的情况。如果您只加载一次不经常更改的图,并且只进行分析,那么TinkerGraph可能是与任何其他启用TinkerPop的图相比的最佳解决方案。另一方面,如果您有一个事务工作负载,其中图形不断变化(就像某种应用程序的后端那样),那么您可能需要一个可以在每个事务结束时刷新到磁盘的图形,比如Neo4j、JanusGraph等等。
无论您选择哪个图,都要确保将适当数量的-Xmx分配给Gremlin,以便它能够适当地完成其工作。
https://stackoverflow.com/questions/50895088
复制相似问题