gpt4 book ai didi

graph-databases - 如何列出正在运行的 gremlin 查询?如何取消运行缓慢或长时间运行的查询?

转载 作者:行者123 更新时间:2023-12-04 07:14:16 25 4
gpt4 key购买 nike

大多数数据库为用户提供了一种机制来列出正在运行的查询并在需要时取消它们。这在终止需要大量时间的查询时特别有用。例如,在 MySQL 中,您将执行以下操作:

mysql>show processlist;
mysql> kill <pid>;

如何在 gremlin 服务器上做类似的事情?到目前为止,唯一可用的旋钮是 scriptEvaluationTimeout在 yaml 配置中,它允许您在超时时终止请求。我对可以列出所有正在运行的查询的 API 和可以让我按 ID 删除查询的 API 感兴趣。如果还不支持,tinkerpop 是否有计划在新版本中支持它?就像是:
g.query()
g.query('123')
g.query('123').cancel()

最佳答案

Gremlin Server 中没有任何内容会列出正在运行的查询。配置有更高详细级别的服务器日志可能会给您一些提示,但我猜这并不是一个很好的解决方法。一些图形系统将具有为您提供该信息的 native 能力 - 即“慢查询日志”类型的功能,但这不是 TinkerPop 向您公开的东西。

至于取消,根据标准 TinkerPop 语义 Traversal应该尊重线程上的中断请求。这些语义由 TinkerPop 流程测试套件强制执行。也就是说,仍然由图形提供者来适本地允许这种行为。 Gremlin 服务器将尝试中断超过 scriptEvaluationTimeout 的基于字节码或脚本的遍历。服务器上的配置或根据请求提供的该值的覆盖。适本地设置这些超时并使用尊重 TinkerPop 语义的提供程序进行取消是您对失控遍历的最佳防御。请注意,仅实现 Gremlin Server 协议(protocol)(但可能不使用 Gremlin Server 本身)的图形提供程序可能具有不同的超时控制选项。

在我们当前的 3.x 版本中,我们确实改进了 TinkerPop 2.x 的遍历取消 - 希望对于 4.x,我们真的可以完美地完成它。

关于graph-databases - 如何列出正在运行的 gremlin 查询?如何取消运行缓慢或长时间运行的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53053463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com