Release Date: 17 November 2020
We are proud to announce the general availability of our Neo4j Database – Neo4j 4.2 Enterprise Edition. Neo4j 4.2 is the core technology of the Neo4j Graph Platform.

Important Information

This release is generally available and ready for production.

Highlights

Administration

  • ALIGNED store format – A new store format that reduces the total number of I/O operations can be set at startup for new databases.
  • Procedures to observe the internal scheduler – New functions to observe the execution of background tasks have been introduced.
  • Dynamic settings at startup – Configuration can be set using the new –expand-commands argument and by executing calls to external components prior to startup.
  • WAIT/NOWAIT in Database Management – Command to manage databases (CREATE/DROP/START/STOP) can be executed with a WAIT or NOWAIT option. With WAIT, a user can wait up to the completion of the command, a timeout or a given number of seconds.
  • Index and constraint administration commands – Cypher provides commands to create, drop and view indexes and constraints (CREATE/DROP/SHOW INDEX/CONSTRAINT).
  • Filtering in SHOW commands – Cypher SHOW commands provide a new, simple way to retrieve a selection of columns, filter and aggregate the results.
  • Backup/Restore improvements – DBAs can create backups and restore databases in a multi-database environment with more sophisticated features: metadata can be saved aside of a database and applied to their restore on demand, multiple or all databases can be backed up or restored.
  • Compress metrics on rotation – CSV metric files can be compressed on rotation.
  • Database namespace for metrics – Metrics can be organized per database on request.
  • neo4j-admin improvements – The tool has improvements in operations for “copy”, “store-info” and “memrec”.
  • HTTP port selective settings – The HTTP ports can be enabled or disabled separately for Browser, HTTP API, transactional endpoints, management endpoints and unmanaged extensions.

Causal Cluster

  • Run/Pause Read Replicas – The replication of individual databases can be paused or resumed in read replicas.
  • Database quarantine – Databases with internal errors can be selectively quarantined on a member of the cluster.

Cypher

  • Planner improvements – Cypher planner has extended the use of the “index-backed order by” feature, i.e. it may set more efficient plans in more cases when an ORDER BY clause is present and it is supported by an index.
  • Octal literals – Octal numbers in Cypher queriey in Neo4j 4.2 start with ‘0o’ – Cypher .

Functions and Procedures

  • round() function – round() has been improved to select the precision of the returned value.
  • dbms.functions() procedure – functions are organised in categories.

Security

  • Procedures and user defined function privileges – DBAs can grant, deny or revoke access for user to specific procedures and user-defined functions. Users may also have access with boosted privileges, compared to their current security profile.
  • Role-Based Access Control Default graph – Permissions can be granted, denied or revoked against the default graph, regardless of the default setting.
  • PLAINTEXT and ENCRYPTED password in user creation – Passwords can be set in plain text or in a one-way encrypted format on request.
  • SHOW CURRENT USER – Users can see the profile of their current user.
  • SHOW PRIVILEGES as commands – DBAs can visualize the commands to execute to recreate a security profile.
  • OCSP stapling support for Java driver – The driver provides support for OCSP stapling.

Important Changes

We made some changes in the behavior of new Neo4j installations. In general, upgrades are not affected by the change, but please check carefully this list, but there two exceptions:
  1. The metrics.filter setting has been introduced and by default it reduces the number of metrics collected also in upgraded installations.
  2. JMX metrics, governed by metrics.jmx.enabled is set to false by default.
This is the complete list of changes:
  • metrics.csv.interval – In new installations, the default value is 30 seconds (it was 3 seconds).
  • metrics.csv.rotation.compression – This is a new parameter, CSV metric files are compressed on rotation by default (they were not compressed in previous versions).
  • metrics.jmx.enabled – In new installations, JMX metrics are disabled by default.
  • metrics.filter – The number of metrics set by default has been reduced. The current default set includes:
    • bolt.connections
    • bolt.messages_received
    • bolt.messages_started
    • dbms.pool.bolt.free
    • *dbms.pool.bolt.total_size
    • *dbms.pool.bolt.total_used
    • *dbms.pool.bolt.used_heap
    • *causal_clustering.core.is_leader
    • *causal_clustering.core.last_leader_message
    • *causal_clustering.core.replication_attempt
    • *causal_clustering.core.replication_fail
    • *check_point.duration
    • *check_point.total_time
    • *cypher.replan_events
    • *ids_in_use.node
    • *ids_in_use.property
    • *ids_in_use.relationship
    • *pool.transaction..total_used
    • pool.transaction..used_heap
    • pool.transaction..used_native
    • store.size
    • transaction.active_read
    • *transaction.active_write
    • *transaction.committed
    • transaction.last_committed_tx_id
    • *transaction.peak_concurrent
    • *transaction.rollbacks
    • page_cache.hit
    • page_cache.page_faults
    • *page_cache.usage_ratio
    • *vm.file.descriptors.count
    • *vm.gc.time
    • vm.heap.used
    • *vm.memory.buffer.direct.used
    • *vm.memory.pool.g1_eden_space
    • *vm.memory.pool.g1_old_gen
    • *vm.pause_time
    • *vm.thread

Deprecations

The following procedures and functions have been deprecated:
  • “whitelist” settings have been replaced by “allowlist” settings: dbms.dynamic.setting.whitelist, dbms.memory.pagecache.warmup.preload.whitelist, dbms.security.procedures.whitelist and dbms.security.http_auth_whitelist.
  • Log rotation delay settings: dbms.logs.security.rotation.delay, dbms.logs.user.rotation.delay, dbms.logs.debug.rotation.delay. These settings are no longer needed after replacing the custom logging framework with log4j.
  • Log and logger interfaces: debugLogger, InforLogger, warnLogger, errorLogger and bulk method on the Log interface. The debug ,info, warn and error methods on the Log interface can be used directly instead.
  • Octal syntax: writing octals with syntax 0… is deprecated in favor of new 0o….
  • Hexadecimal syntax: writing hexadecimals with syntax 0X… is deprecated since 0x… is favored
  • db.createIndex(): deprecated in favor of the CREATE INDEX command
  • db.createNodeKey(): deprecated in favor of the CREATE CONSTRAINT … IS NODE KEY command
  • db.createUniquePropertyConstraint(): deprecated in favor of the CREATE CONSTRAINT … IS UNIQUE command
  • db.indexes(): replaced by SHOW INDEXES
  • db.indexDetails(): replaced by SHOW INDEXES VERBOSE OUTPUT
  • db.constraints(): replaced by SHOW CONSTRAINTS
  • db.schemaStatements(): replaced by SHOW INDEXES VERBOSE OUTPUT and SHOW CONSTRAINTS VERBOSE OUTPUT
  • dbms.security.procedures.roles: replaced by EXECUTE BOOSTED privileges (for both procedures and user-defined functions)
  • dbms.security.procedures.default_allowed: replaced by EXECUTE BOOSTED privileges (for both procedures and user-defined functions)
  • When an expression is returned by a subquery, a warning is raised if it does not have an alias
The documentation is available here.

Available Packages

Available Linux Repositories

Upgrading to Neo4j 4.2 Enterprise Edition

In order to migrate from Neo4j 3.5 to Neo4j 4.0, 4.1 or 4.2, follow the migration guide available here.
The process to upgrade from Neo4j 4.0 or 4.1 to Neo4j 4.2 is described here.