Пакетное обновление Neo4j с UNWIND работает медленнее или даже зависает - PullRequest
1 голос
/ 10 июля 2020

По популярной статье https://dzone.com/articles/tips-for-fast-batch-updates-of-graph-structures-wi. Я делаю пакетное обновление. Я использую java API для его обновления, и мой запрос выглядит так:

UNWIND $ props as row MERGE (n: Entity {eid: row.eid}) ON MATCH set n + = row.properties

У меня есть набор данных в 1 миллион записей, и я использую размер пакета как 10 КБ, каждый раз, когда я отправляю 10 КБ записей в виде списка карт для моих параметров. Этот подход работал нормально вначале, но он стал действительно медленнее или даже застрял после 2 или 3 пакетов.

У меня есть Index on Entity и eid, я использовал браузер для проверки своего запроса, и это выглядит так: Объясните UNWIND $ props как строку ....

Для вновь добавленного узла, когда я пытался сопоставить их с меткой Entity и eid свойства, также используется индекс. Поэтому я считаю, что моя проблема не связана с индексом.

Я пытался использовать меньший размер пакета, как 1 КБ, но возникла та же проблема, примерно после 50 пакетов обновление стало очень медленным.

Я использую Neo4j 3.2.3 Enterprise Edition.

Что я могу сделать, чтобы решить эту проблему? Любая идея будет оценена по достоинству.

...