2.5 years ago, we tried pretty much all the GraphDBs out there. We decided to go with OrientDB (it was 2.0.something), but after only 3 months of POC, we switched to Neo4j. Why? Because the documentation was poor and we found some issues, so we couldn't trust OrientDB to be our primary DBMS.
With Neo4j everything was great at the beginning where we had 1 server only, but when we switched to the Enterprise Edition for HA (special price for startup, otherwise it would be unaffordable. Without the startup price it would be around $100K per year for 3 servers, crazy!), it didn't scale for our use case (primarily because of its master-slave architecture and other bugs and limitations here and there).
Our use case is 50% read and 50% writes, we have seen that Neo4j is mostly used as an Analytical database, so maybe with 100% reads it could be ok.
So on January 2017, we evaluated the new DataStax DSE, but it was really unstable (we think it's still an alpha version, but for marketing reasons, they pushed it as a stable GA). So we decided to give to OrientDB another chance. We've wasted $20 on buying the only available book for OrientDB, but it treats OrientDB as a Document database. After reading the OrientDB manual, we converted our Cypher queries to the new OrientDB SQL MATCH (that is very similar) and in less than 2 weeks our application was up & running with OrientDB and 5 servers.
We found 3 minor issues the team resolved in a few days, we have another issue that is still not fixed, but so far so good, we're happy in production with a 100% uptime in the last 4 months. I've seen OrientDB is much faster with multiple servers. We decided to not use sharding with OrientDB for now because it doesn't look mature enough, but maybe we will try it in 1y.
So my final advice is: Neo4j is very expensive, but it works very well for read-only use cases. You can find a lot of tutorials, examples, books around it. If you're a GraphDB rookie you should start with Neo4j, but pay attention to the license or you'll end up paying Neo4j more than Oracle.
OrientDB cost much less than Neo4j (the Community Edition is free for any purpose, but it doesn't have the non-stop incremental backup that we needed, so we purchased the Enterprise). It's much faster in our use cases, but they have less marketing people = less popular than Neo4j.
Only with 2.2.x, OrientDB reached a good level of stability and is perfect for both read and read/write use cases. DataStax DSE will be a good product, maybe, in 1-2 years, but for now, it's like a toy.
1 comment
[ 3.0 ms ] story [ 9.3 ms ] threadWith Neo4j everything was great at the beginning where we had 1 server only, but when we switched to the Enterprise Edition for HA (special price for startup, otherwise it would be unaffordable. Without the startup price it would be around $100K per year for 3 servers, crazy!), it didn't scale for our use case (primarily because of its master-slave architecture and other bugs and limitations here and there).
Our use case is 50% read and 50% writes, we have seen that Neo4j is mostly used as an Analytical database, so maybe with 100% reads it could be ok.
So on January 2017, we evaluated the new DataStax DSE, but it was really unstable (we think it's still an alpha version, but for marketing reasons, they pushed it as a stable GA). So we decided to give to OrientDB another chance. We've wasted $20 on buying the only available book for OrientDB, but it treats OrientDB as a Document database. After reading the OrientDB manual, we converted our Cypher queries to the new OrientDB SQL MATCH (that is very similar) and in less than 2 weeks our application was up & running with OrientDB and 5 servers.
We found 3 minor issues the team resolved in a few days, we have another issue that is still not fixed, but so far so good, we're happy in production with a 100% uptime in the last 4 months. I've seen OrientDB is much faster with multiple servers. We decided to not use sharding with OrientDB for now because it doesn't look mature enough, but maybe we will try it in 1y.
So my final advice is: Neo4j is very expensive, but it works very well for read-only use cases. You can find a lot of tutorials, examples, books around it. If you're a GraphDB rookie you should start with Neo4j, but pay attention to the license or you'll end up paying Neo4j more than Oracle.
OrientDB cost much less than Neo4j (the Community Edition is free for any purpose, but it doesn't have the non-stop incremental backup that we needed, so we purchased the Enterprise). It's much faster in our use cases, but they have less marketing people = less popular than Neo4j.
Only with 2.2.x, OrientDB reached a good level of stability and is perfect for both read and read/write use cases. DataStax DSE will be a good product, maybe, in 1-2 years, but for now, it's like a toy.