Я хочу иметь команду, которая добавит вершину, если она не существует в графе, и я использую эту команду для этого
g.V().hasLabel('record').has('myId', 2284588).fold().coalesce(unfold(), addV('record').property('myId', 2284588))
это добавит 1 вершину, и я хочу чтобы иметь возможность делать несколько дополнений в одном запросе, как я понял, это быстрее, чем выполнение нескольких запросов
, поэтому команда, которая будет сгенерирована, будет примерно такой
g.V().hasLabel('record').has('myId', 2284588).fold().coalesce(unfold(), addV('record').property('myId', 2284588)).V().has('myId', 2284581).fold().coalesce(unfold(), addV('record').property('myId', 2284581))
это хорошо работает в небольшом графе (около 10000 вершин), это занимает около 0,1 секунды, но когда граф имеет около 1 миллиона вершин, одиночное добавление занимает 0,1 секунды, а когда я выполняю несколько команд, это занимает 20 секунд
из того, что я пробовал, похоже, что команда fold () занимает так много времени, но почему-то только тогда, когда она появляется более одного раза
, поэтому мой главный вопрос - почему и делаю ли я что-то здесь не так ...
Я использую гремлин с nodeJS и имею нептун (aws) graphdb