У меня есть граф с высокой степенью чтения с миллионом узлов и 100 миллионами ребер. Мой вариант использования - выбрать все пути (глубины 2, 3 и 4) между любыми двумя узлами. Я пытался сделать это в Neo4j, OrientDB и Postgres. Хотя он работает во всех трех базах данных, я сталкиваюсь со следующими проблемами:
- Не очень быстро.
- Добавлена медлительность для суперузлов.
- Невозможно эффективно выполнить разбивку на страницы / сортировку.
Один из способов решения всех проблем - предварительный расчет всех путей. Каков наилучший способ сделать этот предварительный расчет эффективно и где хранить эти пути? (Кроме того, как обрабатывать изменения в графике?)