Я пытаюсь создать несколько экземпляров графа в 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.groovy
globals << [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