Время ожидания запроса gremlin hasLabel истекло - PullRequest
0 голосов
/ 20 июня 2020

У меня есть тестовый граф с менее чем миллионом узлов и, вероятно, немного большим количеством ребер. Я использую удаленный клиент gremlin для подключения к экземпляру janusgraph / gremlin-server, поддерживаемому 3 серверными модулями scylla.

У меня есть различные узлы с разными пометками, например URL-адрес, домен, хост и бренд. График содержит в основном URL-адрес, домен и узлы хоста. У меня есть один узел бренда во всем графике. Узел бренда выглядит так:

{
    label: brand 
    properties: {
        brand: string
    }
}

Я могу выполнить следующий запрос за 1,5 мс. Свойство brand имеет составной индекс.

g.V().hasLabel('brand').has('brand','stackoverflow');

В приведенном ниже запросе истекает 30-секундный тайм-аут. Я ожидаю, что этот запрос вернет только один результат на основе данных, которые я импортировал в график. Я проверил тестированием с пределом

g.V().hasLabel('brand')

Мои вопросы

  • Почему истекает время ожидания?
  • Сканирует ли Янусграф все узлы графа, чтобы попытаться найти единственный узел, помеченный как «бренд»? На этикетках нет индекса по умолчанию?
  • Почему первый запрос выполняется нормально, если первые шаги для обоих одинаковые?

Спасибо

1 Ответ

1 голос
/ 20 июня 2020
  • Почему истекает время ожидания?
  • Сканирует ли Янусграф все узлы графа, чтобы попытаться найти единственный узел, помеченный как «бренд»? Разве у меток нет индекса по умолчанию?

Как вы уже догадались, время ожидания истекло из-за полного сканирования графа, поскольку метки вершин не индексируются в JanusGraph. Для этого существует открытая проблема: https://github.com/JanusGraph/janusgraph/issues/283

  • Почему первый запрос выполняется нормально, если первые шаги для обоих одинаковы?

В этом случае я подозреваю, что оптимизатор JanusGraph может оптимизировать план обхода для использования составного индекса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...