参见:http://neo4j.com/docs/stable/transactions-locking.html“在创建或删除关系时,将对特定关系及其两个节点执行写锁”。
假设我需要在事务中创建许多关系。我不关心锁定那些连接到这些关系的节点。特别是对于其他并发事务: 1)更新这些节点上的属性不会干扰我的操作;2)创建或删除对这些节点的其他关系不会干扰我的操作。
在某些情况下,“默认锁定行为”会产生大量争用和死锁的可能性。例如,我有一个由30个节点组成的集合X,两个事务同时创建了与X中每个节点有关系的新节点,这需要每个事务在X中的所有30个节点上获得一个写锁;死锁是一种很强的可能性。
将行为描述为“默认”,听起来似乎可以覆盖此行为。如果是的话,我怎样才能做到呢?
(更多背景:系统通常使用Spring数据、Neo4j和Cypher查询与数据库进行交互。)
发布于 2015-06-19 07:18:28
不可能覆盖锁定行为。Neo4j用于支持多个隔离级别,因此可能是因为“默认”一词是从那个时候开始的,并且页面需要更新。
在Neo4j中,不能删除具有关系的节点。我认为这就是为什么当您创建关系时,它会锁定节点。它干扰了修改属性和其他关系,这是不幸的。
如果您可以随意使用图形模型,则可以引入关系节点,竞争节点可以将它们的易失性关系委托给关系节点。这样,你就可以用一个更复杂的图形来分割锁。
https://stackoverflow.com/questions/30920379
复制相似问题