diff --git a/docs/reference/index-modules.asciidoc b/docs/reference/index-modules.asciidoc index 7d6614342b5..f7e1f68dec5 100644 --- a/docs/reference/index-modules.asciidoc +++ b/docs/reference/index-modules.asciidoc @@ -148,6 +148,10 @@ Other index settings are available in index modules: Enable or disable dynamic mapping for an index. +<>:: + + Control over how shards are merged by the background merge process. + <>:: Configure custom similarity settings to customize how search results are @@ -173,6 +177,8 @@ include::index-modules/allocation.asciidoc[] include::index-modules/mapper.asciidoc[] +include::index-modules/merge.asciidoc[] + include::index-modules/similarity.asciidoc[] include::index-modules/slowlog.asciidoc[] diff --git a/docs/reference/index-modules/merge.asciidoc b/docs/reference/index-modules/merge.asciidoc new file mode 100644 index 00000000000..7e5260f95d4 --- /dev/null +++ b/docs/reference/index-modules/merge.asciidoc @@ -0,0 +1,30 @@ +[[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. +