Neo4j:新闻提要链表并行插入
我被Neo4J中的并行插入卡住了。我一直以这种方式开发带有链接列表的新闻提要:Neo4j:新闻提要链表并行插入,neo4j,cypher,Neo4j,Cypher,我被Neo4J中的并行插入卡住了。我一直以这种方式开发带有链接列表的新闻提要: (Resource)-[:NEWS]->(Latest_New)-[:NEXT]->(Second_latest)-[:NEXT]->... 我有以下查询,以便在列表的开头插入[:NEWS]->latest\u new: CREATE CONSTRAINT ON (c:New) ASSERT c.head_id IS UNIQUE MERGE (head: New {head_id: uniqu
(Resource)-[:NEWS]->(Latest_New)-[:NEXT]->(Second_latest)-[:NEXT]->...
我有以下查询,以便在列表的开头插入[:NEWS]->latest\u new:
CREATE CONSTRAINT ON (c:New) ASSERT c.head_id IS UNIQUE
MERGE (head: New {head_id: unique_id})
REMOVE head.head_id
WITH head
MATCH (resource)
WHERE resource.uid = resource_uid
OPTIONAL MATCH (resource)-[rel:NEWS]->(last_head)
WITH resource,head,rel, collect(last_head) as previous
DELETE rel
FOREACH (x IN previous | CREATE resource-[:NEWS]->(new_head:New {head_id: unique_id})-[:NEXT]->x)
WITH resource, head, rel
WHERE rel IS NULL
CREATE resource-[:NEWS]->head
SET header.head_id = unique_id
当我按顺序运行此查询时,一切都正常。另一方面,当我同时运行它时,它只会创建没有关系的空新节点,有时会出现死锁。我对Neo4j中MERGE+UNIQUE约束和其他并行内容的锁定行为感到困惑
你知道什么是失败的吗?欢迎对MERGE+UNIQUE约束的锁定beaviour进行一些解释。多谢各位