Connecting the dots

Neo4j learns to write with version 1.8

Elliot Bentley

Java-based graph database gets new grammar elements and “zero-downtime” updates in latest release.

Open source NoSQL graph Neo4j has seen its latest major GA release, version 1.8, which includes new ‘write’ grammar elements of the database’s unique query language Cypher, as well as rolling upgrades across a cluster.

Neo4j is a specialised graph database designed to model relationships between nodes, which could be people, places or objects. The most famous example of a graph database in action is on Facebook, where an Open Graph is used to model users’ relationships with brands, songs and other entities.

Neo Technology’s Java-based graph database is Neo4j, which is now over two and a half years old and onto version 1.8. In comparison to the last major update, which took just a month to go from its first milestone to GA, 1.8 has been cooking for a while. Still, it appears to have been worth the wait.

The biggest change is that Neo4j language Cypher has been given the power to make changes directly to the database with additional grammar such as CREATE, SET, DELETE and FOREACH.

CREATE does what it says on the tin, and can be used to create new nodes, set properties and even create relationships between these nodes within a single query. SET and DELETE allow properties to be modified, while FOREACH can be used to make batch changes. Another addition is the CREATE UNIQUE clause, which acts similarly to the MATCH clause but with the ability to create needed relationships if no match is found.

Another feature, and one particularly interesting to ops, is Neo4j’s new zero-downtime rolling upgrade feature. Key to this is that it allows compatibility between servers running different versions – which may have incompatible protocols – throughout the cluster. In theory, cluster availability should remain undisturbed, allowing requests to be served from either slaves or masters even while upgrading – which of course results in better uptime. Compatibility is available with versions dating as far back as last year’s 1.5.3.

Other new features are designed to make Neo4j even snappier to use, such as streamed responses to REST API requests and upgrades to the traversal framework. There’s also a range of smaller improvements and bug fixes.

Version 1.8 is available to download now, and full release notes are available.

Photo by Vick.

Inline Feedbacks
View all comments