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