【问题标题】:Neo4j Batch insertion - Index causes OutOfMemoryError exceptionNeo4j 批量插入 - 索引导致 OutOfMemoryError 异常
【发布时间】:2012-12-06 14:12:19
【问题描述】:

我正在使用“批量导入”将大型数据集添加到 neo4j 服务器

BatchInserterIndex someIndex = indexProvider.nodeIndex("some_index", MapUtil.stringMap("type", "exact"));

    /** Looping large dataset */
    for (..) {

        Map<String, Object> testMap //Map with various properties    
        long id  = inserter.createNode(testMap);
        someIndex.add(id, testMap);
    }

大约 400k 条目后,我的代码抛出异常“java.lang.OutOfMemoryError: Java heap space”。

当我不使用索引时它工作得很好。我曾尝试不时刷新索引,但没有任何改善。

如何在使用索引的同时添加大型数据集?知道我哪里出错了吗?

【问题讨论】:

  • 你的 JVM 内存设置是什么?
  • 通常冲洗工作。您使用的是哪个版本的 Neo4j?
  • Michael - 我使用的是 1.8,稳定版。

标签: neo4j


【解决方案1】:

如果您的堆不是那么大,您可能会遇到 lucene 索引上的批量提交大小过高的问题。默认值为 500,000 个值。而且恐怕您无法从公共 API 更改它。我将尝试获取一些可以为 1.9 版配置此批量大小的东西。

【讨论】:

    猜你喜欢
    • 2017-06-05
    • 2013-12-10
    • 2011-01-14
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 2016-09-26
    相关资源
    最近更新 更多