Release Date: 21 November 2022
We are proud to announce the General Availability (GA) of our Neo4j Database – Neo4j 5 Enterprise Edition. Neo4j 5 is the core technology of the Neo4j Graph Platform available fully-managed in the cloud, or self-managed in any environment.

Important Information

This release is available to customers who purchased a Neo4j Enterprise subscription. This version of the database is also available to Aura customers with the following subscriptions AuraDB Free, AuraDB Pro, AuraDB Enterprise and AuraDS. 

Software Availability

The software is available in the Download center. Neo4j 5 is also available in Docker and in the usual Linux repositories (Debian and Yum), and will become available in the Cloud Marketplaces (Amazon Web Services, Azure, Google Cloud Platform). Neo4j 5 Drivers for .Net, Go, Java, JavaScript and Python are available in the Download Center, all support the new features available in Neo4j 5, and are backward compatible with Neo4j 4.4.

Neo4j 5.2 (21 Nov 2022)

Highlights

Products included

The following products have been included in the distribution – available in /products directory unless stated otherwise – and are fully compatible with this release. 
  • APOC 2.5.1 – The most popular community library developed for the database, is  fully supported (included in Labs directory).
  • Bloom 2.5.1 – A beautiful and expressive data visualization tool to quickly explore and interact with Neo4j’s graph data platform – no coding required. Please refer to the release notes for details.  (Requires a License)
  • Browser 2.5.0 – Neo4j Browser is a tool for developers to interact with the graph. It is the default interface for both Enterprise and Community Editions (included in the /libs directory) of the Neo4j database. 
  • Neo4j Graph Data Science 2.2.4 is a connected data analytics and machine learning platform that helps you understand the connections in big data to answer critical questions and improve predictions. Please refer to the release notes for further details. (GDS Enterprise requires a License. )
  • Neo4j Ops Manager 1.2.2 is a UI-based tool that enables Administrators to operate and observe all of their Neo4j Database Management Servers. Now includes support for Neo4j’s any-to-any upgrade. Please refer to the release notes for details. (Included in Enterprise).

Language and Graph Model

  • graph.propertiesByName() retrieves properties from graphs in a COMPOSITE database
  • Deprecated the same relationship variable for multiple variable length relationships e.g. MATCH ()-[r*]->(), ()-[r*]->() and will be removed in a future version.

Write and Import Performance 

  • New default value 70% of heap for ‘dbms.memory.transaction.total.max’ to reduce the likelihood of memory intensive transactions from running out of memory.

Read and Export Performance

  • Added new types to org.neo4j.graphdb.schema.ConstraintType in the Core API.

Scale and Availability

  • DRYRUN explains what the outcome of command will be on a cluster – without executing it.
  • Created ‘synonyms’ cluster.raft. and cluster.storecopy for the metrics cluster.core.cluster.readreplica.
Cloud Native Operations
  • Helm Charts for Neo4j 5 support Autonomous Clustering, and automatically deploy the network load balancer in the Kubernetes Cluster.

Platform & Supportability

  • Migration from Neo4j 4.4 to Neo4j 5.2 is supported please follow the migration guide available here. 
  • Any-to-any version rolling upgrade provides a streamlined upgrade experience and supports from 5.0 to 5.2, with future support to 5.x+n.
  • Packaging information file provided under neo4j home.
  • Upgraded Apache Shiro (included) from 1.9.1 to 1.10.0.

Fixes

  • Composite / Fabric
    • Fix bug with map projection in Fabric, where the value of the map projection is returned outside a subquery.
  • Autonomous Clustering
    • Fix bug where store copy failed to retry against certain remote servers due to issues with address locking logic.
    • Bug fix where a member in a two member raft group couldn’t be drained since it was wrongly considered unsafe.
    • Bug fix where the wrong artifact was chosen for databases with the same name but different database ids.
  • Cypher
    • Fixed a bug in pipelined execution graph construction, that could cause some queries with UNION inside an updating subquery to fail with the message “Could not find downstream argumentStateBuffer with id ArgumentStateMapId(x).”
    • Fix bug in Expand(Into) where we could fail to find existing relationships if the same node is expanded multiple times.
    • Fix a bug where pressing ctrl+c in Cypher Shell would leave you in an infinite loop of IOException: Input/Output error errors.
  • Kernel
    • Fix edge case where active transactions metrics were inconsistently decremented on closing a transaction, which led to <prefix>.database.transaction.active_read to potentially appear negative.
    • Fixed possible crashes when using very small page cache sizes.
  • Security
    • Bump commons-text 1.9 -> 1.10.0 so as to address CVE-2022-42889

