Tuesday, December 20, 2011

Neo4j 1.6.M02 “Jörn Kniv”


We have another milestone for you - 1.6.M02. As I’ve written before, we’re heavily into improving our infrastructure - our build, stress testing etc. But we have more: Faster and better Cypher and open beta on Heroku!

Heroku Public Beta

Our private beta on Heroku was going along just fine. We were getting positive feedback, tweaking provisioning and monitoring, and starting to feel comfortable about stepping into the cloud. Then Peter Neubauer showcased a great demo last week on how to get up and running on Heroku with Neo4j, topping it off with a Google Spreadsheets front-end. This clever hackery was even featured in the Heroku December newsletter.

It seemed time to finally allow other people to join the fun. So, we’re pleased to announce that the Neo4j Add-on is now in public beta on Heroku.

With a verified account, creating a Neo4j application in the cloud can now be as simple as:
sudo gem install heroku
git clone git@github.com:neo4j-examples/heroku-neo4j-appscript-demo.git
cd heroku-neo4j-appscript-demo
heroku apps:create
heroku addons:add neo4j
git push heroku master
heroku open
curl -d"start n=node(0) return n" http://your-app-name.heroku.com/raw-cypher
heroku addons:open neo4j

If you no longer require it, please remove the heroku app with
heroku apps:destroy --app your-app-name --confirm your-app-name

Documentation on how to get started with the Heroku Neo4j Add-on can be found at the Heroku DevCenter. We’ll be posting additional guides for getting started on Heroku with Neo4j. Stay tuned.

Latest on Cypher

Most the work in Cypher for this milestone has been internal changes that are not immediately visible to an end user. The type system has been rebuilt and revamped, and a second, simpler, pattern matcher has been added. The first change makes the Cypher code base faster to work with, and the second makes your queries faster.

End user facing changes include: possibility to get all shortest paths, the COALESCE function, column aliasing, and the possibility for variable length relationships to introduce an iterable of the relationships.

Finally, there are two breaking changes - the syntax for the ALL/NONE/ANY/SINGLE predicates has changed, and the ExecutionResult is now a read-once, forward only iterable.

New to Cypher? Then you should watch this updated "Introduction to Cypher" screencast by Alistair Jones:


New on the web admin

I’m quite happy to announce that the web admin interface now supports Cypher calls directly in the data browser. It’s so sweet to be able to query your way around the node space! I luv it.
Moreover, Gremlin has been updated to version 1.4.

Breaking changes and deprecating

We’re introducing a new way to handle breaking changes. They will be flagged in the change logs as “BREAKING CHANGE.”
Where we do introduce a breaking change, we will continue to support the older functionality for 2 GA releases. This would typically be six months heads up and will allow you to adopt new GA releases quickly while giving plenty of time to develop against the new API. This policy applies to published and stable APIs, including Cypher.
In the same vein: We now have a deprecated feature. Cypher execution is now part of the core REST API, the cypher plugin is deprecated.
This policy does not cover third-party add-ons (like Gremlin from Tinkerpop) which have their own release strategy.

Bug fixes galore

This milestone has a slew of bug fixes incorporated. For more information please read more on the various “CHANGES.txt” files.

Go for it

Your feedback is of great value and we would love for you to join our community mailing list.

The Neo4j 1.6.M02 is ready - download now and get involved!

Björn Granvik et al
Director of Engineering @ Neo Technology

5 comments:

Phil Hartley said...

OK. So what does “Jörn Kniv” mean in Swedish? Inquiring minds would like to know...

Peter Neubauer said...

Ha!

Jörn = Small town in the municipality of Skellefteå in Northern Sweden and train station on the way from Abisko (remember Neo4j 1.3?) to Malmö. Also, all letters are in Björn aka our Engineering Manager :)

Kniv = Knife in Swedish, so much for the educational part of the name ...

Phil Hartley said...

Yea. Thanks but you gave me a literal translation. Of course, I checked out that Jörn was a small (and shrinking) city in N Sweden. But why the combination of “Jörn" and "Kniv"? What does it mean, please?

Peter Neubauer said...

Ah!

So, the name is constructed of two parts:

1. A train station on the railway down from Riksgränsen (northernmost station in Sweden on the Norwegian border near Narvik) down to Malmö, home of the Swedish Neo4j head office.

2. An educational Swedish work, can be furniture, everyday things etc (much along the lines of IKEAS furniture naming).

Happy new year!

Phil Hartley said...

Thank you so much for responding! A Happy New Year to you too!