Влияет ли огромное количество удаленных do c count на производительность запросов ES - PullRequest
1 голос
/ 12 февраля 2020

У меня мало читающих тяжелых индексов (я начал видеть проблемы с производительностью по этим индексам) в моем кластере ES, в котором ~ 50 миллионов документов, и заметил, что на большинстве из них удалено около 25% от общего числа документов, Я знаю, что эти количество удаленных документов уменьшается со временем, когда происходит операция фонового слияния , но в моем случае это всегда около 25% от общего количества документов, и у меня есть следующие вопросы / проблемы:

  1. Будут ли эти огромные ни один из удаленных счетчиков не влияет на производительность поиска, поскольку они все еще являются частью неизменяемых сегментов lucene, и поиск выполняется по всем сегментам, и возвращается последняя версия документа, поэтому размер неизменяемых сегментов будет большим, поскольку они содержат огромное количество удаленных документов, а затем еще одна операция для определения последней версии do c.
  2. Будет ли операция слияния периодов c займет много времени и неэффективна, если имеется огромное количество удаленных документов?
  3. есть ли способ удалить это огромное количество удаленные документы за один раз, похоже, что операция слияния в фоновом режиме не в состоянии угнаться за огромным числом?

Спасибо

1 Ответ

1 голос
/ 12 февраля 2020

ваши удаленные документы по-прежнему являются частью индекса, поэтому они влияют на производительность поиска (но я не могу сказать вам, сильно ли это влияет).

В период слияния c Lucene " неохотно "объединять тяжелые сегменты, так как требует некоторого дискового пространства и генерирует много ввода-вывода.

Вы можете получить ценную информацию о своих сегментах благодаря API индексных сегментов

Если у вас есть сегменты, близкие к пределу в 5 ГБ, вполне вероятно, что они выиграли ' не может быть объединено до тех пор, пока они не будут в основном состоять из удаленных документов.

Вы можете принудительно выполнить слияние по своему индексу с помощью API принудительного слияния

Помните, что принудительное слияние может генерироваться некоторая нагрузка на кластер для огромных показателей. Существует возможность удалять только документы, что должно снизить нагрузку.

only_expunge_deletes (Необязательно, логическое значение) Если установлено значение true, удалять только сегменты, содержащие удаления документов. По умолчанию установлено значение false.

В Lucene документ не удаляется из сегмента; просто помечен как удаленный. Во время слияния создается новый сегмент, который не содержит этих удаленных документов.

С уважением

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