neo4j bolt驱动程序比http端点

时间:2016-06-17 22:34:55

标签: neo4j neo4j-bolt

到目前为止,我们正在使用http端点进行读取查询,并计划转移到java bolt驱动程序。但在初始测试中,观察到螺栓驱动器比http端点慢。以下是我们正在使用的java驱动程序代码。

  

在应用程序上下文级别创建的驱动程序实例:Driver   neo4jReadDriver = GraphDatabase.driver(" bolt://xyz.com",                 AuthTokens.basic(" neo4j"," neo4j"),Config.build()。withMaxSessions(20).toConfig());

执行查询的应用程序代码:

    Session session = neo4jReadDriver .session();

    StatementResult result = session.run( "MATCH(p:GOE) return count(p) as cnt");


    while ( result.hasNext() )
    {
        Record record = result.next();
        System.out.println("Total number of GOEs:"+ record.get( "cnt").asInt());

    }
    result.consume();
    session.close();
    driver.close();

此查询始终比http端点花费的时间加倍。大多数时间在driver.getSession()。 我在这做错了吗? 如何使用bolt java驱动程序和并发用户执行读取查询来获得高吞吐量?

1 个答案:

答案 0 :(得分:3)

从您的描述中不清楚Bolt的哪些方面与HTTP的哪些方面以及您正在测量的指标进行比较。最大吞吐量?个别查询延迟?而对于什么工作量?您是否考虑过测试中的缓存升温?

鉴于Bolt是有状态的并且HTTP无状态,在测量中包含会话获取和释放没有任何价值;实际上,这会扭曲你的读数。相反,只比较查询和结果部分。