Thursday, May 26, 2011

Announcing Neo4j 1.4 M03 “Kiruna Stol”




Today marks our third milestone in the Neo4j 1.4 releases. We’ve spent the time since our last release listening to the community and adding to our APIs to help make working with the database even easier and more productive. Under the covers we’ve also built in some performance enhancements that we think you’ll appreciate. And our eye-candy, which you know as Webadmin, has also been extended and tweaked.

Loop-the-loop

As the community has been working through new use-cases, we’ve heard that creating a relationship from a node back to that same node (so called self relationships) has become a desirable feature. As of this release, self relationships are supported by the Neo4j kernel. We’ve decided to implement the feature in the least disruptive way possible, using the existing Node.createRelationshipTo(...) method, which now allows you to use the same destination node as the originating node. Be aware that the kernel won’t complain about loops, so make sure to test that you don’t accidentally create them and cause your traversals to misbehave!

Webadmin indexes

Our Web wizards have been hard at work adding more functionality (and more bling) to the Webadmin tool. You can now interact with your indexes though Webadmin, which allows you to create and delete node and relationship indexes from the Index Manager tab, or you can query them from the Data Browser tab, which now accepts an extended query syntax.

Faster, smaller, smarter caching

Down in the kernel, we’ve implemented a novel way of caching relationships based on their direction. For those nodes which have many (millions) of relationships, iterating over those relationships will be much faster than before. What’s particularly nice about this upgrade is that you don’t need to change your code, nor are there any changes to the Neo4j API. That’s full of win!

Highly available, less highly confusing

In Neo4j HA we’ve built a new algorithm that favors a stable master database over time in a cluster. This prevents the hiccup where ZooKeeper could cause unnecessary (inconvenient and annoying) master switches.

And finally...

All this goodness is now available from our download site. Grab it, play with it and give us your feedback on the mailing list. Don’t forget to be safe - this is a milestone release so always back up your data! Enjoy!

Ian Robinson
Director of Customer Success, Neo Technology

(For those of you who haven't yet rushed off to grab the release, and are still reading, a belated introduction. I'm Ian Robinson, and as you can see, I have the delightful title of Director of Customer Success. That means I'm here to help make you wildly successful in everything Neo4j and graph related. I'm based in London, but expect to see me pop up wherever Neo4j is being used to address your complex data issues. Over the next few weeks, we're going to make it even easier for you to give us your feedback, make suggestions, and raise issues. In the meantime, you can contact me at ian.robinson@neotechnology.com, or through the mailing lists.)

2 comments:

Anonymous said...

That's great news, thanks guys! Can you tell us anything about when the new Python driver will be available?

Can you guys put it onto github even if it needs a bit more polishing as quite a few people are quite eager to use it in their projects already ...

Anonymous said...

Any chance you could make self-relationships configurable. I don't think people understand just how complicated--and possibly dangerous--their traversal functions will become with that feature active.