Сохранение транзакций Neo4j во внешнем хранилище - PullRequest
0 голосов
/ 12 октября 2018

В настоящее время я работаю над новым приложением Java, которое использует встроенную базу данных Neo4j в качестве хранилища данных.В конечном итоге мы будем развертывать на облачном хосте, на котором нет постоянного хранилища данных - все в порядке, пока приложение работает, но как только оно останавливается, мы теряем доступ ко всему, что записано на диск.

Поэтому япытаюсь найти способ сохранения данных при перезапуске приложения.У нас есть возможность фиксировать любые команды изменения по мере их поступления в наше приложение и записывать их где-то, но это означает сохранение срока действия изменений и применение их по порядку при возврате узла приложения.Есть ли какая-либо функциональность в Neo4j или SDN, которую мы могли бы использовать для регистрации изменений на уровне Neo4j и их списания в хранилище AWS S3 или тому подобное?Я взглянул на кластеризацию Neo4j, но не думаю, что это сработает как на техническом уровне (ограниченная поддержка протоколов на нашей облачной платформе), так и на стоимости лицензии Enterprise.

Любая помощь будетс благодарностью принял ...

1 Ответ

0 голосов
/ 12 октября 2018

Если у вас есть встроенный Neo4j, вы должны знать, где в вашем коде вы выполняете запрос обновления / создания / удаления в Neo, нет?

Чтобы ответить на ваш вопрос, у Neo4j есть TransactionEventHandler (https://neo4j.com/docs/java-reference/current/javadocs/org/neo4j/graphdb/event/TransactionEventHandler.html), который фиксирует всю транзакцию и сообщает вам, какой узел / rel был добавлен, обновлен, удален. Фактически это способреализовать триггеры в Neo4j.

Но в вашем случае я рассмотрю:

  • использовать другого облачного провайдера, который позволит вам иметь хранилище
  • , если это невозможнодля реализации перехвата при завершении работы приложения, которое копирует папку graph.db в хранилище (выполните противоположное для запуска)
  • , используя Neo4j в качестве удаленного сервера, и установите его на облачном провайдере схранение.
...