Neo4j 3.1 GA Release: Causal Clustering, Security & More


We are excited to announce our landmark new release of Neo4j 3.1.

Neo4j 3.1 introduces a new state-of-the-art clustering architecture and new security architecture to meet enterprise requirements for scale and security. This new release extends the comprehensive set of graph functionality for which Neo4j is best known and builds upon the advanced client drivers introduced in Neo4j 3.0.

Let’s take a closer look at what’s new in Neo4j 3.1:

Causal Clustering: New State-of-the-Art Cluster Architecture


Neo4j 3.1 introduces Causal Clustering – a brand-new architecture using the state-of-the-art Raft protocol – that enables support for ultra-large clusters and a wider range of cluster topologies for data center and cloud. Causal Clustering is safer, more intelligent, more scalable and built for the future.

Learn about the beta release of Neo4j 3.1 with Causal Clustering architecture & security features


Built-in Load Balancing

Load balancing is now fully handled by Neo4j Bolt drivers, which operate in concert with the Causal Cluster to spread the workload. New cluster-aware sessions, managed on the client-side by the Bolt drivers, alleviate complex infrastructure concerns for developers.

The Causal Clustering architecture with the Bolt protocol


Causal Consistency Explained

Similarly, Neo4j drivers work together with the Causal Cluster to offer one of the industry’s most comprehensive ACID-compliant tunable clustering consistency models. Newly introduced causal consistency enables support of a wider variety of applications where eventual consistency is unacceptable.

Causal consistency allows you to specify guarantees around query ordering, including the ability to read your own writes, view the last data you read, and later on, committed writes from other users. The Bolt drivers collaborate with the core servers to ensure that all transactions are applied in the same order using a simple concept: a bookmark.

The cluster returns a bookmark when it commits an update transaction, so then the driver links a bookmark to the user’s next transaction. The server that receives that next query starts a new bookmarked transaction only when its internal state reaches the desired bookmark. This ensures that the view of related data is always consistent, that all servers are eventually updated, and that users reading and re-reading data always see the same — and the latest — data.

A Stronger Security Foundation


As increasing number of our customers find value in using Neo4j across different departments, providing enterprise-class security and conforming with compliance requirements became top priority. Neo4j 3.1 raises the bar for safeguarding data and meeting compliance requirements by introducing multiple users, role-based access control, query and security event logging, list and terminate running queries, and fine-grained access control.

Multiple Users and Role-Based Access Control

Neo4j 3.1 offers you a choice of managing multiple users:
    • Built-in internal users repository (enabled by default)
    • LDAP connector to Active Directory or openLDAP
Built-in internal authentication means that user names and their passwords are managed inside Neo4j. We call this built-in functionality native users. Another option is to use LDAP connector to integrate Neo4j with Active Directory, OpenLDAP or other LDAP-compatible authentication services.

The new role-based access control (RBAC) framework introduces four predefined graph-global data-access roles: reader, publisher, architect and admin. Each role includes a set of authorized actions (read, write, etc.) permitted on the Neo4j data graph and its schema.

Role Privileges
reader Read-only access to the data graph (all nodes, relationships, properties)
publisher Read-write access to the data graph
architect Read-write access to data graph and set/delete access to indexes and any other future schema constructs
admin Read-write access to data graph and set/delete access to indexes and any other future schema constructs and view/terminate queries
List and Terminate Running Queries

Neo4j 3.1 introduces the ability to list and terminate all currently executing queries visible to the user. In particular, an admin can see and terminate any currently running query.

To simplify cluster topology management, Neo4j 3.1 introduces the Neo4j Browser widget, which is invoked with the :queries command and lists all currently running queries in the cluster.

Query management features in Neo4j 3.1 (now in GA release)

New Query Management Capabilities

Database Kernel and Operational Advancements


Neo4j 3.1 also introduces long-requested improvements in the database kernel, including more efficient space management. Node and relationship ID are now reallocated from deleted records while the cluster is online.

Another feature called Execution Guard enables administrators to specify max query duration per instance. Any query running longer than specified time is terminated and its transaction is rolled back.

Neo4j 3.1 introduces the new command-line Cypher interface called cypher-shell and command-line admin tool called neo4j-admin. The cypher-shell is based on Bolt, enables ad-hoc querying and scripting, extends Neo4j Browser development to the command line, and can run remotely with encrypted communication by default.

The neo4j-admin combines various different tools like backup and consistency checker under one roof and introduces some new functionality like set-initial-password and dump and load of a database.

Schema Viewer


New Neo4j Schema Viewer feature displays the graph model at the current point in time, uses exact database statistics for instant responsiveness and helps developers, admins and users understand and communicate the database contents.

The Neo4j 3.1 Schema Viewer


The Schema Viewer is built into the Neo4j Browser

Ultra-High Scalability with IBM POWER8 and CAPI Flash


Finally, Neo4j 3.1 introduces an official support for IBM POWER8 with CAPI Flash, supporting more than double the I/O throughput of the fastest Intel-based Flash solution. Neo4j on POWER8 with CAPI Flash enables in-memory and near-memory graph processing on an ultra-large scale, setting a new and higher bar for the scale of graph problems that can be addressed with other technologies.

Neo4j 3.1 on IBM POWER8 with CAPI Flash


Conclusion


We encourage you to try out all the new production-ready features of this release for yourself by downloading Neo4j 3.1 right here. We hope you can already find new use cases for its increased scalability and security, and we’re excited to start publishing those stories right here on the Neo4j blog.

On behalf of the entire Neo4j team, we hope you enjoy this release, and we’re looking forward to seeing the next-generation graph applications you build with it.


What are you waiting for?
Take Neo4j 3.1 for a spin and discover what makes it the world’s leading graph database.


Download Neo4j 3.1