neo4j内跳房子实现中的NegativeArraySizeException Neo4j社区版本3.3.1

neo4j内跳房子实现中的NegativeArraySizeException Neo4j社区版本3.3.1,neo4j,Neo4j,在当前情况下,节点数量高且波动率高,即添加/删除节点/关系 异常堆栈跟踪 Exception in thread "main" java.lang.NegativeArraySizeException at org.neo4j.collection.primitive.hopscotch.IntArrayBasedKeyTable.initializeTable(IntArrayBasedKeyTable.java:54) at org.neo4j.collection.prim

在当前情况下,节点数量高且波动率高,即添加/删除节点/关系

异常堆栈跟踪

Exception in thread "main" java.lang.NegativeArraySizeException
    at org.neo4j.collection.primitive.hopscotch.IntArrayBasedKeyTable.initializeTable(IntArrayBasedKeyTable.java:54)
    at org.neo4j.collection.primitive.hopscotch.IntArrayBasedKeyTable.<init>(IntArrayBasedKeyTable.java:48)
    at org.neo4j.collection.primitive.hopscotch.LongKeyTable.<init>(LongKeyTable.java:27)
    at org.neo4j.collection.primitive.hopscotch.LongKeyTable.newInstance(LongKeyTable.java:45)
    at org.neo4j.collection.primitive.hopscotch.LongKeyTable.newInstance(LongKeyTable.java:22)
    at org.neo4j.collection.primitive.hopscotch.PowerOfTwoQuantizedTable.grow(PowerOfTwoQuantizedTable.java:117)
    at org.neo4j.collection.primitive.hopscotch.HopScotchHashingAlgorithm.growTable(HopScotchHashingAlgorithm.java:290)
    at org.neo4j.collection.primitive.hopscotch.HopScotchHashingAlgorithm.put(HopScotchHashingAlgorithm.java:188)
    at org.neo4j.collection.primitive.hopscotch.PrimitiveLongHashSet.add(PrimitiveLongHashSet.java:46)
    at org.neo4j.kernel.impl.api.state.TxState.recordRelationshipDeleted(TxState.java:1353)
    at org.neo4j.kernel.impl.api.state.TxState.relationshipDoDelete(TxState.java:550)
    at org.neo4j.kernel.impl.api.state.RelationshipStateImpl.accept(RelationshipStateImpl.java:54)
    at org.neo4j.kernel.impl.api.state.TxState.relationshipDoDeleteAddedInThisTx(TxState.java:578)
    at org.neo4j.kernel.impl.api.StateHandlingStatementOperations.relationshipDelete(StateHandlingStatementOperations.java:472)
    at org.neo4j.kernel.impl.api.ConstraintEnforcingEntityOperations.relationshipDelete(ConstraintEnforcingEntityOperations.java:310)
    at org.neo4j.kernel.impl.api.LockingStatementOperations.relationshipDelete(LockingStatementOperations.java:307)
    at org.neo4j.kernel.impl.api.OperationsFacade.relationshipDelete(OperationsFacade.java:870)
    at org.neo4j.kernel.impl.core.RelationshipProxy.delete(RelationshipProxy.java:152)
    at com.abakus.cmm.dictionary.Neo4jDictionary.joinPersonNode(Neo4jDictionary.java:249)
    at com.abakus.cmm.dictionary.Neo4jDictionary.checkMergePersonNode(Neo4jDictionary.java:235)
    at com.abakus.cmm.dictionary.Neo4jDictionary.registerRecord(Neo4jDictionary.java:205)
    at com.abakus.cmm.dictionary.Neo4jDictionary.joinDictionary(Neo4jDictionary.java:331)
    at com.abakus.cmm.dictionary.Neo4jLongDictionary.mergeDictionary(Neo4jLongDictionary.java:82)
    at com.abakus.cmm.dictionary.Neo4jLongDictionary.mergeLongDictionary(Neo4jLongDictionary.java:52)
    at com.abakus.cmm.dictionary.Neo4jLongDictionary.main(Neo4jLongDictionary.java:103)

定期提交事务有助于解决上述问题。但是,TxState代码仍然可以优化并添加文档。这在这个类的Javadoc中是存在的

这个类非常大,因为它被用作整合所有事务状态知识的集合点 集成到一个组件中。既然已经完成了这项工作,就应该重构这个类,以增加其工作方式的透明度。