マージ・メトリクスMBean

マージ・メトリクスMbeanはマージ操作を調整するのに役立ちます。

マージ・メトリクスMbeanは、Solr/Luceneがディスクに蓄積されたセグメントのマージに費やす時間を追跡します。セグメントは、新しいドキュメントを格納するファイルであり、独自のインデックスが付いています。データが削除されても、Luceneはそのデータを取り除かず、代わりにドキュメントに「削除済み」の印を付けます。たとえば、マージ・プロセス中に、Luceneはデータを100個のセグメント・ファイルから1つの新しいファイルにコピーします。「削除済み」の印を付けられたドキュメントは、この新しいセグメント・ファイルには含められません。次に、Luceneは100個の古いセグメント・ファイルを取り除きます。そして、1つの新しいファイルが、インデックスをディスクに保持します。

セグメントは、ディスクに書き込まれた後は、不変になります。

高スループット環境では、セグメント・ファイルが1つしかないのはまれです。通常は、ファイルが複数あり、Luceneがマージ・ポリシーとマージ・スケジュールを使って、マージ・メトリクス操作をデータの挿入処理および更新処理と同時に実行します。

マージ操作はコストが高いため、Solrクエリーのパフォーマンスが低下する可能性があります。非常に大きいマージ操作を行うと、クエリー実行時間が突然長くなる可能性があります。

操作のメイン・フェーズ

インデックス上でのマージ操作のメイン・フェーズは以下のとおりです。
INIT
マージ・プロセスの初期化にかかる時間。
EXECUTE
マージ・プロセスの実行にかかる時間。
WARM
セグメントをウォーム・アップしてコールド・クエリーをスピード・アップするためにかかる時間。

WARM時間は、EXECUTE時間の一部です。つまり、EXECUTE時間 = WARM時間 + その他の操作。たとえば、EXECUTEフェーズが340 ms、WARMフェーズが120 msの場合、その他の操作は残りの220 msを占めます。

マージ・メトリクスMbean操作には、以下の図に示すように、以下のものがあります。
  • getRecordedLatencyCount
  • getLatencyPercentile
  • getAverageLatency
  • resetLatency
  • resetLatencies
マージ・メトリクスMbean操作を示したJconsole。

マージ・メトリクスを得るには、マージ操作のいずれかを挿入し、フェーズを1つ、たとえばEXECUTEを選択します。