Release Date: 17 May 2018
We are proud to announce our latest Neo4j Database release – Neo4j 3.4. We encourage everyone to try out all the new features. Neo4j 3.4 will be available within Neo4j Desktop automatically for new databases and upgrades.
Neo4j 3.4 is the core technology of the Neo4j Graph Platform.
Multi-Clustering
Multi-Clustering is the flagship feature of Neo4j Database 3.4, advancing the Graph Platform in scale, expanded uses and performance.
With Multi-Clustering, you can create and manage multiple named database clusters, effectively partitioning the graph into independent parts.
Multi-Clustering can be used to logically partition graphs; create highly-available, large-scale multi-tenant SaaS systems; meet geo partitioning requirements; or oversee multiple graph implementations across the enterprise. For example, Multi-Clustering is perfect for building GDPR-compliant or otherwise regulated systems by country, or segmenting a graph database according to product line or division.
Multi-Clustering also comes with a new directory service that manages a routing table of locations for each named database cluster. The directory service lives within lower levels of Bolt drivers at the same level as cluster load balancing and routing logic. When using a driver at the application level this multi-cluster resolution happens transparently in the background.
New Data Types for Space and Time
Neo4j Database introduces two brand-new data types: a family of date and time data and three-dimensional geospatial data. These new data types enable optimized Cypher queries for searches across time and/or space.
The new date/time data types include a variety of formats and conform to a familiar SQL-like model, including local dates and times with and without time zones.
In addition to traditional latitude and longitude, the new geospatial data types in Neo4j also include Cartesian coordinates (x, y, z), radial distances, altitude, depth and slope.
Both date/time and geospatial coordinates are fully understood and optimized by Cypher and official Neo4j language drivers. They can also be indexed, in which case they will automatically use Neo4j’s new native index, which is as fast for reads and ~5x faster for writes than Lucene-backed indexes in Neo4j.
Performance Improvements
Neo4j 3.4 is faster in terms of both reads and writes, and these overall performance improvements are proportionally reflected in both editions.
Performance improvements summarized:
- Writes are now up to 5x faster for nodes with indexed string properties, thanks to native indexes, which are now able to handle strings, date/time, and spatial; and since Neo4j 3.3, numerics.
- Cypher is faster across the board. Internal testing shows that the Neo4j 3.4 Cypher runtime is 20% faster than Neo4j 3.3 Community Edition and Neo4j 3.4 Enterprise Cypher runtime is 50-70% faster than Neo4j 3.4 Community Edition.
- Transaction state consumes less memory thanks to various efficiency improvements (including native indexing) working together.
- Bulk imports via neo4j-admin import are significantly more memory efficient. The loader can handle over a 100 billion nodes and relationships and scales linearly to 1M+ record inserts per second.
- Improvements in Raft consensus significantly improve write performance across the cluster for large transactions.
Administration & Security Features
Key highlights for database administrators include:
Source for Neo4j Enterprise Edition includes additions to the license to clarify its intent.
Detailed Changes and Docs
For the complete list of all changes, please see the changelog. Look for the 3.4 Developer manual here, and the 3.4 Operations manual here.
Upgrading to Neo4j 3.4
Neo4j Operations Manual: Upgrade 3.4 Upgrade FAQ.
When upgrading to Neo4j 3.4 for the first time, be sure to read the current upgrade instructions in the Neo4j Operations Manual, as there are additional steps and considerations.
Neo4j 3.4 supports direct upgrades from all 2.3 releases (recommended to be on latest patch). Pre-2.3 users need to upgrade to 2.3 before upgrading to 3.4.