在Titan图数据库中更新顶点属性的问题

时间:2017-03-20 10:26:26

标签: java cassandra titan gremlin tinkerpop3

在我的Titan图表数据库中,JobLockStatus可以是(F)ree (B)usy 根据某些条件。

对于RequestId = 203,N个作业正在尝试同时更改joblockstatus。我使用以下查询来更新值:

GraphTraversal<Vertex, Vertex> ab =
traversalSource.V().has("RequestJob", "RequestId", 203).has("JobLockStatus","F").property("JobLockStatus", "B").iterate();  

JobLockStatus的值从“F”更新为“B”只能在任何一个任务中随时发生一次。但就我而言,许​​多工作正在改变价值。我怎样才能避免这种并发问题呢? 请帮助我解决问题。

1 个答案:

答案 0 :(得分:0)

解决了这个并发问题..通过在jobLockStatus..so上随时使用consistencyModifier.Lock,只有一个作业可以锁定joblockstatus并更新它。当两个并行作业试图锁定时,只有一个作业会锁定它其他工作将获得permanantLockException ..然后使用java中的try catch处理异常...