【问题标题】:Debugging gremlin problems with AWS Neptune使用 AWS Neptune 调试 gremlin 问题
【发布时间】:2021-08-03 20:28:13
【问题描述】:

我发送了一个 gremlin 语句,但由于以下错误而失败:

{"code":"InternalFailureException","requestId":"d924c667-2c48-4a7e-a288-6f23bac6283a","detailedMessage":"null: .property(Cardinality, , String)"} (599) 

我已在集群端启用审核日志,但没有任何迹象表明那里有任何错误,尽管我看到了请求。
是否有任何技术可以使用 AWS Neptune 调试此类问题?

由于 gremlin 是动态构建的,并通过数千次操作构建复杂的图形,因此我正在寻找一些方法来更好地了解错误所在。
在一种情况下,负载太大,在另一种情况下,gremlin 字节码失败了,尽管它在本地 Tinkerpop 服务器上运行良好。
但是对于一般的内部故障异常,很难确定问题所在。

我正在使用 Node.js gremlin 包 (3.5.0)。

【问题讨论】:

  • 您能否更新您的问题以包含失败查询的示例。这可能是 Gremlin 中的一个错误,它没有被正确地报告为内部故障,但是如果没有查询,就很难确定。您是如何提交查询的?
  • 感谢 Kelvin,我已经更新了问题。我对修复特定查询不太感兴趣,而是对一些技术从非信息性错误消息中解决一般性的问题感兴趣。 @KelvinLawrence

标签: gremlin amazon-neptune


【解决方案1】:

感谢您的澄清。附带说明一下,Neptune 还没有达到 3.5.0 TinkerPop 级别,因此客户端和服务器之间总是存在不匹配的可能性。审计日志只显示收到的查询。它不反映运行查询的结果。当我调试这样的问题时,我经常创建查询的文本版本(节点客户端有一个可以为你做的翻译)并使用 Neptune REST API 首先检查/explain 计划 - 你也可以使用 %%gremlin explain 从 Neptune 笔记本生成。如果解释计划中没有出现明显的内容,我通常会尝试运行查询的文本版本,以查看是否有任何显示 - 以排除客户端驱动程序。我有时也会对 TinkerGraph 运行我的查询,只是为了看看问题是否像 Neptune 一样简单,没有返回它可以返回的最佳错误消息。如果文本查询应该可以工作,将 Node.js Gremlin 客户端驱动程序更改为 3.4.11 值得尝试。

已更新以添加指向 Gremlin 翻译器文档的链接。

https://tinkerpop.apache.org/docs/current/reference/#translators

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-04
  • 2019-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-03
  • 2020-12-01
相关资源
最近更新 更多