-
Notifications
You must be signed in to change notification settings - Fork 0
GraphDB Comparison
<wiki:toc max_depth="4" />
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 | 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 |
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 | ? |
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.
To run the Blueprints Test Suite you need java6+, Apache Maven and Git. Follow these simple steps:
> git clone git://github.com/tinkerpop/blueprints.git
> mvn clean install