Если у меня есть ES-кластер и данные индексации приложений в ES.Elasticsearch: Каков эффект отключения репликации и балансировки
EDIT: Приложение создает индексы динамическим способом, основанным на некоторых бизнес-правилах.
Например, если приложение прослушивает твиты из API Twitter, основанные на некоторых хэштегах, он создает индекс в ES для каждого хэштега. Таким образом, каждый раз, когда появляется новый хэштег, в ES создается новый индекс.
Иногда происходит перераспределение осколков, и на данном этапе кластер ведет себя плохо, поскольку количество данных, перемещаемых между узлами, огромно.
Из API ES-кластера мы можем отключить перераспределение и балансировку осколков.
Какими будут последствия (положительные и отрицательные) для отключения перераспределения и балансировки?
thnx для ответа, я отредактировал вопрос, поскольку часть hashtags была всего лишь примером. Независимо от примера, если приложение получает около 3 миллионов твитов в день, и мы хотим хранить данные за последние три месяца (что означает 3 миллиона doc * 30 * 3), мы можем поместить весь этот объем данных в один индекс и сделать запросы с фильтром на хэштеге или создать отдельный индекс на хэштег. Мы выбрали второй подход. Что Вы думаете об этом? – Fanooos
Если вы хотите сохранить «x количество дней данных» в ES, это обычный шаблон, который должен иметь, например, 1 индекс/день с достаточным количеством осколков для ожидаемого общего количества документов, тогда его можно будет легко настроить в будущем. Также удаление старых данных просто, поскольку вы можете удалить целые индексы. Кроме того, вы можете использовать псевдонимы, чтобы делать запросы на «все данные», «последние 7 дней» и т. Д. Тривиально. Для общих хэштегов вы можете создавать фильтрованные псевдонимы. Я не уверен, что было бы полезно иметь отдельный индекс за хэштег. – NikoNyrh