ElasticSearch delete_by_query: попытка создать слишком много контекстов прокрутки - PullRequest
1 голос
/ 06 августа 2020

Я пытаюсь исправить эту ошибку при запуске delete_by_query API на AWS ElasticSearch:

Пытаюсь создать слишком много контекстов прокрутки. Должно быть меньше или равно: [500]. Это ограничение можно установить, изменив настройку [search.max_open_scroll_context].

После просмотра нескольких сообщений у меня есть базовое c представление о том, что такое контекст прокрутки, однако я знаю «контексты открытой прокрутки» все еще остаются неясными.

У меня есть несколько вопросов относительно моего понимания:

  • Означает ли это, что API откроет контекст прокрутки на указанное время ( scroll = некоторый период) и после обработки (в течение установленного времени прокрутки) открыть новый контекст?
  • Если да, остаются ли ранее обработанные контексты открытыми до завершения работы API?
  • I иметь 4 java экземпляров EC2, каждый из которых будет выполнять delete_by_query API. Может ли это также привести к тому, что слишком много контекстов прокрутки останется открытым? или это не связано?

Пожалуйста, пролейте свет, если чего-то не хватает.

Подходим к исправлению ошибки:

Прямым решением было бы увеличить search.max_open_scroll_context параметр, однако он имеет отрицательные побочные эффекты, как указано в разделе *1027* документа

Существуют ли другие решения?

  • Может увеличиваться размер пакета для справки прокрутки?

Изменить: экземпляры EC2 (2 на востоке-1 и 2 на западе-2) запускают приложение Spring с частотой 1 с (эта частота преднамеренная и не может быть изменен из-за некоторых ограничений), прослушивание SQS (в соответствующих регионах) для сообщений, и delete_by_query будет использовать действие на эти сообщения (удаление на основе некоторого параметра из полученного сообщения). Примечание. В SQS поступает значительный объем данных.

...