【问题标题】:Neo4j BatchInserter slow shutdownNeo4j BatchInserter 缓慢关闭
【发布时间】:2016-04-08 10:33:10
【问题描述】:

我正在使用 Neo4j 的 BatchInserter 在大图中插入不同数量的关系(超过 5 亿个节点)

速度非常快,每分钟插入数千条关系。

但是关闭非常慢,需要一个多小时,即使只插入了少量的关系。

查看org.neo4j.unsafe.batchinsert.BatchInserterImpl.shutdown() 内部,我看到它执行了许多操作,包括repopulateAllIndexes()

我不知道关闭的哪个部分需要这么长时间,但如果我知道新的关系不会影响任何索引这一事实,是否值得继承 BatchInserterImpl 并跳过其中一些关闭操作?

【问题讨论】:

  • 在那个阶段也有大量的磁盘刷新。我建议您在流程中附加一个分析器(例如 YourKit)并查看实际花费的时间。

标签: neo4j neo4j-batch-inserter


【解决方案1】:

没错,BatchInserter 并没有竭尽全力优化关闭过程,只考虑重建受影响的索引。有一个布尔值控制这一点,它只是在任何节点上是否更改了任何标签。如果是这样,则触发索引的完全重建(关闭一次存储扫描)。正如您所提到的,这可能会得到改进。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    相关资源
    最近更新 更多