Knowledge Base

Will execution_guard_enabled work in my release of Neo4j?

Background

From the beginning, the execution guard was never meant to be used by the general public. However, the feature was there in the product, though undocumented, and it did work for the purpose of preventing long running queries from utilizing significant resources and causing other downstream effects. So it was blogged about, and utilized by users looking for that functionality.

Explanation

If you are running Neo4 2.1.x or previous versions it will still work. If you are running 2.2.x through 3.0.x it will not work, unless you are using the core Java API. If you are running 3.1.x please see dbms.transaction.timeout

Why?

Cypher used the core Java API behind the scenes until 2.2, so the execution guard was actually implemented at that layer. When we made a big change in 2.2 to allow Cypher to use the lower level, more efficient Cursor API, Cypher queries were no longer subject to honoring the execution guard. As the execution guard was an undocumented, unsupported "feature", it was left alone.

Want to see this feature back in the product? Send us a message at our Public Slack channel for product feedback: