Graph Database Comparison

This is a comparison page between GraphDB projects. To know more about the comparison of DocumentDBs look at this comparison.

We want to keep it always updated with the new products and more features in the matrix. If any information about any product is not updated or wrong, please change it if you've the permissions or send an email to any contributors with the link of the source of the right information.

Feature matrix

Feature OrientDB Neo4j DEX InfiniteGraph
Release 1.0-SNAPSHOT 1.7M03 4.5.1 2.1
Product Web Site http://www.orientdb.org http://www.neo4j.org http://www.sparsity-technologies.com http://objectivity.com/INFINITEGRAPH
License Open Source Apache 2 Open Source GPL, Open Source AGPL and Commercial Commercial Commercial
Query languages Extended SQL, Gremlin Cypher Gremlin Not available, only via API Gremlin, Java API
Transaction support ACID ACID ACID
Protocols Embedded via Java API, remote as Binary and REST Embedded via Java API and remote via REST ? Embedded via Java API, Remote database access via TCP
Replication Multi-Master Master-Slave No
Custom types Supports custom types and polymorphism Supports custom types and polymorphism
Self loops

Blueprints support

The products below all support the TinkerPop Blueprints API at different level of compliance. Below the supported ones. As you can see OrientDB is the most compliant implementation of TinkerPop Blueprints!

Feature OrientDB Neo4j DEX InfiniteGraph
Release 1.0-SNAPSHOT 1.7M03 4.5.1 2.1
Product Web Site http://www.orientdb.org http://www.neo4j.org http://www.sparsity-technologies.com http://objectivity.com/INFINITEGRAPH
Implementation details OrientDB impl Neo4j impl DEX impl InfiniteGraph impl Known limitations
allowsDuplicateEdges ?
allowsSelfLoops ?
isPersistent ?
supportsVertexIteration ?
supportsEdgeIteration ?
supportsVertexIndex ?
supportsEdgeIndex ?
ignoresSuppliedIds ?
supportsTransactions ?
allowSerializableObjectProperty ?
allowBooleanProperty ?
allowDoubleProperty ?
allowFloatProperty ?
allowIntegerProperty ?
allowPrimitiveArrayProperty ?
allowUniformListProperty ?
allowMixedListProperty ?
allowLongProperty ?
allowMapProperty ?
allowStringProperty ?

Micro benchmark

The table below reports the time to complete the Blueprints Test Suite. This is not a benchmark between GraphDBs and unfortunately doesn't exist a public benchmark shared by all the vendors :-(

So this table is just to give an idea about the performance of each implementation in every single module it supports. The support is based on the compliance level reported in the table above. For the test default settings were used. To run these tests on your own machine follow these simple instructions.

Lower means faster. In bold the fastest implementation for each module.

Module OrientDB Neo4j DEX InfiniteGraph
Release 1.4 1.9.M05 4.8.0 2.1
Product Web Site http://www.orientdb.org http://www.neo4j.org http://www.sparsity-technologies.com http://objectivity.com/INFINITEGRAPH
VertexTestSuite 1,524.06 1,595.27 4,488.28 ?
EdgeTestSuite 1,252.21 1,253.73 3,865.85 ?
GraphTestSuite 1,664.75 2,400.34 4,680.80 ?
QueryTestSuite 306.58 188.52 612.73 ?
IndexableGraphTestSuite 4,620.61 11,299.02 1070.75 ?
IndexTestSuite 2,072.23 5,239.92 not supported ?
TransactionalGraphTestSuite 1,573.93 3,579.50 not supported ?
KeyIndexableGraphTestSuite 571.42 845.84 not supported ?
GMLReaderTestSuite 778.08 682.83 not supported ?
GraphMLReaderTestSuite 814.38 864.70 2,316.79 ?
GraphSONReaderTestSuite 424.77 480.81 1223.24 ?

All the tests are executed against the same HW/SW configuration: MacBook Pro (Retina) 2013 - 16 GB Ram - MacOSX 12.3.0 - SDD 7200rpm. Similar results executed on Linux CentOS.

Run the tests

To run the Blueprints Test Suite you need java6+, Apache Maven and Git. Follow these simple steps:

  1. > git clone git://github.com/tinkerpop/blueprints.git
  2. > mvn clean install

results matching ""

    No results matching ""