Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MongoDB + Neo4J vs OrientDB vs ArangoDB [closed]

I am currently on design phase of a MMO browser game, game will include tilemaps for some real time locations (so tile data for each cell) and a general world map. Game engine I prefer uses MongoDB for persistent data world.

I will also implement a shipping simulation (which I will explain more below) which is basically a Dijkstra module, I had decided to use a graph database hoping it will make things easier, found Neo4j as it is quite popular.

I was happy with MongoDB + Neo4J setup but then noticed OrientDB , which apparently acts like both MongoDB and Neo4J (best of both worlds?), they even have VS pages for MongoDB and Neo4J.

Point is, I heard some horror stories of MongoDB losing data (though not sure it still does) and I don't have such luxury. And for Neo4J, I am not big fan of 12K€ per year "startup friendly" cost although I'll probably not have a DB of millions of vertexes. OrientDB seems a viable option as there may be also be some opportunities of using one database solution.

In that case, a logical move might be jumping to OrientDB but it has a small community and tbh didn't find much reviews about it, MongoDB and Neo4J are popular tools widely used, I have concerns if OrientDB is an adventure.

My first question would be if you have any experience/opinion regarding these databases.

And second question would be which Graph Database is better for a shipping simulation. Used Database is expected to calculate cheapest route from any vertex to any vertex and traverse it (classic Dijkstra). But also have to change weights depending on situations like "country B has embargo on country A so any item originating from country A can't pass through B, there is flood at region XYZ so no land transport is possible" etc. Also that database is expected to cache results. I expect no more than 1000 vertexes but many edges.

Thanks in advance and apologies in advance if questions are a bit ambiguous

PS : I added ArangoDB at title but tbh, hadn't much chance to take a look.


Late edit as of 18-Apr-2016 : After evaluating responses to my questions and development strategies, I decided to use ArangoDB as their roadmap is more promising for me as they apparently not trying to add tons of hype features that are half baked.

like image 505
projectUnduli Avatar asked Nov 02 '14 20:11

projectUnduli


People also ask

How good is ArangoDB?

Excellent tool. ArangoDB enables computation of complex graph traversals in an operational database, enabling applications to dynamically search much larger datasets than would be possible using RDBMS. Additionally, ArangoDB performs very well and is very easy to use as an operational database for applications.

What is better than Neo4j?

TigerGraph has a longer loading time than its main competitor, Neo4j. When considering pre-processing time, TigerGraph is actually faster than Neo4j. TigerGraph is efficient because it needs 19.3x less storage space than Neo4j. TigerGraph is 24.8x faster than Neo4j on the one-hop path query.

Can Neo4j replace PostgreSQL in healthcare?

Neo4j is not necessarily a replacement for PostgreSQL, but it should be seen as a viable alternative in areas other than social network or transportation mapping, such as healthcare.

What is the difference between ArangoDB and Neo4j?

ArangoDB offers the same functionality as Neo4j with more than competitive performance, plus several additional features: Multi-Model: Neo4j is a single-model graph database. It does not support any other data models. If your application requires a document or key/value store, you would have to use a second database technology to support it.

Why OrientDB is better than MongoDB?

With OrientDB you have both models, so you could model your data as a graph with complex types like with MongoDB. Most of the users take advantage of this hybrid model in OrientDB to have no compromises on domain complexity. Furthermore as soon as you need to scale up you can just add servers with zero configuration.

How is Neo4j different from MongoDB and MySQL?

It is different in comparison to that of MongoDB or MySQL because Neo4j holds some features which mark it exceptional than other DBMS. It stores and also presents data in the form of a graph but not in the tabular or JSON format.

Is ArangoDB a good choice for a multi-model database?

This is where a multi-model database as ArangoDB shines. If MongoDB has served you well so far, then you will immediately feel comfortable with ArangoDB, since it is very similar in look and feel. Additionally, you can model graphs by storing your vertices in one (or multiple) collections, and your edges in one or more so-called "edge-collections".


1 Answers

Disclaimer: I am the author and owner of OrientDB.

As developer, in general, I don't like companies that hide costs and let you play with their technology for a while and as soon as you're tight with it, start asking for money. Actually once you invested months to develop your application that use a non standard language or API you're screwed up: pay or migrate the application with huge costs.

You know, OrientDB is FREE for any usage, even commercial. Furthermore OrientDB supports standards like SQL (with extensions) and the main Java API is the TinkerPop Blueprints, the "JDBC" standard for Graph Databases. Furthermore OrientDB supports also Gremlin.

The OrientDB project is growing every day with new contributors and users. The Community Group (Free channel to ask support) is the most active community in GraphDB market.

If you have doubts with the GraphDB to use, my suggestion is to get what is closer to your needs, but then use standards as more as you can. In this way an eventual switch would have a low impact.

like image 154
Lvca Avatar answered Sep 20 '22 06:09

Lvca