Neo4j Ошибка нехватки памяти при удалении повторяющихся отношений - PullRequest
0 голосов
/ 05 мая 2020

В моей базе данных neo4j более 12 миллионов записей об отношениях. при импорте данных по ошибке были созданы некоторые повторяющиеся отношения, которые я хочу удалить сейчас. Всякий раз, когда я выполнял следующий запрос

MATCH (a:person)-[r:IS_A_FRIEND]->(b:person)
WITH a, b, COLLECT(r) AS rr
WHERE SIZE(rr) > 1
WITH rr
LIMIT 1000
FOREACH (r IN TAIL(rr) | DELETE r)

Neo.TransientError.General.OutOfMemoryError, возникает ошибка. У меня есть следующие neo4j conf

dbms.memory.heap.initial_size=8G
dbms.memory.heap.max_size=16G

Как мне избавиться от этой ошибки и удалить повторяющиеся отношения

1 Ответ

2 голосов
/ 06 мая 2020

Следующий запрос может выполняться без нехватки памяти:

MATCH (a:person)-[:IS_A_FRIEND]->(b)
FOREACH(x IN TAIL([(a)-[r:IS_A_FRIEND]->(b) | r]) | DELETE x)

PROFILE (в neo4j 4.0.3) этого конкретного запроса не выполняет покажите операцию Eager , которая может быть причиной вашего состояния OOM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...