Graph TITAN:Gremlin查询在重复执行时返回不一致的结果

Graph TITAN:Gremlin查询在重复执行时返回不一致的结果,graph,graph-databases,titan,gremlin,rexster,Graph,Graph Databases,Titan,Gremlin,Rexster,我在cassandra上运行REXSTER/TITAN 0.4,并使用gremlin进行遍历。 我在Rexster Doghouse小精灵控制台中运行了小精灵查询 Vertex 92先前已删除,因为它是具有相同关键点的重复顶点(“eddy.com”) 但当我查询时,我有时会得到那个顶点,有时不会。 这是在本地开发人员机器上运行的,意味着其间没有其他线程或并行任务正在运行/更新此顶点。 我是否缺少任何配置/设置?这是虫子吗?请帮忙 gremlin> g.V('domain','eddy.co

我在cassandra上运行REXSTER/TITAN 0.4,并使用gremlin进行遍历。 我在Rexster Doghouse小精灵控制台中运行了小精灵查询

Vertex 92先前已删除,因为它是具有相同关键点的重复顶点(“eddy.com”)

但当我查询时,我有时会得到那个顶点,有时不会。 这是在本地开发人员机器上运行的,意味着其间没有其他线程或并行任务正在运行/更新此顶点。 我是否缺少任何配置/设置?这是虫子吗?请帮忙

gremlin> g.V('domain','eddy.com')

==>v[88]
gremlin> g.V('domain','eddy.com')

==>v[88]
==>v[92]
gremlin> g.V('domain','eddy.com')

==>v[88]
gremlin> g.V('domain','eddy.com')

==>v[88]
gremlin> g.V('domain','eddy.com')

==>v[88]
==>v[92]

您没有说明删除是如何发生的,但这个问题几乎总是归结为未提交或过时的事务。换句话说,它是:

  • 未提交删除事务
  • 事务已提交,但查询端未启动新事务,因此正在获取缓存数据
  • 因此,请确保在完成之后调用
    g.commit()
    。然后,当您进入查询时(在不同的上下文中,如Rexster控制台、Dog House等),请确保在查询之前
    g.rollback()
    ,以确保您没有阅读过时的内容

    如果您想知道为什么在某些情况下会看到被删除的数据,而在其他情况下不会看到,那是因为向Rexster发出请求可能会在一个线程中得到处理,而新的事务状态(或不)会给您带来不同的结果


    如果这两种情况都不是,而且可能是一个bug,我只能建议您更新到Titan 0.5.4。

    同样的问题,我用django/mogwai删除了每个顶点,得到了相同的情况。我该如何解决这个问题?@DmitryYudin升级到最新版本,这似乎是一个bug