Обход графика ArangoDB завершается неудачей, несмотря на увеличенный размер кучи - PullRequest
0 голосов
/ 16 ноября 2018

ArangoDB Версия: 3.3.14

Статистика кучи для приложения: { total_heap_size: 39108608, total_heap_size_executable: 3670016, total_physical_size: 37433512, total_available_size: 8735662896, used_heap_size: 28891504, heap_size_limit: 8769069275, malloced_memory: 16384, peak_malloced_memory: 168484640, does_zap_garbage: 0 }

У меня есть API обхода, который проходит через 3 вершины и возвращает около 300 вершин документа. Для 200 я получаю правильный ответ, но когда я увеличиваю количество вершин до 300, API обхода выдает ошибочную неверную длину строки. Я увеличил пространство кучи для приложения до 8 ГБ, но, как видно из приведенного ниже, heap_used слишком мало. Я не совсем уверен, возникает ли эта проблема во время сериализации в JSON, так как имеется достаточно кучи памяти или есть какие-либо другие варианты для получения полных данных.

AQL-запрос (если применимо): {"request":{"vertex":"start_vertex","start_vertex":"service_teams/9a2e582997494bee9066bbcf2aa52218","start_vertices":null,"opts":{"expander":"var connections = [];\n config.datasource.getOutEdges(vertex).forEach(function (e) {\n if( (e._id.indexOf(\"loc_has_parent_loc\") > -1) || (e._id.indexOf(\"loc_is_associated_with_org\") > -1) || (e._id.indexOf(\"st_is_allocated_loc\") > -1) ) {\n connections.push({ vertex: require(\"internal\").db._document(e._to), edge: e});\n }\n });\n return connections;"},"collection_name":"","edge_name":"","data":true,"path":false}},"err":{"code":500,"message":"Invalid string length"}}

1 Ответ

0 голосов
/ 27 февраля 2019

Сообщение об ошибке, которое вы видите здесь, является сообщением об ошибке V8, таким образом, это ограничение реализации javscript. V8 допускает строки до 256 МБ.

Старый API обхода графа реализован в Javascript, и для обработки может разбивать промежуточные документы и таким образом достигать этого предела.

Пожалуйста, предпочитайте AQL-Traversals вместо для лучшей производительности.

...