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.
- 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-scaladirectory which you can run usingsbt test
Have a look at the tests-scala which demonstrates the usage. There's also an orientdb example project in gremlin-scala-examples.
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-> classnameV_user - edge with label
user-> classnameE_user
You might want to use orientdb-migrations to create a schema with indexes etc.
- upgrade version: remove SNAPSHOT (driver/pom.xml and tests-scala/build.sbt)
- commit
- final test before deploying:
- driver: mvn install -P release
- tests-scala: sbt test
- mvn clean deploy -Prelease
- git tag
- bump versions to next SNAPSHOT (pom.xml, build.sbt)
- git push
- git push --tags