是否可以覆盖关系的 Neo4j 锁定行为?

Is it possible to override Neo4j lock behavior for relationships?

参见:http://neo4j.com/docs/stable/transactions-locking.html "When creating or deleting a relationship a write lock will be taken on the specific relationship and both its nodes"

假设我需要在事务中创建许多关系。我不关心锁定连接到这些关系的节点。特别是对于其他并发事务: 1) 在这些节点上更新属性不会干扰我的操作 2) 创建或删除与这些节点的 other 关系不会干扰我的操作

"default locking behavior" 在某些情况下会产生大量争用和死锁的可能性。例如,我有一个包含 30 个节点的集合 X,两个事务同时创建与 X 中的每个节点都有关系的新节点。这需要每个事务在 X 中的所有 30 个节点上获得写锁;死锁的可能性很大。

行为描述为 "default" 听起来好像可以覆盖此行为。如果可以,我该怎么做?

(更多背景:系统通常使用Spring Data Neo4j和Cypher查询与数据库进行交互。)

无法覆盖锁定行为。 Neo4j 曾经支持多个隔离级别,所以 "default" 这个词可能是那个时候的,页面需要更新。

在 Neo4j 中,您无法删除具有关系的节点。我认为这就是为什么它会在您创建关系时锁定节点。不幸的是,它会干扰修改属性和其他关系。

如果您可以随意使用图形模型,则可以引入关系节点,竞争节点可以将其不稳定的关系委托给这些关系节点。这样你就可以以更复杂的图形为代价对锁进行条带化。