Есть ли способ заставить Gremlin Server использовать ВСЕ 8 процессорных ядер на моем оборудовании p c для выполнения моего запроса вместо одного?
Что ж, запрос Gremlin Использование ресурсов в значительной степени будет связано с базовым исполнением системы графов (в вашем случае neo4j или orientdb). Если базовая графическая система может распараллелить какой-либо аспект запроса, то я думаю, что вы увидите больше использования процессора. Если вы ищете массово параллельные типы запросов для крупномасштабных графиков, вам может потребоваться просмотреть OLAP-обходы с помощью Gremlin over Spark .
Есть ли способ доступа и измените параметры конфигурации базы данных графа, которыми управляет Gremlin Server. то есть получить доступ и изменить настройки конфигурации neo4j в Gremlin Server?
Если вы спрашиваете, есть ли какой-нибудь API для изменения настроек конфигурации neo4j через Gremlin Server, то нет, это невозможно. Однако все параметры конфигурации neo4j можно изменить с помощью файла конфигурации, который вы предоставляете Gremlin Server, который создает экземпляр neo4j, как описано здесь . По сути, для конфигураций neo4j c нужно добавить префикс gremlin.neo4j.conf.
. Например, чтобы установить опцию конфигурации dbms.index_sampling.background_enabled
, вы должны сделать:
gremlin.graph=org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph
gremlin.neo4j.directory=/tmp/neo4j
gremlin.neo4j.conf.dbms.index_sampling.background_enabled=true
Есть ли способ получить метку времени начала выполнения запроса на сервере gremlin (т.е. после сериализации клиента и отправить данные по сети на сервер gremlin, сервер gremlin десериализует данные и в тот момент, когда сервер gremlin готов выполнить запрос?). Я знаю класс TimeUtil, но он дает мне только продолжительность в миллисекундах, в течение которой серверу gremlin требуется выполнить запрос на стороне, а не метка времени.
Нет, эта метка времени не захватывается, хотя это может быть хороший кусок метаданных, который Gremlin Server может вернуть в будущем. Если бы вы использовали сценарии (а не обходы на основе байт-кода), я полагаю, вы могли бы взять метку времени и сложить ее в свой результат:
start = System.currentTimeMillis()
[start, g.V().has('person','name','marko').toList()]
Я не могу сказать, что полностью одобрил бы этот подход, поскольку он связывает встроенные строки для ваших запросов, но они по крайней мере позволяют получить временную метку.