我使用的是TITAN-0.4.3,REXSTER 2.4而不是Cassandra& Elasticsearch。 我从Python调用rexpro。在单个gremlin请求中,我试图添加100个顶点并提交。我能够在400多个gremlin请求中成功添加40000多个顶点。然而,在那之后,我变得异常:
Encountered a RexProScriptException: An error occurred while processing the script for language [groov
y]. All transactions across all graphs in the session have been concluded with failure: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space
Rexster.sh
[JVM堆大小]
我尝试增加堆内存,但在插入更多批顶点之后仍然抛出异常。
# Set Java options
if [ "$JAVA_OPTIONS" = "" ] ; then
JAVA_OPTIONS="-Xms256m -Xmx1024m"
fi
请咨询
答案 0 :(得分:1)
根据您提供的信息进行猜测,但是如果您没有参数化您要发送的脚本,则PermGen错误通常会显示在Rexster中。我知道支持该功能的大多数python库。您可以在此处详细了解此问题:
https://github.com/tinkerpop/rexster/issues/143
和gremlin用户邮件列表中的其他位置,如果你搜索周围。如果由于某种原因您无法参数化,则可以更改此JVM设置:
-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=512M
但我认为这是最后的手段。参数化不仅应该解决您的问题,还可以大大加快您的数据加载过程。