在 Titan 图形数据库中更新顶点属性时出现问题



在我的泰坦图数据库中,JobLockStatus可以是(F(ree(B(usy基于某些条件。

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

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

JobLockStatus的值从"F"更新为"B"应该在任何时候只发生一次,由任何一个作业发生。但就我而言,许多工作正在改变价值。如何避免此类并发问题?
请帮助我解决问题。

解决了这个并发问题。通过使用 consistencyModifier.Lock on jobLockStatus..因此,在任何时候,只有一个作业可以锁定作业锁定状态并更新它。当两个并行作业试图锁定时,只有一个作业会锁定它,而另一个作业会得到永久锁定异常。然后使用 Java 中的 try catch 处理异常...

相关内容

最新更新