首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有可能重写关系的Neo4j锁行为?

是否有可能重写关系的Neo4j锁行为?
EN

Stack Overflow用户
提问于 2015-06-18 16:01:51
回答 1查看 1.3K关注 0票数 0

参见:http://neo4j.com/docs/stable/transactions-locking.html“在创建或删除关系时,将对特定关系及其两个节点执行写锁”。

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

在某些情况下,“默认锁定行为”会产生大量争用和死锁的可能性。例如,我有一个由30个节点组成的集合X,两个事务同时创建了与X中每个节点有关系的新节点,这需要每个事务在X中的所有30个节点上获得一个写锁;死锁是一种很强的可能性。

将行为描述为“默认”,听起来似乎可以覆盖此行为。如果是的话,我怎样才能做到呢?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-19 07:18:28

不可能覆盖锁定行为。Neo4j用于支持多个隔离级别,因此可能是因为“默认”一词是从那个时候开始的,并且页面需要更新。

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

如果您可以随意使用图形模型,则可以引入关系节点,竞争节点可以将它们的易失性关系委托给关系节点。这样,你就可以用一个更复杂的图形来分割锁。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30920379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档