Release Date: 23 June 2020We are proud to announce the general availability of our Neo4j Database – Neo4j Enterprise Edition 4.1. Neo4j 4.1 is the core technology of the Neo4j Graph Platform.
Important InformationThis release is generally available and ready for production.
- Graph privileges in Role-Based Access Control (RBAC) security – The new privileges provide fine-grained control over write operations in a graph: administrators can grant, deny or revoke users the privilege to create, delete or overwrite a graph element, create, remove or update a property, create or remove a node label.
- Database privileges for transaction management – Administrators can grant, deny or revoke users the privilege to show or terminate transactions executed by a given list of users in a given list of databases.
- Database management privileges – Administrators can grant, deny or revoke users the privilege to create, or remove databases.
- User management privileges – Administrators can grant, deny or revoke users the privilege to create, modify, remove or show users in a standalone or clustered environment.
- Role and privilege management privileges – Administrators can grant, deny or revoke users the privilege to create, modify, remove, assign or show roles in a standalone or clustered environment. Privileges are also set to assign, remove or show privileges in roles.
- PUBLIC built-in role – The PUBLIC role is automatically assigned to all users, it allows administrators to set a default security model for a standalone or clustered environment.
- SHOW commands improvements – The SHOW DATABASES, SHOW PRIVILEGES, SHOW ROLES and SHOW USERS commands provide new filtering and sorting capabilities for columns and rows.
- Rolling upgrades improvements – Clustered installations can be upgraded without downtime. Rolling upgrades can be applied from any patch to the next patched version. This feature is also available when administrators upgrade Neo4j from any 4.0 version to 4.1.
- Memory management settings and memory monitoring procedures – Administrators can set the amount of heap space used to manage transactions. Settings are per trasanction, per database and for the whole DBMS. Transactions that exceed the threshold are killed. The amount of memory used by transactions or by other internal components can be monitored with the use of the two procedures dbms.listTransactions() and dbms.listPools().
- Embedded Causal Clustering – Neo4j 4.1 can be used as a library embedded into custom applications, either as a standalone system or as a clustered environment using the Raft consensus protocol available with Causal Cluster.
- Cluster Leadership Control – Neo4j 4.1 provides more control over the leadership transfer with the Raft consensus protocol. Administrators can define preferrable leaders in order to balance readonly and readwrite operations according to the system infrastructure, for example when a cluster is formed by members in multiple data centers.
- Cluster Leadership Balancing – In Neo4j 4.1, leaders of different Raft groups in a multidatabase environment can be automatically balanced among the members of the cluster.
- Cypher Query Replanning Option – Query replanning can be controlled with pre-parser options of Cypher. Queries can be forced to be replanned or the replanning can be skipped, overrulling the threshold rules in place for planning. This is particularly efficient when administrators set up batched replanning scripts and seek for more predictable query response times during interactive operations.
- Cypher PIPELINED Runtime operators – The PIPELINED runtime can now serve more than 85% of the cases in read queries. Query performance are generally better with the new runtime compared to the still available SLOTTED runtime: tests show throughput improvements from 10% to 35%, depending on scale factor.
- Improvements in EXPLAIN and PROFILE commands – In Neo4j 4.1, EXPLAIN and PROFILE output provide more details of the query plan adopted by the Cypher runtime. Improvements include operator specific information, multirow descriptions, variables used in the query execution and memory usage.
- Database routing in Cypher – Cypher DML and DDL commands can be preceeded by a USE
clause that allows a user to route a query to a specific database.
- Automatic routing of administration commands – Cypher administration commands used for authentication and authorization management, database management etc. are automatically routed to the system database. Prior to Neo4j 4.1, administrators had to instantiate a new session to the system database in order to issue and administration command.
- Server-side routing for read/write queries in a clustered environment – In Neo4j 4.1 a client application can connect to any member of a cluster, the Cypher runtime can route readwrite transactions to the leader of a Raft group, whilst readonly transactions can be executed by any member of the cluster. In order to use this feature, client applications must use 4.1 compatible drivers.
- New configuration for Bolt connections – The internal Bolt server in Neo4j 4.1 provides settings to keep the connection alive during long running transactions. This setting is particularly useful in environments where load balancers and firewalls have strict rules over the killing of idle connections. The new settings also provide a better prevention over malificent client attacks with unsuccessful authentication.
Available Linux Repositories
Upgrading to Neo4j EE 4.1In order to migrate from Neo4j 3.5 to Neo4j 4.0 or 4.1, follow the migration guide available here.
The process to upgrade from Neo4j 4.0 to Neo4j 4.1 is described here.