Release Date: 28 June 2024

Aura June 2024 (Neo4j 5.21) 

Highlights

Surface for Developers and Data Scientists

  • Greatly improved scalability of the block format importer, allowing for good performance even for large data sets. 
  • Metric <prefix>.store.size.database.available_reserved becomes public. This allows us to estimate reserved but available space in the database, in bytes. See Monitoring and Metrics reference documentation.

Language and Graph Model

  • Introduces support for CALL {…} IN CONCURRENT TRANSACTIONS.  This optimizes the use of available processing resources, enabling subqueries to be broken up into multiple batches and executed concurrently. For details see Subqueries in Transactions – Cypher manual.  Syntax:
CALL {
     subQuery
} IN [[concurrency] CONCURRENT] TRANSACTIONS
[OF batchSize ROW[S]]
[REPORT STATUS AS statusVar]
[ON ERROR {CONTINUE | BREAK | FAIL}];
  • Property-based access control allows creation of simple data-driven rules to control READ and TRAVERSE privileges on nodes.  For example, to specify that users with the reader role should be able to view the name property of p:Person nodes in cases where p.classificationLevel < 5 , use the following command:   
GRANT READ {name} ON GRAPH * FOR (p:Person) WHERE p.classificationLevel < 5 TO reader. 

For details refer to the Property Based Access Control Operations manual.

  • SHORTEST: This release introduces CYPHER statements: ALL SHORTEST, SHORTEST k, SHORTEST k GROUPS, ANY. The new statements also support Quantified Path Patterns, combining shortest path-finding with the expressiveness of QPPs. For details please see the Shortest Path Cypher Manual.
  • A new SubtractionNodeByLabelsScan operator delivers improved matching performance for label expressions with negation such as: 
MATCH (:A1&A2..&!B1&!B2...)....    

For more information refer to Operators Cypher manual. 

  • For GQL conformance we have introduced upper() and lower() functions, which are aliases for the toUpper() and toLower() functions.For more detail please refer to the Functions Cypher manual.
  • Cypher now parses queries using the ANTLR based parser. 
  • A new deprecatedBy column has been added to the output of SHOW PROCEDURES [YIELD *] and SHOW FUNCTIONS [YIELD *] to show if the deprecated procedure/function has a replacement. For more details please refer to the Listing Procedures Cypher manual.
  • FOREACH will now interpret scalar values as a list, similar to UNWIND.