Skip to content

Gremlin implementations

Dաıtry edited this page Jul 8, 2019 · 29 revisions

Cypher for Gremlin is tested on following Gremlin implementations:

Results

Click to view data

Each Gremlin implementation has its own specifics, supported features and limitations. Refer to excluded categories in test suites and SpecificsTest to get overview what is supported for each implementation. Each category has subcategories with description and examples.

Instructions for running integration tests are described in testware package.

⚠ Note that for cloud databases Neptune and CosmosDB test results may differ (and were previously found to differ) depending on the time of the execution. This might be related to internal database changes.

Flavors

For some implementations, flavor needs to be configured to adapt the query for system specifics and apply workarounds for target system limitations. See flavor configuration for client and console.

Most frequently used flavors are:

  • TranslatorFlavor.gremlinServer (default)
  • TranslatorFlavor.gremlinServer33xfor TinkerPop <3.4.0 without steps introduced in TinkerPop 3.4.0
  • TranslatorFlavor.cosmosDb
  • TranslatorFlavor.neptune
  • see all

TinkerGraph with Gremlin Extensions for Cypher Support

Tests are executed on TinkerGraph with Extensions to Gremlin to enable full support for Cypher functionality

TinkerGraph

Tests are executed on TinkerGraph

JanusGraph with Cypher Plugin

Note that compatible version of Cypher for Gremlin required for different JanusGraph releases.

JanusGraph 0.4.0 uses Scala 2.11, however since 1.0.1 Cypher for Gremlin uses Scala 2.12. To address this:

  • Use Cypher for Gremlin 1.0.0
  • Use Cypher for Gremlin latest version, and remove Scala 2.11 from JanusGraph rm /path/to/janusgraph/lib/*scala*. This will break JanusGraph Spark capabilities, use this approach only if you don't use Spark.

Tests are executed on JanusGraph 0.4.0, with BerkeleyJE Storage.

Neo4j-Gremlin with Cypher Plugin

Although using Cypher for Gremlin on Neo4j does not make much sense from user perspective (Neo4j supports Cypher natively), Neo4j-Gremlin is TinkerPop reference implementation so it makes sense for executing integration tests.

Neptune

Tests are executed on Amazon Neptune

Cosmos DB

Tests are executed on Cosmos DB using Gremlin API.