Моя среда
Версия ArangoDB: 3.6.2 Модуль хранилища: RocksDB Режим развертывания: одиночный сервер Стратегия развертывания: ручной запуск в Docker Инфраструктура: Собственная операционная система: Linux версия 4.4.0-154-generi c (g cc версия 5.4.0 (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.10)) Общее ОЗУ на вашем компьютере: 4 ГБ Используемые диски: Используемый жесткий диск Пакет: Docker -Official Docker library
Моя проблема: У меня есть график с узлами 60k и ребрами 4 * 60k. Всякий раз, когда я пытаюсь использовать «путь» для фильтра или возврата, предел памяти достигает, контейнер arangodb падает, и он перезапускается. Однако, если я не использую «путь» и использую «вершину» или «ребро» только для фильтрации или возврата, запрос выполняется и выдает результат, как и ожидалось. Эта проблема видна в версии 3.6.2.
Однако в arangodb 3.1.18 эта проблема не видна, и все работает нормально.
Пример Запрос:
FOR v, e, p IN 6 OUTBOUND "root_node" GRAPH "my_graph_db"
FILTER (
LENGTH(p.edges) == 6 &&
LIKE (p.edges[3]._from,"Data_level_3%",true) &&
(LIKE (p.edges[3]._to, "Data_level_4%") || LIKE (p.edges[3]._to, "Data_4%")) &&
...................................................................
)
LIMIT 0,10
RETURN {
result: Merge(
{data: v},
{parent_id: p.edge[5]._id}
),
.................
}
Ожидаемый результат: Контейнер arangodb не должен достигать предела памяти cra sh. Атрибуты 'Path' должны быть доступны при выполнении запросов.
Пожалуйста, обратитесь к https://github.com/arangodb/arangodb/issues/11277