マージ

ElasticsearchのシャードはLuceneインデックスであり、Luceneインデックスはセグメントに分割されます。セグメントはインデックス内の内部ストレージ要素で、インデックスデータが保存されており、不変です。小さなセグメントは定期的に大きなセグメントにマージされ、インデックスサイズを抑え、削除を排除します。

マージプロセスは自動スロットリングを使用して、マージと検索などの他のアクティビティ間でハードウェアリソースの使用をバランスさせます。

マージスケジューリング

マージスケジューラ(ConcurrentMergeScheduler)は、必要に応じてマージ操作の実行を制御します。マージは別のスレッドで実行され、最大スレッド数に達すると、さらにマージはマージスレッドが利用可能になるまで待機します。

マージスケジューラは次の動的設定をサポートしています:

  • index.merge.scheduler.max_thread_count
  • 一度にマージ中の単一シャードの最大スレッド数。デフォルトはMath.max(1, Math.min(4, <<node.processors, node.processors>> / 2))で、良好なソリッドステートドライブ(SSD)に適しています。インデックスが回転するプラッタードライブの場合は、これを1に減らしてください。