Контейнер Arangodb достигает предела памяти и падает при фильтрации, используя путь для обхода графа. - PullRequest
1 голос
/ 17 марта 2020

Моя среда

Версия 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

...