Neo4J-如何避免此锁定问题
当我试图同时从一个节点删除两个不同的关系时,出现了这个错误Neo4J-如何避免此锁定问题,neo4j,cypher,neo4j-node,Neo4j,Cypher,Neo4j Node,当我试图同时从一个节点删除两个不同的关系时,出现了这个错误 {[Error:LockClient[402733]无法等待资源RWLock[RELATIONSHIP(201056),hash=1039491204],因为=>LockClient[402733]如果您的代码使用要删除的内容的一致顺序,例如按节点/关系id进行删除,则可以避免这种情况。1)匹配(a{id:1})-[r1:r]>(b{id:2})删除r1;2)匹配(a{id:1})->(c{id:3})删除r2。1)和2)可以同时运行。
{[Error:LockClient[402733]无法等待资源RWLock[RELATIONSHIP(201056),hash=1039491204],因为=>LockClient[402733]如果您的代码使用要删除的内容的一致顺序,例如按节点/关系id进行删除,则可以避免这种情况。1)匹配(a{id:1})-[r1:r]>(b{id:2})删除r1;2)匹配(a{id:1})->(c{id:3})删除r2。1)和2)可以同时运行。我如何避免这种情况?抱歉,我没有通过设置属性获取写锁来得到您的答案。因此执行match(a{id:1})-(r1:r]>(b{id:2})set a.dummyProp=1 delete r
应确保先抓取a上的写锁,然后删除r。谢谢。如果我们检测到此处提到的“DeadlockDetectedException”,请再试一次如何?这是另一种解决方案。最初的问题是如何避免它。抓取DeadlockExceptions并重试可能是侵入性最小的解决方案不过,我还是很高兴。