Поддержка транзакций AWS Neptune - PullRequest
0 голосов
/ 24 сентября 2018

Нептун в настоящее время поддерживает только OLTP-тип запросов прохождения графа?

Но из документации :

Транзакции Нептун открывает новую транзакцию в начале каждойОбход Гремлин и завершение транзакции после успешного завершения обхода.Транзакция откатывается при возникновении ошибки.

Несколько операторов, разделенных точкой с запятой (;) или символом новой строки (\ n), включаются в одну транзакцию. Каждый оператор другойчем последний должен заканчиваться следующим () шагом, который будет выполнен.Возвращаются только окончательные данные прохождения.

Ручная логика транзакций с использованием tx.commit () и tx.rollback () не поддерживается.

Несколько операторов, разделенных точкой с запятой или символом новой строки,выполняется в одной транзакции.Итак, вы можете выполнить несколько запросов за транзакцию?Например, несколько запросов .drop () в одном скрипте?

g.V().has(id,'1').drop();
g.V().has(id,'2').drop();

При выполнении вышеизложенного выполняется только последний запрос (удаляется только вершина с id = '2').

Но для добавления вершин это работает:

g.addV('item').property(id,'3').next()";
g.addV('item').property(id,'4').next()";

Обе вершины добавляются.

Есть ли поддержка нескольких запросов на удаление в одной транзакции?

1 Ответ

0 голосов
/ 24 сентября 2018

Просто предположение, но я думаю, что вам может понадобиться iterate() ваши обходы, таким образом:

g.V().has(id,'1').drop().iterate();
g.V().has(id,'2').drop().iterate();

Учитывая ваш пример с addV() и поведение, которое вы видите с drop()последний обход является единственным, который автоматически повторяется, что согласуется с тем, как Gremlin Server обычно обрабатывает запросы сценариев.Я предполагаю, что Нептун будет работать таким же образом.

...