janusgraphexception:无法提交事务,因为持久化期间出现异常,原因是:permanentlockingexception:本地锁争用

tp5buhyn  于 2021-06-10  发布在  Cassandra
关注(0)|答案(0)|浏览(266)

我有这样的高级代码。

MethodXyz() {

updateVertex(A, props1)
commit
// some other code

updateVertex(A, props2)
commit

// do something else - long running
}

这个方法是从10+个不同的线程为不同的顶点调用的,特别是通过用10+个线程初始化的java线程执行器设备
我在上述方法的第二次提交中,从10+个线程中随机抽取4-5个线程,得到如下异常。
我对顶点属性不使用任何唯一性约束
我确实将vertex属性“name”定义为唯一的字符串数据类型(应用程序代码在janusgraph中生成属性键时不使用任何唯一约束来保证这种唯一性)
但是,我使用这个属性键“name”构建索引
使用默认架构生成-未定义显式架构
我试图弄清楚为什么即使不同的线程更新完全不同的顶点(互斥),也会引发永久锁异常,以及为什么在没有定义为唯一的属性键来使用任何janusgrpah锁时会引发锁定异常。
org.janusgraph.core.janusgraphexception:无法提交事务,因为在org.janusgraph.graphdb.transaction.standardjanusgraphtx.commit(standardjanusgraphtx)的持久化过程中出现异常。java:1385)[488:org.janusgraph.janusgraph-core:5.2.0.snapshot]在org.janusgraph.graphdb.tinkerpop.janusgraphblueprintsgraph$graphtransaction.docommit(janusgraphblueprintsgraph。java:272)[488:org.janusgraph.janusgraph-core:5.2.0.snapshot]位于org.apache.tinkerpop.gremlin.structure.util.abstracttransaction.commit(abstracttransaction.com)。java:104)[488:org.janusgraph.janusgraph-core:5.2.0.snapshot]在fujitsu.fnc.mlpce.tetopology.impl.graphdbservice.commit(graphdbservice。java:509)[119:com.fujitsu.fnc.mlpce.tetopology。impl:5.2.0.snapshot]
引起原因:org.janusgraph.core.janusgraphexception:org.janusgraph.graphdb.database.standardjanusgraph.commit(standardjanusgraph)出现意外异常。java:806)[488:org.janusgraph.janusgraph-core:5.2.0.snapshot]在org.janusgraph.graphdb.transaction.standardjanusgraphtx.commit(standardjanusgraphtx。java:1374)[488:org.janusgraph.janusgraph-core:5.2.0.snapshot] ... 17更多原因:org.janusgraph.diskstorage.locking.permanentlockingexception:org.janusgraph.diskstorage.locking.abstractlocker.writelock(abstractlocker)的本地锁争用。java:327)[488:org.janusgraph.janusgraph-core:5.2.0.snapshot]在org.janusgraph.diskstorage.locking.consistentkey.expectedvaluecheckingstore.acquirelock(expectedvaluecheckingstore。java:103)[488:org.janusgraph.janusgraph-core:5.2.0.snapshot]在org.janusgraph.diskstorage.keycolumnvalue.kcvsproxy.acquirelock(kcvsproxy。java:52)[488:org.janusgraph.janusgraph-core:5.2.0.snapshot]在org.janusgraph.diskstorage.backendtransaction.acquireindexlock(后端事务。java:256)[488:org.janusgraph.janusgraph-core:5.2.0.snapshot]在org.janusgraph.graphdb.database.standardjanusgraph.preparecommit(standardjanusgraph。java:572)[488:org.janusgraph.janusgraph-core:5.2.0.snapshot]在org.janusgraph.graphdb.database.standardjanusgraph.commit(standardjanusgraph。java:702)[488:org.janusgraph.janusgraph-core:5.2.0.snapshot] ... 还有18个
jansugraph 0.2.0和cassandra后端

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题