Live data from Hacker News

Performance Comparison Between ArangoDB, MongoDB, Neo4j and OrientDB

arangodb.com

21–30 of 38 posts

Re: Performance Comparison Between ArangoDB, MongoDB, Neo4j and OrientDB

#21

I would love to see postgres in the mix.

Likewise. I started some stuff at work recently comparing Mongo, Orient and PG (using a JSON column). Alas, all the test suite does so far is insert small "documents" (5000 docs w/ 3 name-vals excluding PK/ID) and time that. No read-back tests of any kind yet, so no indices in place either.

For this little test (on my macbook), Mongo was the fastest. PG took 1 1/2 times as long, and Orient took 4 times as long as Mongo. All 3 were driven by a Java client connected via a socket to the DB on localhost. (Orient could have been "in process", but I wanted it external as if on a server)

Of course, the main use-case for Orient is reading back graph chains, so it's a horrible test. However, what we need is a supplemental store to dump some flat junk as the app runs.

Re: Performance Comparison Between ArangoDB, MongoDB, Neo4j and OrientDB

#22

Interesting graphs, reaffirms for us that MongoDB was and remains the right choice. Performance as well as pragmatic. Best of all? It always infuriates the hipper than thou muppets here on HN! Excellent!

Great, now tell the graph-based-DB guys how you do on multi-doc "join" queries :-)

Disclaimer: I'm more of a Postgres fan-boy.

Mongo's single rec insert/fetch times are impressive, though. And, it's pretty easy to set up a single node. So, it could sometimes be the right choice.

Re: Performance Comparison Between ArangoDB, MongoDB, Neo4j and OrientDB

#24

Rant warning: After working with Neo4j for about six months I would definitely NOT recommend it to anyone. In my experience it has been the least reliable and most buggy database solution I've ever worked with. From the engineering point of view it has a host of core issues that make it really hard to write code, such as constant deadlock exceptions. These are caused by the fact that the database is largely incapable…

I had a pretty similar experience, in fact. I lost months of work to Neo4J back in 2011 or so.

The purpose was to be the storage backend for ConceptNet, a semantic network that is largish but is far from "big data". The write speed was awful, the stability was awful, the mechanisms for loading in non-toy amounts of data were nearly nonexistent, and I learned what it means to "run out of PermGen".

I hastily aborted the Neo4J plan. I was also burned by RDF triple-stores (they can't cope with small data either) and MongoDB (which seemed to work at first and eventually fell over, for obvious reasons in retrospect).

The graph is now in SQLite plus flat files, which works great. I've concluded by now that the step on the scale beyond "lies" and "damn lies" is "claims about next-generation databases".

Re: Performance Comparison Between ArangoDB, MongoDB, Neo4j and OrientDB

#25
post #20

Rant warning: After working with Neo4j for about six months I would definitely NOT recommend it to anyone. In my experience it has been the least reliable and most buggy database solution I've ever worked with. From the engineering point of view it has a host of core issues that make it really hard to write code, such as constant deadlock exceptions. These are caused by the fact that the database is largely incapable…

Hi, I'm Claudius, the author of the blog post. The intent of the blog was not to show, that a particular product is not performing well. There are thousands of different use cases and each database has its strengths and weaknesses. For a different scenario the results might be different. Neo4J is a solid product and is doing a good job. The aim of the blog was to show, that multi-model can compete with specialized so…

> Neo4J is a solid product

Do you really believe this, in your expert opinion, or are you just trying not to step on toes?

Re: Performance Comparison Between ArangoDB, MongoDB, Neo4j and OrientDB

#26

IMHO, the community needs a set of specific tasks that can be achieved with all databases (just like http://benchmarksgame.alioth.debian.org/ has a series of algorithms for testing different memory/CPU strengths of languages). Then, proponents of each database (e.g., their sponsors, evangelists) can create code and config for running the tests on their database. This could all be open source, and the tests could all…

You have recalled correctly! That approach is precisely what we have taken with the TechEmpower benchmarks.

Re: Performance Comparison Between ArangoDB, MongoDB, Neo4j and OrientDB

#27
post #20

Rant warning: After working with Neo4j for about six months I would definitely NOT recommend it to anyone. In my experience it has been the least reliable and most buggy database solution I've ever worked with. From the engineering point of view it has a host of core issues that make it really hard to write code, such as constant deadlock exceptions. These are caused by the fact that the database is largely incapable…

Hi, I'm Claudius, the author of the blog post. The intent of the blog was not to show, that a particular product is not performing well. There are thousands of different use cases and each database has its strengths and weaknesses. For a different scenario the results might be different. Neo4J is a solid product and is doing a good job. The aim of the blog was to show, that multi-model can compete with specialized so…

> Neo4j is a solid product and is doing a good job.

My personal opinion, based on my experiences using Neo4j, is that Neo4j is not a solid product. (At least not by my definition of "solid".) I think it has good marketing but falls apart in a lot of real world use cases.

I understand that the point of the blog post wasn't to bash Neo4j, but it does demonstrate quite well the fact that a multi model approach can be quite competitive or even better in terms of performance for many use cases.

Given Neo4j's historical and ongoing issues, if the multi model DB solution also happens to be a more mature and stable one then there is no front on which Neo4j wins.

Re: Performance Comparison Between ArangoDB, MongoDB, Neo4j and OrientDB

#28

Rant warning: After working with Neo4j for about six months I would definitely NOT recommend it to anyone. In my experience it has been the least reliable and most buggy database solution I've ever worked with. From the engineering point of view it has a host of core issues that make it really hard to write code, such as constant deadlock exceptions. These are caused by the fact that the database is largely incapable…

Good to hear because I started to experiment with it a couple months ago to solve a specific problem. I abandoned it because the embedded version required an older version of Lucene than I was using. Yes I could have worked around that but it's a lot of extra work to try something that may or may not solve my problem. Then I tried the server version which also required I be able to call web services (something my code had no other use for). Worked through that and found the performance pretty poor compared to embedded. I ended up just solving the problem in Lucene. Glad I didn't spend more time on it.

I would love to have a good graph database later on though

Re: Performance Comparison Between ArangoDB, MongoDB, Neo4j and OrientDB

#29
Anyone using ArangoDB in production who can speak about it? It looks interesting, but like many of the newer databases coming out (Aerospike, Blazegraph, Hyperdex etc.) there is precious little public information from third parties.

Re: Performance Comparison Between ArangoDB, MongoDB, Neo4j and OrientDB

#30

Rant warning: After working with Neo4j for about six months I would definitely NOT recommend it to anyone. In my experience it has been the least reliable and most buggy database solution I've ever worked with. From the engineering point of view it has a host of core issues that make it really hard to write code, such as constant deadlock exceptions. These are caused by the fact that the database is largely incapable…

So what did you end up doing with it ? ... How did you replace it ?
Post reply on HN