Friday, October 8th, 2010

Neo4j Performance: Another Notch

In a number of posts I devised various database micro-benchmarks. The idea was to set the stage for an epic battle between NoSql and relational. In less grandiose terms I tested Neo4j, an all-Java network database, Apache Derby, an all-Java relational database and PostgreSQL, trusted non-Java relational workhorse with a heritage.

This is a short closing note in the series, commenting on Neo4j performance.

After the last post, Neo4j Performance Revisited and Appreciated, I got a discerning comment from Peter Neubauer at the Neo4j works. I had just discovered that throwing memory at Neo4j really makes it buzz. Peter pointed out that one should also be careful about the garbage collection method.

I changed the memory options to use the concurrent mark and sweep gc, like this:

-Xms128m -Xmx1g -XX:+UseConcMarkSweepGC

This choice helped performance another 25%. It’s not a secret, careful reading of the Neo4j documentation would have brought me there earlier.

Comments are closed.