【问题标题】:Neo4j Causal Cluster Bolt Driver Performance Too LowNeo4j 因果集群螺栓驱动器性能太低
【发布时间】:2017-01-27 07:31:49
【问题描述】:

我们正在使用 Bolt Driver for Java 评估 Neo4J Enterprise Edition Causal Cluster。

我们有 3 个节点的核心集群。

我们看到的性能太低了。

我们只创建了 1 个具有 2 个属性的节点 10,00,000 次。跟踪时,我们得到 300TPS(即每秒仅创建 300 个节点)。

操作系统是 Linux,RHEL。

每个内核运行 32GB。

我们估计仅创建 1 个节点的 TPS 接近 50,000,但它只有 300 TPS,这太低了。

我确信我们遗漏了一些重要的东西。

这个函数被 64 个线程的线程池调用了 10,00,000 次。 代码片段:

@Override
    public void createNode() throws InterruptedException {

        try (Session session = RTNeo4j.getInstance().getWriteDriver().session(AccessMode.WRITE)) {
            try (final Transaction tx = session.beginTransaction()) {
                try {

                    tx.run("CREATE (a:Person {name: {name}, id: {id}})",
                            parameters("name", "king", "id", System.currentTimeMillis()));

                    tx.success();

                } catch (Exception e) {

                    e.printStackTrace();
                }
            }
        }

    }

感谢快速评估帮助。

【问题讨论】:

    标签: java performance neo4j


    【解决方案1】:

    您不必每次都在方法中创建会话。将会话的创建移到方法之外:

    Session session = RTNeo4j.getInstance().getWriteDriver().session(AccessMode.WRITE)
    

    【讨论】:

    • 如果我将会话对象移到外部,我可以在 1 个会话中打开/关闭多少个事务。我这样做了。但是事务的数量似乎有一些限制,因为如果我在事务内部运行循环,甚至都没有关闭。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多