0

我在 Cassandra 和 Elasticsearch 上使用 TITAN-0.4.3、REXSTER 2.4。我从 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

请指教

4

1 回答 1

1

只是根据您提供的信息进行的猜测,但是.....如果您没有参数化您发送的脚本,PermGen 错误通常会出现在 Rexster 中。我所知道的大多数 python 库都支持该功能。您可以在此处阅读有关此问题的更多信息:

https://github.com/tinkerpop/rexster/issues/143

如果您四处搜索,以及 gremlin 用户邮件列表中的其他位置。如果由于某种原因您无法参数化,那么您可以更改此 JVM 设置:

-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=512M

但我认为这是最后的手段。参数化不仅可以解决您的问题,还可以大大加快您的数据加载过程。

于 2015-04-21T12:36:22.990 回答