フラグメンテーション(Luceneの機能) -逆索引を格納する
Luceneのインデックスは、いくつかのセグメントを含む:Luceneのに
elasticsearchに:インデックスが断片からいくつかのマスタが含まれ、破片の塊いくつかのセグメントの
セグメント単位は、最小のファイル格納さelasticsearchありますそれはセグメント化されたメモリであり、セグメントは不変になるように設計されて
新しい新しいセグメントを作成するための新しいインデックス、新しいデータストレージの作成:
削除することを、セグメントが読み取り専用であるため、そのインデックスファイルに追加れる.delファイル:専門店は、データIDを削除クエリが削除されると、データは依然として照会することができ、マージセグメント場合照会結果合併が実際に削除されますときに除外される
更新:の組み合わせ追加および削除
セグメントの利点の不変性を
- それは(直接状況既存のセグメントを変更していない)ロックを必要としません。
- セグメントが十分なメモリ限り、それを変更することなく、メモリにロードされるようにセグメントは、長期居住セグメントが大幅にクエリのパフォーマンスを向上させることができます不変ので、あなたは、メモリを利用することができます
- 更新、インクリメンタルな方法を追加することは非常に軽い、良いパフォーマンスです
セグメントの不変の欠点
- 削除はすぐにスペースの特定の廃棄物を削除することはありません
- 更新頻度の高い削除を大量に含んで、無駄なスペースがたくさんあるだろう
- セグメントの数は、セグメントの数が増加するとファイルサーバと優れたハンドル、クエリのパフォーマンスが増加すると、非常に大きくてもよいです
新しいデータ・プロセス
改善書き込みパフォーマンス(非同期ダウンプレート):プロセスの目的は、です
書き込みトランザクションログながら1、インデックスバッファを保存する(メモリは、データの損失を防ぐため、REDOログのようなビット)
空間インデックスバッファセグメントをクリアリフレッシュ動作、書き込み(index.refresh_interval構成によって)実行される第2の又はデータあたりのフルインデックスバッファ(jvm10%デフォルトの占有率)が2である場合、(ここでは一つの第二の知見は、単に保存され、そう)もほぼリアルタイムの検索エンジンとなっES
3、同時にメモリにセグメントブラシ、オープン問い合わせ
図4に示すように、フラッシュ動作セグメントがディスクに書き込まれる(デフォルト30分実行するためにA)
フラッシュ操作は、次のとおりです。
- リフレッシュ回呼び出さ
- fsync:セグメントがディスクに書き込まれます
- 空の対応するトランスログ