The 1.9 release adds primarily three things:
- Auto-Clustering, which makes Neo4j Enterprise clustering more robust & easier to administer, with fewer moving parts
- Cypher language improvements make the language more functionally powerful and more performant, and
- New welcome pages make learning easier for new users
Auto-Clustering CapabilityThe vision for 1.9 started over a year ago. We were exploring ways to make Neo4j Enterprise clustering more operationally self-sufficient, as well as easy to set up and deploy. An idea that emerged was to take on the cluster coordination functions that were at the time being delegated to Zookeeper. This would mean being able to run a high-availability cluster without having to maintain and operate a separate Zookeeper cluster. After some amount of research, we embarked on the path of taking everything that we’d learned about high-availability clustering--including bringing in a leading-edge consensus protocol known as Paxos-- and set about the task of baking all of this knowledge and resilience into the product. The result, Neo4j 1.9 Enterprise, is an even more robust and manageable high availability graph cluster that runs wholly autonomously, without the need for Zookeeper. Fewer moving parts means fewer things to set up, configure, and manage. We figure that's a good deal.
Cypher Language ImprovementsOver the course of building 1.9, we added a number of other improvements spanning all of the editions of the product. Cypher received quite a bit of attention, with improvements ranging from a new set of functions (string handling, REDUCE, TIMESTAMP), to improved memory utilization with aggregate and LIMIT operations. Also new in 1.9 is a Cypher profiler (rudimentary but already very useful, and slotted to improve over time). We also introduced the ability to “ORDER BY”, “SKIP” and “LIMIT” in conjunction with a WITH clause and semi-automatic string conversion. And of course we made a number of general performance improvements to the Cypher optimizer, as we now do with every Neo4j release; and upgraded the Scala version to 2.10.
Other AdditionsBesides Cypher and auto clustering, the clustering architecture now includes a new neo4j-arbiter, for use in consensus making in clusters with even number of instances. New REST endpoints have been added for inspecting cluster status information (master, slave, etc). Online Backup in Neo4j Enterprise now includes auto-detection of full vs incremental backup based on existing content at the backup location. Improvements in performance have been made across the board, and for new users, the Neo4j Web UI now sports a Welcome Guide, that explains the basics of getting started.
This release is brought to you not only by the efforts of the Neo Technology team, but owes its existence to your contributions, questions, and requests. We'd like to thank you -- the Neo4j community -- for all of your engaged feedback. Please keep it coming!
We hope you enjoy this new release!
The Neo4j Team
P.S. Please be sure to have a look at the list of deprecations, to make sure your application aligns with where the product is going.
P.P.S. If you're interested in learning more about this release, we encourage you to have a look at the release notes. This is of particular note if you plan to upgrade from an earlier version of Neo4j HA, as the new clustering architecture involves some operational changes.
We also welcome you to attend one of our world-wide trainings or a GraphConnect conference near you