【问题标题】:timing queries in gremlin-consolegremlin-console 中的计时查询
【发布时间】:2018-09-27 12:28:36
【问题描述】:

我正在尝试比较我在 gremlin-console 中的查询的响应时间(图形数据库是 janusgraph,后端数据库是 hbase)。为此,有一个“clock()”步骤,可以多次运行查询并返回平均响应时间。

但正如文档中所述,有一个“热身”阶段:

热身只是在之前运行一次查询 计时开始。这意味着对于单个时序迭代, 人类感知时间将大约是返回的时间的两倍 时钟分析。

由于该预热阶段,遍历所需的所有图形始终在缓存中,这在现实世界中并非如此。 例如,我正在处理的查询需要 6 分钟才能完成,因为要从 hbase 后端获取大量数据,但 clock() 步骤显示执行时间为 10 秒,这仅在最佳情况下才是正确的.

还有其他更好的方法可以使用 gremlin-console 获得正确的查询执行时间吗?

【问题讨论】:

    标签: gremlin janusgraph


    【解决方案1】:

    我认为您仍然可以使用clock()。只需在执行之间回滚事务:

    clock { g.V().iterate();g.tx().rollback() }
    

    【讨论】:

    • 但我认为有必要使用 db-cache=false 禁用数据库缓存
    • 我想它也可以作为 JanusGraph 特定的处理方式来完成。
    • 实际上我认为我需要两者:db-cache=false 禁用数据库缓存,rollback() 清空两次执行之间的事务缓存
    • 如何在浏览器查询中做到这一点?
    • 您无法在 http 调用中执行该确切功能。 clock() 是 Gremlin 控制台的一个功能。也就是说,如果您愿意,您可以进行clock() 的 http 调用。只需更改时钟闭包内部的调用即可。
    猜你喜欢
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多