Короткий ответ заключается в том, что Gremlin Server не позволяет создавать программные графы - графы настраиваются заранее до запуска Gremlin Server.
Более длинный ответ заключается в том, что Gremlin Server является эталонной реализациейпротокола сервера Gremlin, что означает, что в зависимости от используемой вами графической базы данных с поддержкой TinkerPop вы можете получить другой ответ на свой вопрос. Например, DS Graph и JanusGraph имеют опции для построения динамического графа. Neo4j и TinkerGraph, с другой стороны, используют необработанную эталонную реализацию Gremlin Server и поэтому не имеют такой функциональности.
Этот последний момент относительно эталонной реализации приводит к еще более длинному ответу. Вы можете отправить скрипт для создания графиков, таких как Neo4jGraph
или TinkerGraph
, но он не добавит их в глобальный список графиков, которые содержит Gremlin Server (который вы пытались смоделировать в своем псевдокоде с помощью graphs.add(g)
). Это, конечно, означает, что вы не сможете получить доступ к этим вновь созданным Graph
экземплярам по будущим запросам ........ если только вы не используете сеанс . Причина того, что TinkerPop имеет запросы как без сеансов, так и с сеансами, заключается в том, что сеансы, как правило, обходятся серверу дороже, поскольку они поддерживают большее состояние между запросами и связывают запросы с одним сервером Gremlin, а не распределяют запросы по кластеру. TinkerPop рекомендует использовать безсессионный режим почти для всех вариантов использования и резервировать сессионные запросы для некоторых довольно узких вариантов использования (например, инструментов - пользовательского интерфейса визуализации на основе Gremlin).
Вероятно, есть несколько способов расширить Gremlin Server для ваших целей (JanusGraph сделал это с их пакетом Gremlin Server), но для этого потребовалось бы получить знания о самом коде. Я мог бы дать вам некоторые дополнительные рекомендации, но StackOverflow, вероятно, не является подходящим местом для этого. Не стесняйтесь задавать вопросы в списке рассылки gremlin-users , если вы хотите обсудить этот вариант более подробно.