org.janusgraph.diskstorage.locking.TemporaryLockingException: Temporary locking failure


ankur...@...
 

We are using single node Janusgraph instance with embeded (cassandra and es).

While adding multiple vertex getting following exception:

org.janusgraph.diskstorage.locking.TemporaryLockingException: Temporary locking failure

      at org.janusgraph.diskstorage.locking.AbstractLocker.writeLock(AbstractLocker.java:309)

      at org.janusgraph.diskstorage.locking.consistentkey.ExpectedValueCheckingStore.acquireLock(ExpectedValueCheckingStore.java:103)

      at org.janusgraph.diskstorage.keycolumnvalue.KCVSProxy.acquireLock(KCVSProxy.java:52)

      at org.janusgraph.diskstorage.BackendTransaction.acquireIndexLock(BackendTransaction.java:255)

      at org.janusgraph.graphdb.database.StandardJanusGraph.prepareCommit(StandardJanusGraph.java:565)

      at org.janusgraph.graphdb.database.StandardJanusGraph.commit(StandardJanusGraph.java:713)

      at org.janusgraph.graphdb.transaction.StandardJanusGraphTx.commit(StandardJanusGraphTx.java:1363)

      at com.test.ankur.janusgraph.serviceImpl.VerticesServiceImpl.addLeads(VerticesServiceImpl.java:113)

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

      at java.lang.reflect.Method.invoke(Unknown Source)

      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)

      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)

      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)

      at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)

      at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)

      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)

      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)

      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)

      at com.sun.proxy.$Proxy39.addLeads(Unknown Source)

      at com.test.ankur.janusgraph.mains.AppMain.main(AppMain.java:48)

Caused by: org.janusgraph.diskstorage.TemporaryBackendException: Lock write retry count exceeded

      at org.janusgraph.diskstorage.locking.consistentkey.ConsistentKeyLocker.writeSingleLock(ConsistentKeyLocker.java:339)

      at org.janusgraph.diskstorage.locking.consistentkey.ConsistentKeyLocker.writeSingleLock(ConsistentKeyLocker.java:123)

      at org.janusgraph.diskstorage.locking.AbstractLocker.writeLock(AbstractLocker.java:304)

      ... 21 more


Please help in this.


Jason Plurad <plu...@...>
 

It is difficult to help with just a stack trace. Please provide a some more context of the problem, like the graph configuration, the schema definition, and the graph mutation code that is happening before the commit.


On Wednesday, September 6, 2017 at 10:14:38 AM UTC-4, Ankur Goel wrote:
We are using single node Janusgraph instance with embeded (cassandra and es).

While adding multiple vertex getting following exception:

org.janusgraph.diskstorage.locking.TemporaryLockingException: Temporary locking failure

      at org.janusgraph.diskstorage.locking.AbstractLocker.writeLock(AbstractLocker.java:309)

      at org.janusgraph.diskstorage.locking.consistentkey.ExpectedValueCheckingStore.acquireLock(ExpectedValueCheckingStore.java:103)

      at org.janusgraph.diskstorage.keycolumnvalue.KCVSProxy.acquireLock(KCVSProxy.java:52)

      at org.janusgraph.diskstorage.BackendTransaction.acquireIndexLock(BackendTransaction.java:255)

      at org.janusgraph.graphdb.database.StandardJanusGraph.prepareCommit(StandardJanusGraph.java:565)

      at org.janusgraph.graphdb.database.StandardJanusGraph.commit(StandardJanusGraph.java:713)

      at org.janusgraph.graphdb.transaction.StandardJanusGraphTx.commit(StandardJanusGraphTx.java:1363)

      at com.test.ankur.janusgraph.serviceImpl.VerticesServiceImpl.addLeads(VerticesServiceImpl.java:113)

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

      at java.lang.reflect.Method.invoke(Unknown Source)

      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)

      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)

      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)

      at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)

      at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)

      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)

      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)

      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)

      at com.sun.proxy.$Proxy39.addLeads(Unknown Source)

      at com.test.ankur.janusgraph.mains.AppMain.main(AppMain.java:48)

Caused by: org.janusgraph.diskstorage.TemporaryBackendException: Lock write retry count exceeded

      at org.janusgraph.diskstorage.locking.consistentkey.ConsistentKeyLocker.writeSingleLock(ConsistentKeyLocker.java:339)

      at org.janusgraph.diskstorage.locking.consistentkey.ConsistentKeyLocker.writeSingleLock(ConsistentKeyLocker.java:123)

      at org.janusgraph.diskstorage.locking.AbstractLocker.writeLock(AbstractLocker.java:304)

      ... 21 more


Please help in this.


Ankur Goel <ankur...@...>
 

Just to update problem got resolved, i was using without:


mgmt.setConsistency(leadidCUniqueIndex, ConsistencyModifier.LOCK);


After removing, this works like charms earlier in adding 300 vertex we were having this problem very frequently. isnt this strange for single node embedded configuration (cassandra + es) this is affecting too much.


Learning is:having unique index is suicidal in janus. Is there any other way if needs to use unique index. Luckily we handled unique thing through application.


~AnkurG

 


On Wednesday, September 6, 2017 at 7:44:38 PM UTC+5:30, Ankur Goel wrote:
We are using single node Janusgraph instance with embeded (cassandra and es).

While adding multiple vertex getting following exception:

org.janusgraph.diskstorage.locking.TemporaryLockingException: Temporary locking failure

      at org.janusgraph.diskstorage.locking.AbstractLocker.writeLock(AbstractLocker.java:309)

      at org.janusgraph.diskstorage.locking.consistentkey.ExpectedValueCheckingStore.acquireLock(ExpectedValueCheckingStore.java:103)

      at org.janusgraph.diskstorage.keycolumnvalue.KCVSProxy.acquireLock(KCVSProxy.java:52)

      at org.janusgraph.diskstorage.BackendTransaction.acquireIndexLock(BackendTransaction.java:255)

      at org.janusgraph.graphdb.database.StandardJanusGraph.prepareCommit(StandardJanusGraph.java:565)

      at org.janusgraph.graphdb.database.StandardJanusGraph.commit(StandardJanusGraph.java:713)

      at org.janusgraph.graphdb.transaction.StandardJanusGraphTx.commit(StandardJanusGraphTx.java:1363)

      at com.test.ankur.janusgraph.serviceImpl.VerticesServiceImpl.addLeads(VerticesServiceImpl.java:113)

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

      at java.lang.reflect.Method.invoke(Unknown Source)

      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)

      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)

      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)

      at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)

      at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)

      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)

      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)

      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)

      at com.sun.proxy.$Proxy39.addLeads(Unknown Source)

      at com.test.ankur.janusgraph.mains.AppMain.main(AppMain.java:48)

Caused by: org.janusgraph.diskstorage.TemporaryBackendException: Lock write retry count exceeded

      at org.janusgraph.diskstorage.locking.consistentkey.ConsistentKeyLocker.writeSingleLock(ConsistentKeyLocker.java:339)

      at org.janusgraph.diskstorage.locking.consistentkey.ConsistentKeyLocker.writeSingleLock(ConsistentKeyLocker.java:123)

      at org.janusgraph.diskstorage.locking.AbstractLocker.writeLock(AbstractLocker.java:304)

      ... 21 more


Please help in this.