1

I am trying to get the pipeline up and running with the following setup:

  • Blazegraph 2.1.1 (remote)
  • Tinkerpop 2 (bigdata-blueprints 2.0.0, BlazeGraph-Gremlin 1.0.0, bigdata-core 2.0.0)
  • Language: Java

I have been able to use the Blueprints API for creating and deleting vertices and edges. I would like to stick to Tinkerpop as much as possible for all graph operations. I was unable to find APIs for:

  1. threaded transactions via ThreadedTransactionalGraph.
  2. traversals using GremlinPipeline.

I have the following questions:

  1. Is there a timeline on when TP3 for the remote version of Blazegraph would be available?
  2. Are there any plans of supporting the following in the near future?

    a. Blueprints ThreadedTransactionalGraph

    b. GremlinPipeline API

  3. What are the suggested alternatives available for 2a and 2b?


I have tried the getFeatures function the graph is providing and it's getting the following list:

supportsDuplicateEdges: true
supportsSelfLoops: true
supportsSerializableObjectProperty: false
supportsBooleanProperty: true
supportsDoubleProperty: true
supportsFloatProperty: true
supportsIntegerProperty: true
supportsPrimitiveArrayProperty: true
supportsUniformListProperty: true
supportsMixedListProperty: true
supportsLongProperty: true
supportsMapProperty: false
supportsStringProperty: true
ignoresSuppliedIds: false
isPersistent: true
isWrapper: false
supportsIndices: true
supportsVertexIndex: false
supportsEdgeIndex: false
supportsKeyIndices: true
supportsVertexKeyIndex: true
supportsEdgeKeyIndex: true
supportsEdgeIteration: true
supportsVertexIteration: true
supportsEdgeRetrieval: true
supportsVertexProperties: true
supportsEdgeProperties: true
supportsTransactions: false
supportsThreadedTransactions: false

My major concern here is that I am not allowed to work with GremlinPipeline while querying in Blazegraph with remote.

I have an existing API running on OrientDB and I want to migrate to Blazegraph. Do I have to change all my read stuff (Gremlin queries) in order to use Blazegraph or is there a way to use Tinkerpop 2 along with GremlinPipeline?

honk
  • 9,137
  • 11
  • 75
  • 83
Varun Tahin
  • 299
  • 1
  • 2
  • 15
  • 1
    I haven't used Blazegraph, but isn't this what you're looking for? https://github.com/blazegraph/tinkerpop3 – Jason Plurad Sep 20 '16 at 15:15
  • 1
    As Jason pointed out I think you looking for the [gremlin])(https://github.com/blazegraph/tinkerpop3) plugin for blazegraph. I have used it and I can confirm it supports Threaded Transactions. – Filipe Teixeira Sep 20 '16 at 15:22
  • Sounds like you should add that as an answer @FilipeTeixeira :) – Jason Plurad Sep 20 '16 at 15:23
  • 1
    I think that it is worth clarifying that this question contains a confusion of TinkerPop 2.x and 3.x concepts. There is no "Blueprints" project, or a "Pipeline API". Looking at the code, BlazeGraph implements the TinkerPop Graph Structure API (formerly Blueprints) which should enable it to take advantage of the Traversal API (formerly Pipes - i.e. Pipeline API). – stephen mallette Sep 22 '16 at 10:11

1 Answers1

1

As Jason pointed out with regards to Tinkerpop 3 you should look at this plugin.

However, in my comment I was wrong about it supporting threaded transactions. Blazegraph using TP3 does not at the moment support ThreadedTranactions, but does support ConcurrentAccess as well as Tinkerpop Transactions. Even though threads have to wait for each other to complete.

BlazeGraphEmbedded graph = BlazeGraphFactory.open("test.jnl");
graph.features();

returns:

FEATURES
GraphFeatures
-- Computer: false
-- Persistence: true
-- ConcurrentAccess: true
-- Transactions: true
-- ThreadedTransactions: false

With regards to the status of this support on Blazegraph TP2 or TP3 you should raise an issue with them.

honk
  • 9,137
  • 11
  • 75
  • 83
Filipe Teixeira
  • 3,565
  • 1
  • 25
  • 45