Experiences OrientDB vs Neo4j [closed]
I am looking for the right Graph DB for a project. I tested Neo4j and really liked it. But the AGPL licensing issues put me off a little (you can read about it here).
I then found a couple of articles claiming that OrientDB is actually much faster. But they aren't really up to date. You find them here and here. And it is licensed under Apache 2, which is good.
So I just want to ask the great people of stackoverflow for your opinion.
- Scalability is important and OrientDB claims to be better at that (here)
- Licensing should be open
- I have a complex model of vertexes/edges and need to retrieve relationships up to 3 levels deep
- The mixture of document-graph that OrientDB offers seems to be a benefit
Thanks for your feedback!
Note: I am on the OrientDB team, my opinion is definitely slanted. I am also replying in a decidedly casual tone.
On your points:
1) On the topic of clustered deployment, currently it's not even a comparison. Neo4j is master-slave replication, they state themselves that it is generally only suited to single digit node deployments and the entire graph must belong on one machine. Hear it from them directly: http://www.infoq.com/interviews/ian-robinson-neo4j?utm_source=infoq&utm_medium=videos_homepage&utm_campaign=videos_row1
OrientDB has a full ability to do multi-master replication (every node can accept reads and writes), has the ability to shard data, intelligently distribute data using clusters and automate distributed queries and transactions. Our CEO recently did an excellent webinar for hazelcast showing our setup in this area: http://hazelcast.com/resources/orientdb-hazelcast-memory-distributed-graph-database/
2) Apache 2.0 is our community license, this is extremely liberal. You can even embed OrientDB community edition at no cost. (A)GPL worries some that their closed source code will be polluted. This may or may not be a threat, but it's sometimes hard to determine. Our community license is very feature rich including full distributed, multi-master replication and sharding.
3) Traversing relationships is kind of the point of graph databases. So either Neo4j or OrientDB will suit you just fine here... go 2000 levels in depth and it will still be performant.
4) The document-graph capabilities are great, but you knew I would say that. The product we've built is a production grade system designed to be a full on database not a side database used as a supplement to a RDBMS or other datastore.
I am coming off strong here. But I have good reason. Over the past 3 weeks a full team of developers at a world leading tech company have been testing OrientDB against Neo4j. For their very demanding use case, we were the better choice for a variety of reasons. Money was not the issue, we earned the business with our technology.
Take it for what it's worth, I've stated my bias up front. From my experience, once you work with OrientDB, there will be no looking back. Let us know if you need any help!