Доброго времени суток!
Столкнулся с необъяснимой вещью - во время kNN-поиска падают дата-ноды (в разном порядке и через раз).
Кластер:
master 4cpu, 4gb
coordinator 8cpu, 8gb (я не уверен что он играет роль, пока что на нем нагрузки не видно)
3x data-node 16cpu, 64gb, SSD
circuit_breaker_limit=85%
Elasticsearch 7.9.1 (установлен OpenDistro For Elasticsearch 1.10.1)
Содержимое кластера: каждый индекс около 10гб, таких индексов 22 (elastic сам перемещал их по data-nodes при необходимости). Поля индекса = вектор 128 элементов, и 3 поля с доп. данными. Кол-во сегментов в индексе = кол-во шард на индекс = 1
Изначально heap ставил 30gb, потом экспериментальным путем увидел что даже с 4гб на primary-shards поиск работает исправно, 30 секунд читаются 22 индекса с дисков, дальше поиск занимает миллисекунды.
После того как включил 1 реплику для всех индексов поиск c heap=4gb вообще перестал работать, с 12gb < heap < 30gb отрабатывает через раз. Вылетает со следующей ошибкой (пример, ноды могут меняться)
{'error': {'root_cause': , 'type': 'search_phase_execution_exception', 'reason': '', 'phase': 'fetch', 'grouped': True, 'failed_shards': , 'caused_by': {'type': 'node_not_connected_exception', 'reason': '[data-node-1][data-node-1:9300] Node not connected'}}, 'status': 500}
Пробовал уменьшать circuit_breaker_limit до 50%, но это не дает никакого эффекта...
Если я правильно понимаю - при уменьшении circuit_breaker_limit я должен был получить высокое время поиска (например те же 15-30с), а индексы должны ротироваться в памяти? Тогда почему падают ноды - в логах ставил logging.level: DEBUG и там нет ошибок, разве что появляется сообщение о том, что очередная data-node снова работает. Подскажите, пожалуйста, в чем может быть проявление такой проблемы? Я готов предоставить любые логи
P.S. используется OpenDistro For Elasticsearch 1.10.1 потому что в 1.11.0 была проблема с вычислениями knn-score