After a successful Milestone 2 release of Neo4j 1.5 "Boden Bord" and excellent community and customer feedback, we've been busy at work putting the finishing touches to our Neo4j 1.5 GA release, which is now available on our downloads page. Since the last milestone you'll find we've smoothed a few rough edges and the documentation has been made really spick-and-span. We think this is our best release yet, but you can be the judge of that considering the splendid set of features and improvements that have gone into it.
Down in the engine roomThe Neo4j kernel and other low-level components always gets some love from our hackers, and although not all of their efforts are immediately obvious as new shiny features their endeavours keep Neo4j getting smaller and faster (and brighter and shinier) every release. In the 1.5 GA release we've added some cool stuff and importantly we've taken some stuff out too — so your databases will be smaller on disk!
- Property store(s) have a new layout on disk, resulting in roughly a 30% reduction in size and a speed bonus as fewer I/O read operations for reading properties. Correspondingly, we've updated the batch inserter and added a store migration utility that can be run on startup to migrate older stores.
- There's a lot of useful system/environment logging that will appear in messages.log to help problem solving for lone hackers, community members, and our customers.
Server's upThe Neo4j server has received a lot of attention in this release, both in the Webadmin tool and the REST API.
Webadmin has been substantially refined and now offers style profiles that enable users to create rich, domain-specific graph visualizations. It also supports user-defined icons, which can really help with large/interconnected graphs. The visualization in Webadmin really looks super now, and so will your great domain-specific graphs. We'd love to see what you come up with.
For inspiration, take a look at what computational biologist @pablopareja has done with an excellent domain-specific visualization example in his post on microsatellites:
The Neo4j server has been upgraded to support:
- HTTP request-level authorisation, fully customizable by developers.
- More control over the server's IP address.
- Lower memory overhead for the batch API and better response codes/hints when errors occur.
- Simpler REST indexing APIs, particularly useful for folks on the .NET platform.
CypherThe Cypher query language goes from strength to strength and is becoming an important pillar of how developers and users interact with graph data. Building on the solid foundation released in the previous milestone, the Cypher team have managed to move quickly enough to squeeze in even more features for this GA release. So in addition to all the goodies from previous releases:
- Optional Relationships in match clauses.
- New predicates ALL/ANY/NONE/SINGLE for iterables.
- Path functions for NODES/RELATIONSHIPS/LENGTH.
- Parameterizable literals,index queries and node/relationship id.
- Support for the shortest path algorithm.
- Bound relationships.
- Sensible NULL checking.
- A new aggregate function to COLLECT results.
- The DISTINCT modifier for all aggregate functions.
- Nodes/relationships can be parameters.
Highly Available, made Highly AwesomeOur team of tamed kernel hackers have been applying their talents to improving the operational characteristics of Neo4j's HA clustering. The HA protocol runs way faster now thanks to a revised asynchronous implementation, to the point where production clusters can be run spread across geographically remote locations on unpredictable cloud hardware. Talk about Web scale!
We've also made a set of changes under the covers to refine the way Neo4j clusters work at larger scales and distributions, including some level of self-healing when transaction managers restarted when they're found to be in a non-operational state, and proactive repairing of the underlying datastore after a full store copy from master so that log version is synced.
To make operating HA clusters a more convenient experience, we've added better support for keeping ZooKeeper under control and changed the names of some of the Neo4j config to de-emphasise ZooKeeper's role and keep cluster administration focussed on Neo4j (which means you might have to revise your deployment scripts to use Neo4j 1.5 GA).
Autumnal BlossomsFollowing closely on the heels of the 1.5GA release, Spring Data Neo4j (SDN) will be going to 2.0.0.RELEASE. We've gotten great feedback from the SpringOne 2GX conference in Chicago, during which we released a milestone of SDN. Much code has been improved, examples polished and documentation updated with all the changes. If you're a Java enterprise developer, this is the hot package to warm up your code. Learn more by reading the guide book "Good Relationships" by our own Michael Hunger.
Get it while it's hotWe always value your feedback and would love for you to join our friendly and information-rich community mailing list.
The Neo4j 1.5 GA is ready for download, so download it and get involved
Until the next release, stay connected.
Jim Webber, Chief Scientist @ Neo Technology