Слияние
Фрагмент в Elasticsearch — это индекс Lucene, а индекс Lucene разбивается на сегменты. Сегменты — это внутренние элементы хранения в индексе, где хранятся данные индекса, и они неизменяемы. Меньшие сегменты периодически объединяются в более крупные, чтобы контролировать размер индекса и удалять удаленные данные.
Процесс слияния использует автоматическое ограничение, чтобы сбалансировать использование ресурсов оборудования между слиянием и другими операциями, такими как поиск.
Расписание слияния
Планировщик слияния (ConcurrentMergeScheduler) управляет выполнением операций слияния, когда они необходимы. Слияния выполняются в отдельных потоках, и когда достигнуто максимальное количество потоков, дальнейшие слияния будут ждать, пока поток слияния не станет доступным.
Планировщик слияния поддерживает следующие динамические настройки:
-
index.merge.scheduler.max_thread_count - Максимальное количество потоков на одном фрагменте, которые могут выполняться одновременно. По умолчанию значение равно
Math.max(1, Math.min(4, <<node.processors, node.processors>> / 2)), что хорошо подходит для твердотельных накопителей (SSD). Если ваш индекс находится на жёстких дисках с вращающимися пластинами, уменьшите это значение до 1.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/index-modules-merge.html