big*_*g-K 4 graph-databases gremlin tinkerpop tinkerpop3 gremlin-server
大多数数据库为用户提供了列出正在运行的查询的机制,并在需要时取消它们 这对于终止花费大量时间的查询特别有用.例如,在MySQL中你会做这样的事情:
mysql>show processlist;
mysql> kill <pid>;
Run Code Online (Sandbox Code Playgroud)
我怎样才能在gremlin服务器上做类似的事情?到目前为止,唯一可用的旋钮是scriptEvaluationTimeoutyaml配置,它允许您在超时时终止请求.我对能够列出所有正在运行的查询的API以及可以让我按ID删除查询的API感兴趣.如果不支持,tinkerpop是否有计划在较新版本中支持它?就像是:
g.query()
g.query('123')
g.query('123').cancel()
Run Code Online (Sandbox Code Playgroud)
Gremlin Server中没有任何内容可以列出正在运行的查询.配置了更高详细级别的服务器日志可能会给你一些提示,但我认为这不是一个很好的解决方法.一些图形系统将具有向您提供该信息的本机能力 - 即"慢查询日志"类型的功能,但它不是TinkerPop向您公开的内容.
至于取消,根据标准的TinkerPop语义,Traversal应该尊重线程中断的请求.这些语义由TinkerPop流程测试套件强制执行.也就是说,图形提供程序仍然可以正确地允许该行为.Gremlin Server将尝试中断超出scriptEvaluationTimeout服务器配置的字节码或基于脚本的遍历,或者为每个请求提供的值的覆盖.适当地设置这些超时并使用尊重TinkerPop语义进行取消的提供程序是您进行远离遍历的最佳防御.请注意,只是实现Gremlin Server协议(但可能不使用Gremlin Server本身)的图形提供程序可能具有不同的超时控制选项.
我们肯定在当前版本的3.x中改进了TinkerPop 2.x的遍历取消 - 希望对于4.x我们可以完美地完成它.
| 归档时间: |
|
| 查看次数: |
290 次 |
| 最近记录: |