слияние делает дубликаты, если 2 запроса выполняются одновременно - PullRequest
0 голосов
/ 17 мая 2018
MERGE (n:Label {
  value: $value
})
ON CREATE SET
  n.another_value = $another_value,
  n.created = timestamp()
RETURN id(n);

Если я выполняю этот запрос одновременно, я получаю 2 равных узла.Мне нужен только один.Что я делаю неправильно?

1 Ответ

0 голосов
/ 17 мая 2018

В neo4j была ошибка, которая была исправлена ​​некоторое время назад. Цитировать из последнего раздела этой статьи базы знаний :

Примечание для Neo4j <3.0.9 для версий 3.0.x и <3.1.2 для версий 3.1.x </strong>

Предотвращена ошибка в планировщике затрат для затронутых версий Двойная проверка блокировки на MERGE. Это позволило гонки условия, которые может привести к дублированию шаблонов, создаваемых одновременным MERGE операции или другая операция записи, которая вызвала ранее несуществующий шаблон существует.

Мы рекомендуем выполнить обновление до версии, включающей это исправление ошибки.

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