(RM) So we’re here with Ian Robinson of Neo Technology. In those two years I imagine a lot has changed at Neo. Loads of things have come and gone in the database itself. What have been memorable moments in those just over two years that have really popped out and you’ve thought – we’ve got that absolutely right, working on that (!)
(IR) Well, I have seen a lot over the past couple of years. A lot of customer growth, and a lot more functionally with the database. So when I first started with Neo I spending a lot of time working with customers, helping design, develop, and deploy solutions – and I’ve seen a number of things there. Neo4j is now back in Adobe’s Creative Cloud, it’s the social element of Adobe’s captivity cloud, so we’ve been working a lot with Adobe around that – It’s also running the largest parcel delivery network in Europe, again working with the guys who develop in that – very interesting and fruitful times.
More recently, in regard to the product itself, it’s seen enhancements to the data model. We’re introducing labelling which is actually a very powerful capability – very simple but very powerful. That’s coming this Summer.
Even more recently I’ve joined the engineering team here in London working on creating a distributed graph database.
Wow ok – I imagine that’s a highly requested feature – the ability to distribute a massive graph potentially in different locations, for different needs. You mentioned the labeling How does it differ from setting properties – what does labeling give the user that you couldn’t get before?
What you have today is nodes, relationships, and properties. Every relationship has a name, effectively has a label, but the nodes themselves are completely untyped. So very often people ask ‘How can we tell that this Node represents a customer or a product?’ The strategies today are very adhoc. Some people have a add a property called type, or label. Other people link relationships to a type name. What we’re promising with labels is the ability to support this at the level of the data model itself. So with labelling, you’re be able to attach one or more labels to a node and you’re going to say effectively this node is a user or a customer – very similar to using labelling in Gmail for instance.
You can have multiple labels – for instance User and Customer – or User and Adminstrator and so on. Then once we’ve got those labels we can start associating constraints with them, we can use them for reasoning about the graph within the database itself – so we can make more informed choices when we’re optimising queries. It gives us a lot of power, but it also gives the developer a lot of power.
What are the key features that are coming up that developers should be most excited about. And what’s on Neo Technology’s horizon?
So the ‘big ticket’ things are the enhanced data-model – so that includes labelling, includes enhanced indexing, and I think we’ll also see the query language effectively being able to treat the graph database, not only as a graph, but also a document storer.
On top of the that, going out towards the end of the year, beginning of next year, looking at distributed graph, being able to scale horizontally for writes and enormous volumes of data. Even in the interim we’re lifting the limits on the amounts of data you can store in a single instance. So today it’s in the 10s of billions – by the middle of this year there will be no upper limit on how much data can be stored in a single instance.
ALSO the Neo4j user group existing and upcoming talks.