Neo4j 5.1 (24 October 2022)

 The General Availability Release

Highlights

Products included

The following products have been included in the distribution – available in /products directory – and are fully compatible with this release. 
  • Bloom 2.4.1 – A beautiful and expressive data visualization tool to quickly explore and interact with Neo4j’s graph data platform – no coding required. Please refer to the release notes for more details of what is available in this release.  (Requires a License)
  • Neo4j Browser 5.0.0 – Browser is a tool for developers to interact with the graph. It is the default interface for both Enterprise and Community Editions of the Neo4j database. 
  • Neo4j Graph Data Science 2.2.2 is a connected data analytics and machine learning platform that helps you understand the connections in big data to answer critical questions and improve predictions. Please refer to the release notes  for more details of what is available in this release. (GDS Enterprise requires a License)
  • Neo4j Ops Manager 1.2 is a UI-based tool that enables Administrators to operate and observe all of their Neo4j Database Management Servers. Please refer to the release notes  for more details of what is available in this release. (Included in Enterprise).

Surface for Developers and Data Scientists 

  • Improved messaging in Browser for startup of newly created databases
  • Browser support connecting to cluster members without a default database.
  • Procedures can specify an analyzer for Full Text queries

Language and Graph Model

  • Include Europe/Kyiv in the list of time zones in Cypher to, as per IANA 2020b.

Write and Import Performance

  • Incremental Import CSV header supports id-type to specify the value type for ID for a group e.g: id:ID(MyGroup){label:MyLabel, id-type: int}.

Read and Export Performance

  • Trigram Analyzer provides significantly faster Full Text searches.
  • Range seek Index Searches are consistent with non-Indexed range searches – does not match Not a Number (NaN).

Scale and Availability

  • Autonomous Clusters support Server Side Routing for Reads
  • Set or update the TOPOLOGY without specifying PRIMARY so that you can keep the defaults or existing settings.
  • Default database is created and allocated on a best-effort basis to initial members during dbms creation.

Platform & Supportability

  • Migration from Neo4j 4.4 to Neo4j 5.1 is supported please follow the migration guide available here. 
  • Any-to-any version rolling upgrade provides a streamlined upgrade experience and supports from 5.0 to 5.1, with future support to 5.x+n.

Fixes

  • APIs
    • Fixes a memory leak issue when using the Transactional HTTP API (GitHub ref)
  • Browser
    • Fix sysinfo depending on a setting no longer in 5.0.
    • Fix northwind data not loading properly due to https redirect.
  • Autonomous Clustering
    • Fix deadlock in RaftDrainingService area
  • Cypher
    • Fix issue where performance regressed for queries with “impossible predicates”
    • Fix bug where a user could change the database topology with incorrect privileges.
    • Fix bug in pipelined runtime where some queries using assertingMultiNodeIndexSeekOperator would fail incorrectly with Merge did not find a matching node…. For example in queries like UNWIND [0,1] AS id MERGE (n:A:B {id: id}), if there is a uniqueness constraint on the id property for both A and B labels.
    • Fix bug in pipelined runtime where AssertingMultiNodeIndexSeekOperator failed to perform locking index seeks. This could lead to failures when running concurrent transactions in queries like MERGE (n:A:B {id: x}) when we have a uniqueness constraint on id for both labels A and B.
    • Fixed bug where DROP DATABASE … IF EXISTS and ALTER DATABASE … IF EXISTS … could give DatabaseNotFoundException when there exists a remote database alias with the name.
    • Fixed bug for having * and order by id in same RETURN clause
    • Fix a bug where SHOW DATABASES may not include all servers for a database if the servers have the same value for server.bolt.advertised_address
    • Fix a bug with memory tracking in CALL IN TRANSACTION that could lead to an exception with the message “Expected non-negative long value …”.
    • Fix bug where columns could be swapped for UNION queries.
    • Fix a bug in pipelined runtime that can cause incorrect row ordering in queries that leverage order and contain an aggregation.
  • Kernel
    • Fixes a bug that caused XML logging files not to be included in neo4j-admin server report
Please refer to the changelog for full details of the changes..

Neo4j 5.0 (06 October 2022)

The Limited Availability Release

Highlights

