драйвер tinkerpop - janusgraph теряет данные - новая вершина не сохраняется - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь добавить данные в существующий janusdb на хранилище cassandra.

Я использую драйвер tinkerpop.

Таким образом я создаю обход:

g = traversal().withRemote(DriverRemoteConnection.using(host,port,"g"));

И таким образом я добавляю пользователя

g.addV("User").properties("name",name).hasNext();

Затем я пытаюсь восстановить пользователя из БД

g.V().has("name",user).values("name")   

Но пользователь не найден

Тот же результат с консоли gremlin

graph.addVertex(label, 'User', 'name', 'ciro2')

Если я ищу пользователя в том же сеансе, я нахожу его. Если я закрываю сессию и перезапускаю консоль, я не могу найти пользователя.

Хорошо, после использования команды фиксации, данные сохраняются в базе данных, но только из консоли.

graph.tx().commit();

1 Ответ

0 голосов
/ 18 марта 2020

ВСТРОЕННЫЕ РЕШЕНИЯ

graph = JanusGraphFactory.open(cassandraConfigPath);
g = graph.traversal();

Где cassandraConfigPath указывает на файл

janusgraph-cassandra-es.properties

и его содержание:

storage.backend=cql
storage.hostname=127.0.0.1
cache.db-cache = true
cache.db-cache-clean-wait = 20
cache.db-cache-time = 180000
cache.db-cache-size = 0.25
index.search.backend=elasticsearch
index.search.hostname=127.0.0.1
index.search.elasticsearch.client-only=true

Наконец, я могу добавить вершину, используя этот код:

g.addV("User").property("name", f).next();
g.getGraph().tx().commit(); 

РЕДАКТИРОВАТЬ:

Благодаря комментарию Флориана Хокмана я тоже нашел решение для удаленного сервера. Когда я задал вопрос, я использовал версию 3.4.4 драйвера tinkerpop. Это не может загрузить файл conf / remote-objects.yaml. Когда я сделал обновление библиотеки до 3.4.6 все работает нормально.

УДАЛЕННОЕ РЕШЕНИЕ

g = traversal().withRemote(gremlinServerConfigPath);
graph = g.getGraph();

, где gremlinServerConfigPath - это файл: ///full.qualified.name.properties

и содержимое

gremlin.remote.remoteConnectionClass=org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection
gremlin.remote.driver.clusterFile=conf/remote-objects.yaml
gremlin.remote.driver.sourceName=g

conf / remote-objects.yaml (в папке ресурсов)

hosts: [localhost]
port: 8182
serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0, config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}

В этом случае фиксация не требуется

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