知识库

execution_guard_enabled 是否在我的 Neo4j 版本中有效?

背景

从一开始,执行保护就从未打算供公众使用。但是,该功能存在于产品中,尽管没有记录,但它确实有效地防止了长时间运行的查询占用大量资源并导致其他下游影响。因此,它被记录在博客中,并被寻求该功能的用户使用。

解释

如果您运行的是 Neo4 2.1.x 或更早版本,它仍然有效。如果您运行的是 2.2.x 到 3.0.x,它将不起作用,除非您使用的是核心 Java API。如果您运行的是 3.1.x,请参阅 dbms.transaction.timeout

为什么?

Cypher 在 2.2 之前使用核心 Java API 在幕后工作,因此执行保护实际上是在该层实现的。当我们在 2.2 中进行重大更改以允许 Cypher 使用更低级别、更高效的游标 API 时,Cypher 查询不再受执行保护的约束。由于执行保护是一个未记录的、不受支持的“功能”,因此它被保留了。

希望看到此功能重新出现在产品中吗?请在我们的公共 Slack 频道发送产品反馈消息给我们