48

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!

Community
  • 1
  • 1
Ole Spaarmann
  • 15,845
  • 27
  • 98
  • 160
  • 9
    Could someone explain, why this is being downvoted and people vote to close the question? Serious question, what did I do wrong? – Ole Spaarmann Oct 10 '14 at 20:49
  • 2
    I think in general, the SO format is for asking questions and getting answers. People often downvote posts that attract very opinionated answers, for example "could you recommend the best X" or "which is better, X or Y?" -- your question doesn't have any particular data set or query associated with it. If you reformulated your question to ask which features are better *for your problem* it would be easier to answer the question without just stating opinions "Well, I like this one better..." – FrobberOfBits Oct 10 '14 at 20:53
  • you should use Neo4j , i first tried to use OrientDB but have many bugs in its so called SQL but Neo4j solved my all problems – Ravinder Payal Oct 09 '15 at 05:52

1 Answers1

35

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!

Greg McCarvell
  • 445
  • 3
  • 4
  • 2
    Hazelcast link is great. We're migrating to hazelcast at work and I'm working to get us to adopt OrientDB. – CodeShaman Oct 12 '14 at 04:41
  • 2
    @Greg McCarvell Almost only thing with the OrientDB is the (extended) SQL for querying. It just not fit in, even messy with RDBMS, yet using it for a DBMS that is very different from what it was designed for is a bit inconvenient. The query lang makes OrientDB less approachable, even it is written that it decreases the learning curve due to beforehand familiarity to SQL. As thinking in graph is different from thinking in tables and joins, and same for modelling respective kinds of data,It is very intuitive to claim the querying should also be so.And today it is not intuitive to query OrientDB. – sçuçu Jul 15 '15 at 22:09
  • 1
    mr @greg the problem lieng here is that there is nothing like stable drivers for mostly used languages for web development like php and many others also. – Ravinder Payal Sep 26 '15 at 14:56
  • 3
    @RavinderPayal I absolutely agree. OrientDB is has released two versions without bothering to test their "official" python drivers to make sure they work. As a new user, how could I be the only guy that noticed? – jwogrady Oct 08 '15 at 23:24
  • i recently find many bugs which does not allow to add specific words in text and string one i remeber is `)` and there were= few more also. – Ravinder Payal Oct 09 '15 at 05:49
  • 1
    I know that a "SQL-like" query language is supposed to be an advantage for OrientDB, but it's a case of wrong tool for the wrong job. With all the hacks required to keep it SQL'ish, it's barely recognizable, and certainly no longer easier than learning Cypher for Neo4j. It's a hot mess, in my opinion. I do, however, like the document store capabilities that it has over Neo4j. My company needed to choose between Neo4j and OrientDB, and the learning curve for Neo4j was just much smaller (even if the price curve for a license was steeper). – Michael Oryl Jul 28 '16 at 15:19
  • I think OrientDB should support openCypher. – user1870400 Jul 03 '19 at 07:38