Skip to content
lvca edited this page Dec 22, 2012 · 3 revisions

Comparison between GraphDB products

<wiki:toc max_depth="4" />

Introduction

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.com http://www.sparsity-technologies.com/dex http://www.infinitegraph.com/
License [Open Source Apache 2](http://www.apache.org/licenses/LICENSE-2.0.html) [Open Source GPL](http://www.gnu.org/licenses/gpl-3.0.html), [Open Source AGPL](http://www.gnu.org/licenses/agpl-3.0.html) and [Commercial](http://neotechnology.com/products/licensing-guide) Commercial [Commercial](http://www.infinitegraph.com/options/)
Query languages Extended SQL, [Gremlin](https://github.com/tinkerpop/gremlin/wiki) [Cypher](http://docs.neo4j.org/chunked/1.4/cypher-query-lang.html) [Gremlin](https://github.com/tinkerpop/gremlin/wiki) Not available, only via [API](http://www.sparsity-technologies.com/downloads/javadoc/overview-summary.html#query) [Gremlin](https://github.com/tinkerpop/gremlin/wiki), Java API
Transaction support http://orientdb.org/images/ok.png [ACID](http://en.wikipedia.org/wiki/ACID) http://orientdb.org/images/ok.png [ACID](http://en.wikipedia.org/wiki/ACID) http://orientdb.org/images/no.png http://orientdb.org/images/ok.png [ACID](http://en.wikipedia.org/wiki/ACID)
Protocols Embedded via Java API, remote as Binary and [REST](OrientDB_REST) Embedded via Java API and remote via REST ? Embedded via Java API, Remote database access via TCP
Replication Multi-Master Master-Slave No http://orientdb.org/images/no.png
Custom types http://orientdb.org/images/ok.png Supports custom types and polymorphism http://orientdb.org/images/no.png http://orientdb.org/images/no.png http://orientdb.org/images/ok.png Supports custom types and polymorphism
Self loops http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png

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.com http://www.sparsity-technologies.com/dex http://www.infinitegraph.com/
Implementation details [OrientDB impl](https://github.com/tinkerpop/blueprints/wiki/OrientDB-Implementation) [Neo4j impl](https://github.com/tinkerpop/blueprints/wiki/Neo4j-Implementation) [DEX impl](https://github.com/tinkerpop/blueprints/wiki/Dex-Implementation) [InfiniteGraph impl](https://github.com/tinkerpop/blueprints/wiki/InfiniteGraph-Implementation) [Known limitations](http://wiki.infinitegraph.com/2.1/w/index.php?title=Understanding_InfiniteGraph_Blueprints_Capabilities_and_Limitations)
allowsDuplicateEdges http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png ?
allowsSelfLoops http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png ?
isPersistent http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png ?
supportsVertexIteration http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png ?
supportsEdgeIteration http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png ?
supportsVertexIndex http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/no.png ?
supportsEdgeIndex http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/no.png ?
ignoresSuppliedIds http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png ?
supportsTransactions http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/no.png ?
allowSerializableObjectProperty http://orientdb.org/images/ok.png http://orientdb.org/images/no.png http://orientdb.org/images/no.png ?
allowBooleanProperty http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png ?
allowDoubleProperty http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png ?
allowFloatProperty http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png ?
allowIntegerProperty http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png ?
allowPrimitiveArrayProperty http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/no.png ?
allowUniformListProperty http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/no.png ?
allowMixedListProperty http://orientdb.org/images/ok.png http://orientdb.org/images/no.png http://orientdb.org/images/no.png ?
allowLongProperty http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/no.png ?
allowMapProperty http://orientdb.org/images/ok.png http://orientdb.org/images/no.png http://orientdb.org/images/no.png ?
allowStringProperty http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png http://orientdb.org/images/ok.png ?

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.0-SNAPSHOT 1.7M03 4.5.1 2.1
Product Web Site http://www.orientdb.org http://www.neo4j.com http://www.sparsity-technologies.com/dex http://www.infinitegraph.com/
VertexTestSuite 11,628.98 30,535.02 **4,686.65** ?
EdgeTestSuite **7,712.06** 41,206.89 58,671.90 ?
GraphTestSuite 9,073.09 55,102.35 **7,428.25** ?
IndexableGraphTestSuite 4,620.61 11,299.02 **1070.75** ?
IndexTestSuite **2,072.23** 5,239.92 not supported ?
AutomaticIndexTestSuite **3,252.48** 9,402.59 not supported ?
TransactionGraphTestSuite **7,659.67** 22,787.29 not supported ?
GraphMLReaderTestSuite **4,064.23** 5,440.67 not supported ?

All the tests are executed against the same HW/SW configuration: Intel i7 - 4cpu 8vcpu - 4 GB Ram - Windows 7 64bit - HD SATA 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
Clone this wiki locally