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.
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.
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
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.
|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
:queriescommand and lists all currently running queries in the cluster.
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-shelland command-line admin tool called
cypher-shellis 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.
neo4j-admincombines various different tools like backup and consistency checker under one roof and introduces some new functionality like
loadof a database.
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 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.
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.
Take Neo4j 3.1 for a spin and discover what makes it the world’s leading graph database.
Download Neo4j 3.1
About the Author
Alastair Green , Query Languages Standards & Research Lead, Neo4j
Alastair Green leads Neo4j’s work on graph query language development and standards, and he is part of the team making the Cypher language available in Apache Spark. He has a background in enterprise data integration and transaction processing product design and deployment.
He brings a strong mix of consulting, architecture, and product skills to the Neo4j team. He is Neo4j’s product manager for the Cypher language, and member of the Neo4j Cypher Language Group (CLG)
His career in IT began in software development, evolving into pre-sales and post-sales, then into various architect, consulting and business roles, and then eventually founding and running a startup specialized in distributed transaction management. For the last eight years, Alastair has worked in senior data-related product management and enterprise architecture positions inside of financial services: First at Barclays, and then at RBS where he was the head of Design Architecture for the Risk Solutions group.