Skip to content

velo/orientdb-gremlin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

orientdb-gremlin

Build Status Coverage Status Maven Central

TP3 Graph Structure Implementation for OrientDB. This started off as just a proof of concept, but thanks to a lot of help it's now in a really good shape.

Warning: While this is (as of now) the only TP3 graph structure implementation for OrientDB, it's not the official one - it's not supported by the Orient team. The contributors focused on the functionality needed for their use cases, and it doesn't claim to be complete.

The main area that need some more work is index lookups - currently it does find the right index for a simple case, e.g. g.V.hasLabel("myLabel").has("someKey", "someValue"). However if there are multiple indexes on the same property, or if there the traversal should better use a composite index, that's not handled well yet. If you feel inclined you can add these cases to the OrientGraphIndexTest.java. The function that looks up indexes is OrientGraphStep.findIndex.

Tests

  • you can run the standard tinkerpop test suite with mvn install -P release
  • there are some additional tests that you can run independently with mvn test
  • additionally there is a separate suite of tests in the tests-scala directory which you can run using sbt test
  • to automatically format the code (travis CI enforces a format check), just run mvn clean install

Usage

Have a look at the tests-scala which demonstrates the usage. There's also an orientdb example project in gremlin-scala-examples.

Labels and classes

Vertices and Edges are stored as classes based on their label. In order to allow vertices and edges to use the same label, the implementation prepends V_ or E_ in the class name:

  • vertex with label user -> classname V_user
  • edge with label user -> classname E_user

Migrations

You might want to use orientdb-migrations to create a schema with indexes etc.

Release

  • upgrade version: remove SNAPSHOT (driver/pom.xml and tests-scala/build.sbt)
  • commit on branch, push, create PR on github
  • await green light from travis
  • merge PR on github
  • mvn pull
  • mvn clean deploy -Prelease
  • git tag VERSION
  • bump versions to next SNAPSHOT (pom.xml, build.sbt)
  • git push
  • git push --tags

About

TinkerPop3 driver for OrientDB

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 92.6%
  • Scala 7.4%