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 Comparison - 图1 ACID Comparison - 图2 ACID Comparison - 图3 Comparison - 图4 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 Comparison - 图5
Custom types Comparison - 图6 Supports custom types and polymorphism Comparison - 图7 Comparison - 图8 Comparison - 图9 Supports custom types and polymorphism
Self loops Comparison - 图10 Comparison - 图11 Comparison - 图12 Comparison - 图13

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 Comparison - 图14 Comparison - 图15 Comparison - 图16 ?
allowsSelfLoops Comparison - 图17 Comparison - 图18 Comparison - 图19 ?
isPersistent Comparison - 图20 Comparison - 图21 Comparison - 图22 ?
supportsVertexIteration Comparison - 图23 Comparison - 图24 Comparison - 图25 ?
supportsEdgeIteration Comparison - 图26 Comparison - 图27 Comparison - 图28 ?
supportsVertexIndex Comparison - 图29 Comparison - 图30 Comparison - 图31 ?
supportsEdgeIndex Comparison - 图32 Comparison - 图33 Comparison - 图34 ?
ignoresSuppliedIds Comparison - 图35 Comparison - 图36 Comparison - 图37 ?
supportsTransactions Comparison - 图38 Comparison - 图39 Comparison - 图40 ?
allowSerializableObjectProperty Comparison - 图41 Comparison - 图42 Comparison - 图43 ?
allowBooleanProperty Comparison - 图44 Comparison - 图45 Comparison - 图46 ?
allowDoubleProperty Comparison - 图47 Comparison - 图48 Comparison - 图49 ?
allowFloatProperty Comparison - 图50 Comparison - 图51 Comparison - 图52 ?
allowIntegerProperty Comparison - 图53 Comparison - 图54 Comparison - 图55 ?
allowPrimitiveArrayProperty Comparison - 图56 Comparison - 图57 Comparison - 图58 ?
allowUniformListProperty Comparison - 图59 Comparison - 图60 Comparison - 图61 ?
allowMixedListProperty Comparison - 图62 Comparison - 图63 Comparison - 图64 ?
allowLongProperty Comparison - 图65 Comparison - 图66 Comparison - 图67 ?
allowMapProperty Comparison - 图68 Comparison - 图69 Comparison - 图70 ?
allowStringProperty Comparison - 图71 Comparison - 图72 Comparison - 图73 ?

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