Я пытаюсь создать несколько экземпляров графа в Janusgraph, но все они, похоже, имеют одинаковую ссылку друг на друга, поэтому любое действие, предпринимаемое с одним, влияет на другие (см. Пример ниже). Я хочу, чтобы эти графики были настроены как отдельные экземпляры, отличные друг от друга, но где-то на шагах ниже я запинаюсь.
Шаги, предпринятые для добавления нового графика в JanusGraph
Цель: создать два графика с именами graph1, graph2 с объектами обхода с именами g1, g2 соответственно, которые отличаются друг от друга.
Создайте файлы свойств с именами
graph1.properties,graph2.properties. С содержимым (для бэкэнда Cassandra):gremlin.graph=org.janusgraph.core.JanusGraphFactory gremlin.graph=org.janusgraph.core.ConfiguredGraphFactory storage.backend=cql storage.hostname=127.0.0.1
^ Я предполагаю, что здесь кроется основная проблема - graph1.properties и graph2.properties имеют одинаковое содержимое ... но я не уверен, что изменить
Добавьте графики в файл
gremlin-server.yaml, который соответствует вновь созданным файламgraph1.propertiesиgraph2.properties.graphs: { graph1: conf/gremlin-server/graph1.properties, graph2: conf/gremlin-server/graph2.properties }Добавьте имена объектов обхода в
empty-sample.groovyglobals << [g1 : graph1.traversal(), g2: graph2.traversal()]
Тестирование
Результат ниже показывает, что графики были созданы успешно, но также показывает, что они ссылаются друг на друга.
==>Configured localhost/127.0.0.1:8182-[b7696535-97d9-4b59-b30f-f83707492057]
gremlin> :remote console
==>All scripts will now be sent to Gremlin Server - [localhost/127.0.0.1:8182]-[b7696535-97d9-4b59-b30f-f83707492057] - type ':remote console' to return to local mode
gremlin> g1
==>graphtraversalsource[standardjanusgraph[cql:[127.0.0.1]], standard]
gremlin> g1.V().count()
==>100
gremlin> g2.V().count()
==>100
gremlin> g1.addV('item').property('id', '123')
==>v[327684312]
gremlin> g1.tx().commit()
==>null
gremlin> g1.V().count()
==>101
gremlin> g2.V().count()
==>101 <-- g2 should have remained at 100