【问题标题】:Gremlin: Blazegraph RemoteGremlin:Blazegraph 遥控器
【发布时间】:2016-09-20 13:53:53
【问题描述】:

我正在尝试使用以下设置启动并运行管道:

  • Blazegraph 2.1.1(远程)
  • Tinkerpop 2(bigdata-blueprints 2.0.0、BlazeGraph-Gremlin 1.0.0、bigdata-core 2.0.0)
  • 语言:Java

我已经能够使用 Blueprints API 来创建和删除顶点和边。对于所有图形操作,我想尽可能坚持使用 Tinkerpop。我找不到以下 API:

  1. 通过ThreadedTransactionalGraph 线程化事务。
  2. 使用GremlinPipeline进行遍历。

我有以下问题:

  1. 对于 Blazegraph 远程版本的 TP3 何时可用有时间表吗?
  2. 近期是否有计划支持以下内容?

    一个。蓝图ThreadedTransactionalGraph

    b. GremlinPipelineAPI

  3. 有哪些可用于 2a 和 2b 的建议替代方案?


我已经尝试了图表提供的getFeatures 函数,它得到了以下列表:

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

我主要担心的是,在 Blazegraph 中使用远程查询时,我不能使用 GremlinPipeline。

我有一个在 OrientDB 上运行的现有 API,我想迁移到 Blazegraph。我是否必须更改所有已阅读的内容(Gremlin 查询)才能使用 Blazegraph,还是有办法将 Tinkerpop 2 与 GremlinPipeline 一起使用?

【问题讨论】:

  • 我没用过 Blazegraph,但这不是你要找的吗? github.com/blazegraph/tinkerpop3
  • 正如 Jason 指出的,我认为您正在寻找 blazegraph 的 [gremlin])(github.com/blazegraph/tinkerpop3) 插件。我用过它,我可以确认它支持线程事务。
  • 听起来您应该将其添加为答案@FilipeTeixeira :)
  • 我认为值得澄清的是,这个问题包含了 TinkerPop 2.x 和 3.x 概念的混淆。没有“蓝图”项目或“管道 API”。查看代码,BlazeGraph 实现了 TinkerPop Graph Structure API(以前称为 Blueprints),这应该使其能够利用 Traversal API(以前称为 Pipes - 即 Pipeline API)。

标签: java multithreading graph gremlin blazegraph


【解决方案1】:

正如 Jason 关于 Tinkerpop 3 所指出的,您应该查看 this 插件。

但是,在我的评论中,我认为它支持线程事务是错误的。使用 TP3 的 Blazegraph 目前不支持 ThreadedTranactions,但支持 ConcurrentAccess 以及 Tinkerpop Transactions。即使线程必须相互等待完成。

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

返回:

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

关于 Blazegraph TP2 或 TP3 上此支持的状态,您应该向他们提出问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    • 2010-12-07
    • 2021-04-01
    • 2012-08-01
    • 1970-01-01
    • 2011-01-17
    相关资源
    最近更新 更多