31 lines
1.2 KiB
Plaintext
31 lines
1.2 KiB
Plaintext
|
[[index-modules-merge]]
|
||
|
== Merge
|
||
|
|
||
|
A shard in elasticsearch is a Lucene index, and a Lucene index is broken down
|
||
|
into segments. Segments are internal storage elements in the index where the
|
||
|
index data is stored, and are immutable. Smaller segments are periodically
|
||
|
merged into larger segments to keep the index size at bay and to expunge
|
||
|
deletes.
|
||
|
|
||
|
The merge process uses auto-throttling to balance the use of hardware
|
||
|
resources between merging and other activities like search.
|
||
|
|
||
|
[float]
|
||
|
[[merge-scheduling]]
|
||
|
=== Merge scheduling
|
||
|
|
||
|
The merge scheduler (ConcurrentMergeScheduler) controls the execution of merge
|
||
|
operations when they are needed. Merges run in separate threads, and when the
|
||
|
maximum number of threads is reached, further merges will wait until a merge
|
||
|
thread becomes available.
|
||
|
|
||
|
The merge scheduler supports the following _dynamic_ setting:
|
||
|
|
||
|
`index.merge.scheduler.max_thread_count`::
|
||
|
|
||
|
The maximum number of threads that may be merging at once. Defaults to
|
||
|
`Math.max(1, Math.min(4, Runtime.getRuntime().availableProcessors() / 2))`
|
||
|
which works well for a good solid-state-disk (SSD). If your index is on
|
||
|
spinning platter drives instead, decrease this to 1.
|
||
|
|