Surface for Developers and Data Scientists

  • Browser 5.0 is a tool for developers to interact with the graph, and includes the following new features
    • Zoom to cursor on scroll in visualization
    • Zoom graph to fit after initial visualization animation
    • Editor displays full database name
    • Clear credentials in connection form on disconnect
    • Update :help articles on INDEX & CONSTRAINT
    • Note The Version and Info report the version as 5.0.0 but the Jar is named neo4j-browser-4.4.7.jar
  • Exceptions and Errors provide is_retryable() property, which indicates whether a retry behavior is recommended for the exception.
  • asyncio Python functions have been added to the Python Driver, including cancellation.
  • Python driver supports Pandas dataframes export Neo4j result sets to integrate into common workflows for data scientists.
  • Query String and Parameters in the results objects in the Go driver have been renamed, replacing the inconsistent ‘Statement’ object with the consistent ‘Query’ object.
  • New unique (reused) element ID can be used by applications, including those deployed with Fabric, to identify graph elements, their type and the database it originates from especially. The identifier is available using the elementID() function in Cypher – and the id will be reused when a graph element is deleted. 
  • Notifications -Updates severity on some of the existing notifications. Also, updates status code accordingly (removing Warning from the name if it now has severity Information). 
  • Traversal Framework for Neo4j 5 is available and the documentation has been improved to provide clear guidance on  use and limitations.REMOVAL of the deprecated version and version_info of the Result Summary object.
  • REMOVAL of the deprecated Session#reset in the Java driver.
  • REMOVAL of deprecated HTTP API endpoints where the endpoint begins with /db/data/transaction/. Please use the endpoints that include the database name (e.g. /db/neo4j/tx/commit.

Language and Graph Model

  • Graph Pattern Matching has been improved:
    • New inline Relationship patterns: MATCH (a)-[r:R WHERE r.p >10]-(b)
    • Improved label expressions in MATCH clauses. Nodes and relationships can be filtered using more sophisticated label and type boolean expressions such as & for logical AND (V:L1&L2), | for logical OR (V:L1|L2), ! for negation (V:!L4), % for any (V:%) and () for grouping (V:(L1&L2)|(L3& !L4)).
    • Allow reference to variables in other path elements:
      • MATCH (a)-[r:R WHERE r.p > b.p + a.p]-(b)
      • MATCH (a WHERE b.prop > 100)-[r]-(b)
  • Additions to Cypher
    • Allow underscores in numeric literals, except at the start.
    • COUNT { .. } expression replaces size().
    • EXISTS {} can be used in all expressions.
    • isNan function returns whether a value is or is not a number.
  • Neo4j APOC 5 Library (available in /labs directory) is the most-widely used extension library for Neo4j. It includes procedures, providing functionality for utilities, conversions, graph updates, and more. Comes with Engineering support for security and severity 1 fixes. APOC Extended has been moved to a community supported repository.
  • REMOVAL of the deprecated BTREE index type.
  • REMOVAL of the deprecated CYPHER 3.5 mode
  • Cypher Deprecations, additions & removals: full details are available here.

Read and Export Performance 

  • RANGE and POINT indexes can be used to speed up MATCH queries.
  • Removed support for BTREE Indexes – before migrating from Neo4j 4.4, ensure you have migrated to the new RANGE and POINT Index types and deleted the BTREE indexes (refer to the Migration Guide for details).
  • Lists included in FULLTEXT indexes – strings and arrays of strings are included in Full Text Indexes.
  • Faster K-Hop Queries a new Cypher runtime operator (BSFPruningVarExpand) speeds up K-Hop queries.
  • Auto-parameterize partially parameterized queries to improve query performance.
  • SLOTTED Runtime in Community Edition replaces INTERPRETED and significantly improves query performance.

Write and Import Performance

  • Incremental Offline Import appends new nodes with properties and new relationships between existing or new nodes within an existing database at an equivalent speed to Offline Import.
  • PIPELINED Runtime support for write operations subqueries (CALL { })  that perform write operations can now be run on the faster PIPELINED runtime.
  • No Eager for DETACH DELETE (n) in CALL IN TRANSACTIONS – the planner performs memory efficient deletes for full database deletions by avoiding planning eager operations.

Scale and Availability 

  • Autonomous Clustering (Enterprise) provides
    • Autonomous Clustering offer horizontal elastic scale to run larger clusters, with more databases without administrative overhead. 
    • Administrators can specify the number of database copies to be replicated within a cluster so that they are available on a subset of servers.
    • The cluster decides which databases are allocated to which servers. The allocation may change as servers are added and removed over time. 
  • Cypher’s COMPOSITE DATABASE provides real time Fabric configuration (Enterprise) – create, update and remove Fabric configurations without a restart, whether the database is within the same Autonomous Cluster, or hosted remotely. 
  • Removed the Multi-DC license setting (Enterprise).

Cloud Native Operations

  • IMMUTABLE privilege command (Enterprise) enables Administrators to lockdown the database to restrict administer privileges. 
  • Server-Side Routing is enabled by default  (Enterprise).

Operability & Observability

  • Neo4j-admin all admin functionalities have been consolidated into a single tool, and all commands have been grouped by scope.  There is an optional neo4j-admin conf file and individual conf files for each command so that there is more control over values provided for each command. 
  • New namespaces for configuration settings in neo4j.conf clear and consistent use of namespaces to ensure settings are applied appropriately at the database or database management level.
  • Procedures for validating config settings: The procedure ListConfig returns additional information about configuration settings. New procedure CheckConfigValue performs dry-run validation of new setting values.
  • Cypher-shell provides auto completion of commands.
  • Cypher-shell read access when there is no leader (Enterprise) read operations may be performed via cypher-shell using the neo4j:// scheme even when the cluster has no leader. Writes will return an error. 
  • Cypher-shell environment variables for URI or address use either NEO4J_URI and a new parameter –uri or NEO4J_ADDRESS to match the existing parameter –address.
  • CREATE DATABASE FROM URI enables Administrators to create a database by restoring from a backup on remote storage (HTTP, HTTPS, S3.)
  • New backup subsystem (Enterprise) provides 
    • Full and differential backup to an immutable file, and aggregation to compile a chain of backups into a full backup. 
    • Differential backup reduces storage requirements by 85% and provides point-in-time restore on timestamps or transaction ids. 
    • A new backup API for backup management and operability and target multiple URIs in a single backup command to support Autonomous Clusters. 
    • The Backup subsystem from Neo4j 4x is available as neo4j-admin database legacy-backup and legacy-restore. 
  • Strict validation for configuration settings by default to ensure the servers do not attempt to start with incorrect configuration (server.config.strict_validation.enabled). Turn off strict validation to enable start up, and log warnings.
  • New namespaces for Metrics (Enterprise) consistent with the Database or Database Management Server 
  • Neo4j.log has log rotation enabled by default – defaults are max file size is 20 MBytes (SizeBasedTriggeringPolicy), max number of log files is 7 (DefaultRolloverStrategy)
  • All logging is controlled by log4j, including neo4j.log, configuration settings are located in the $NEO4J_HOME/conf folder in the user-logs.xml used for neo4j.log and server-logs.xml used for debug, security, http and query log. Query log uses the same format as neo4j.log
  • Order transaction log files by creation time in debug.log and not alphabetical sorting.
  • Destination database name is included in the debug.log when the neo4j-admin database import command is used.
  • Transaction metadata included in Cypher-shell queries so that logs record the source of the query.
  • Cypher-shell logging (-log) Support can use cypher-shell to replicate problems with the Java Driver or Bolt without having to edit the client application. 

Security

  • Cypher-shell impersonation (Enterprise) use and or test user impersonation via Cypher-shell 

Platform & Supportability

  • Requires Scala 2.13 (included) and Java JDK 17  – full details of System Requirements are available here.
  • New Support Terms – Refer to Support Terms for full details – in summary
    • The Major release is supported with Hotfixes only until the first Minor release, each Minor release is supported with Hotfixes until the next Minor release. 
    • Hotfixes will only be released between Minor releases in exceptional cases, e.g. High Severity Security fix, and will receive product support until the next Minor release. 
    • In order to maintain Product Support for new bug fixes and feature enhancements, customers must apply the latest Minor release.
  • Migration from Neo4j 4.4 to Neo4j 5 In order to migrate from Neo4j 4.4.x to Neo4j 5 follow the migration guide available here. 
  • Any-to-any version rolling upgrade provides a streamlined upgrade experience from 5.0 onwards; upgrade is possible from any 5.x version to any later version of 5.y e.g. 5.2 to 5.6.
  • Log acceptance of the enterprise agreement in neo4j.log
  • Transaction state memory allocation configured to use ON_HEAP tx state by default as this benefits most workloads observed in Aura. 
  • Consistent write throughput with Corretto JVM on AWS Graviton 2 performance investigation demonstrated a consistent write throughput vs Oracle JVM on the AWS Graviton 2, and Intel architectures.
Please refer to the changelog for full details of the changes..

Documentation

The documentation is available here: