circuit_breaking_exception: CircuitBreakingException[[parent]]: данные слишком велики, данные для [<...>] составили бы [...], что превышает лимит [...]
ElasticsearchЧто это значит?
Запрос отклонён, поскольку превысил бы лимит circuit breaker по памяти (heap). Elasticsearch заранее останавливает запрос, чтобы узел не аварийно завершился с OutOfMemoryError. Breaker [parent] контролирует общее использование памяти; breaker [fielddata] — память fielddata для текстовых полей.
Почему возникает?
Недостаточный JVM heap, очень большие/сложные агрегации, большие наборы результатов, крупные bulk-запросы, fielddata, загруженная для текстовых полей, или множество тяжёлых параллельных запросов, заполняющих heap. Обычно это симптом нехватки heap.
Как исправить
Уменьшите запросы: сократите размер агрегаций, размер пакетов bulk и возвращаемые поля. Агрегируйте по подполю keyword (.keyword), а не по fielddata текстовых полей. Увеличьте JVM heap (~50% RAM сервера, не более ~31GB). Отслеживайте нагрузку на heap: GET _cat/nodes?v&h=name,heap.percent. Устраняйте первопричину (память/запрос), а не повышайте временно лимиты breaker. Проверьте, какой breaker сработал, с помощью GET _nodes/stats/breaker.
Ещё по этой СУБД
- cluster_block_exceptionClusterBlockException[blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block]] (до 7.x: FORBIDDEN/12/index read-only / allow delete (api))
- index_read_only_allow_deleteTOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block (устаревший вариант: FORBIDDEN/12/index read-only / allow delete (api))
- high_disk_watermark_exceededПревышен high disk watermark [90%] / превышен flood stage disk watermark [95%]
- mapper_parsing_exceptionmapper_parsing_exception: не удалось разобрать поле [...] типа [...]
- strict_dynamic_mapping_exceptionstrict_dynamic_mapping_exception: mapping задан как strict, динамическое добавление [...] внутри [...] не допускается
- illegal_argument_exception_fielddataillegal_argument_exception: fielddata по умолчанию отключена для текстовых полей. Задайте fielddata=true для [your_field], чтобы загрузить fielddata в память
- search_phase_execution_exceptionsearch_phase_execution_exception: сбой на всех шардах / не удалось выполнить фазу [query]