如何使用 neo4j 避免死锁

2024-01-07

我刚刚了解到,当我在 Neo4j 中创建两个节点之间的关系时,它们都被锁定(http://docs.neo4j.org/chunked/stable/transactions-locking.html http://docs.neo4j.org/chunked/stable/transactions-locking.html)。 然而,在我们的项目中,我们有可以实例化的元素,并且最终在图中有两个通过“INSTANCE_OF”关系链接的节点。 例如,如果我实例化元素 B,我就会有一个新元素 B1。它们存储在图中,如 B

非常感谢您的帮助


你有两个策略:

第一种是悲观的,是使用LockManager 获取写锁方法在添加相关的 B1 节点之前获取节点 B 上的排他锁,并在关系创建完成后立即将其解锁;

第二个是乐观的,是在死锁的情况下实施重试策略,可以捕获DeadlockDetectedException异常并重试该操作,直到成功。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 neo4j 避免死锁 的相关文章

随机推荐