Контексты прокрутки остаются открытыми, и в Elasticsearch v7.3 они никогда не удаляются и не устаревают? - PullRequest
3 голосов
/ 07 февраля 2020

Я использую ES v7.3 и использую нарезку для потоковой передачи данных из ES, но я наблюдаю, что после нескольких потоковой передачи данных некоторые контексты прокрутки остаются открытыми, и они остаются открытыми в течение нескольких дней, и срок их действия не истек или убит и, следовательно, поиск продолжается, и наблюдаются высокие всплески скорости процессора. Также в журналах мы получаем следующее сообщение:

[2020-02-07T06:49:33,559][DEBUG][o.e.a.s.TransportSearchScrollAction] [ip-1-0-104-220] [1234717] Failed to execute query phase
org.elasticsearch.transport.RemoteTransportException: [ip-1-0-104-220][1.0.104.220:9300][indices:data/read/search[phase/query/scroll]]
Caused by: org.elasticsearch.search.SearchContextMissingException: No search context found for id [1234717]
    at org.elasticsearch.search.SearchService.getExecutor(SearchService.java:462) ~[elasticsearch-7.3.1.jar:7.3.1]
    at org.elasticsearch.search.SearchService.runAsync(SearchService.java:344) ~[elasticsearch-7.3.1.jar:7.3.1]
    at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:401) ~[elasticsearch-7.3.1.jar:7.3.1]
    at org.elasticsearch.action.search.SearchTransportService.lambda$registerRequestHandler$10(SearchTransportService.java:367) ~[elasticsearch-7.3.1.jar:7.3.1]
    at org.elasticsearch.xpack.security.transport.SecurityServerTransportInterceptor$ProfileSecuredRequestHandler$1.doRun(SecurityServerTransportInterceptor.java:257) [x-pack-security-7.3.1.jar:7.3.1]

Запрашивает, может ли кто-нибудь помочь нам, если нам не хватает какого-либо параметра на уровне индекса, который мы должны применить, чтобы эти открытые контексты были уничтожены или истекли после истекло время ожидания.

Для проверки и удаления открытого контекста я использую следующую команду соответственно:

GET _nodes/stats/indices?filter_path=**.open_contexts
DELETE /_search/scroll/_all

Более того, мои таймауты:

exports.ELASTICSEARCH = {
  PARALLEL_SLICES : 2,
  SCROLL_ALIVE_TIME : '5m',
  SLICE_ALIVE_TIME : '1m',
  SCROLL_SIZE : 10000,
  REQUEST_RETRY_COUNT : 5,
  REQUEST_TIMEOUT : 120000, // in milliSecond
  ERROR_RETRY_COUNT : 3

};

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...