Neo4j 3.5 improves the performance, utilization and security of the Neo4j Graph Platform. The native graph database is the core of the Graph Platform, and overall this is a very DevOps- and DBA-friendly release.
Release OverviewThis product release features many often-requested capabilities including full-text indexing and search, faster sorting with index-backed
ORDER BYsorting and a new Go language driver.
The release also completes the delivery of native indexes, delivering dramatic performance improvements.
Additional performance and transaction-management features include the choice of moving memory-hungry transaction states off heap, and transaction improvements within an Enterprise Edition cluster.
New security features include settings to prevent brute-force attack attempts, encryption of the cluster discovery service and support for the X.509 standard extension for Subject Alternative Name (SAN) and Hostname verification to simplify the administration of a Neo4j cluster in cloud environments. Intra-cluster discovery traffic builds on previously-released intra-cluster data encryption.
What’s New in All EditionsThe following new features, improvements and upgrades are included in both Neo4j Community Edition and Neo4j Enterprise Edition.
Full-Text Indexing & Search
This long-requested feature empowers text-intensive graph applications, such as knowledge graphs, metadata management and bills of material (BoM). It also opens up powerful possibilities in the world of AI with natural language processing (NLP).
Full-text indexing and search helps you quickly navigate your graph using searches for text in labels, relationship types and property values. This Lucene-based feature requires search procedures that include the familiar Lucene query syntax within them.
There are now seven full-text indexing procedures added to Neo4j 3.5, which search these indexes.
These procedures create and delete indexes using standard or custom analyzers as well as to search and match text in nodes or relationships. Full-text indexing procedures also control the transactional behavior of the index, in order to privilege consistency over write performance or vice versa.
Go Language Driver + All-New Seabolt Connector Architecture
Popularity is soaring for the Go programming language due to its ability to support CPU-level parallel processing while remaining simple to read, maintain and deploy. Not only are we introducing a new Bolt driver for the Go language, but we are doing so with a new connection architecture as well.
This architecture is based on a new high-performance C programming language connector nicknamed Seabolt (geddit?). This new Seabolt framework handles the complexities of interacting with a Neo4j cluster, allowing driver authors to focus on idiomatic language support and higher-level abstractions.
We’ve completed the implementation of native indexes within Neo4j for all data types (including spatial, temporal and Boolean values), as well as composite indexes. This should speed up data insertion up to 5x.
This project has spanned the last three releases of the Neo4j graph database, revealing dramatic performance improvements at each turn. In Neo4j 3.5, both non-native and native indexes are supported, but users should expect to move to native indexes at their convenience. (In order to upgrade existing Lucene-backed indexes in your database, simply drop and recreate the indexes as native.)
Off-Heap Transaction State
Database administrators now have the option to move the transaction state off heap with the advantage of reserving a larger amount of memory for running transactions.
This approach – coupled with optimizations in Neo4j’s Raft-based clustering – results in better control of memory usage and more predictable behavior of servers under heavy write loads. This fine-grained control also helps avoid out-of-memory situations.
When a user executes a Cypher query requiring sorted graph elements (particularly when using
ORDER BY), the query executor in Neo4j 3.5 has the option to use indexes to provide the results. This change is part of ongoing improvements in the use of indexes in Cypher queries.
This new capability delivers dramatic performance improvements for certain queries, as well as the sorting of result sets. The Cypher query planner and the query executor will continue to improve index-backed sorting even further in future versions.
What’s New in Enterprise EditionThe 3.5 release of Neo4j Enterprise Edition includes improvements in transaction handling within a cluster as well as a number of security improvements. Handling large transactions is both faster and more stable.
Clustering Discovery Service Encryption
The service that discovers and communicates with Causal Cluster members in Enterprise Edition is now secured via TLS (Transport Layer Security). This new discovery service encryption is based on Akka as an alternative to Hazelcast, which will be deprecated in a future release.
Brute-Force Attack Prevention
Neo4j Enterprise Edition now includes new settings for the number of failed authentication attempts before a user is temporarily locked from the system – preventing possible brute-force attacks. Both the number of attempts and the lockout duration are now configurable.
Subject Alternative Name (SAN) & Hostname Verification
This new feature for Neo4j Causal Clusters allows server instances to be listed by IP address, Common Name (CN) or a Common Name for all members of the cluster within a certificate.
This provides greater flexibility to cloud-based deployments where hostname and IP addresses change frequently. It is an implementation of the SAN extensions to the X.509 standard.
Deprecated Features in Neo4j 3.5
Deprecated features in the Neo4j Database 3.5 release include non-native indexes, HA clustering and some REST Server endpoints.
High Availability Cluster (master and zero-or-more slaves) has been deprecated. High availability is now provided by the next generation of Causal Clustering. Accordingly, REST server endpoints – mostly for server and cluster administration – have been deprecated. This is an ongoing task that will lead to a transactionally-secure REST interface used to query Neo4j in service-based environments.
ConclusionDon’t just take my word for it: We encourage you to download Neo4j Database 3.5 and try it out for yourself – whether you’re using Neo4j Desktop or as part of your Enterprise Edition license.
I’m excited to hear what you think of the new features and how you’ll use them to power connected-data applications at the edge of what’s new.
For all of the Neo4j team,
Download Neo4j Desktop today and witness the power of connected data like never before.
Download Neo4j 3.5
About the Author
Ivan Zoratti , Director of Product Management, Neo4j
Ivan is part of the Product Management team at Neo4j. He started his career at Digital Equipment Corporation, following his passion for the kernel of the PdP 11 machines and later with VAX/VMS Macro programming and networking. An author and an entrepreneur, he founded Dianomic Systems (an IoT startup), was CTO at SkySQL (now MariaDB) and led Systems and Sales Engineering teams at MySQL, Sun and Oracle.
Ivan lives in Windsor, UK, he practices martial arts and helps open source communities around the world.