Solr 6のレプリケーションに関する質問

トピック作成者:ks-solruserml-bot (2024/07/18 12:02 投稿)
5
CloseClose

(The bot translated the original post https://lists.apache.org/thread/6g99rfzr8yn9d4qyp09xopy8kc3xvmmo into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは、

私はMaster/Slave構成で大規模なSolr 6サーバーセットを維持しているため、レプリケーションについてもっと学んでいます。

レプリケーション活動中に、ファイルシステム上のコア名の下にある元のインデックスディレクトリに加えて、「index」という名前のタイムスタンプ付きディレクトリ(index.<timestamp>)が作成されることに気付きました。レプリケーション中にファイルがこのタイムスタンプ付きディレクトリに書き込まれます。この仕組みに興味があります。

各コアがマスターにレプリケーションするたびに、このタイムスタンプ付きディレクトリが作成されるのでしょうか?

それとも、このタイムスタンプ付きディレクトリは特別な場合にのみ作成・使用されるのでしょうか?もしそうなら、どのような場合でしょうか?

  • Solr 6でフルレプリケーションを引き起こすケースはありますか?

レプリケーション後に元のインデックスディレクトリが削除され、タイムスタンプ付きディレクトリが「index」にリネームされるのでしょうか?

最初はすべてのレプリケーション活動がインデックスディレクトリ内で行われると思っていましたが、そうではないようです。

何かアドバイスや参考になるドキュメントがあれば教えてください。

ありがとうございます、
Matt

返信投稿者:ks-solruserml-bot (2024/07/18 12:03 投稿)

こちらのリンク(https://solr.apache.org/guide/6_6/index-replication.html)を再確認すると、少しずつ全体像が見えてきました。私の推測では、参照されている一時ディレクトリが index. ディレクトリだと思います。

フルレプリケーションを引き起こすケースに非常に興味があります。私の知る限り、問題のコアに対して最適化コマンドは発行されていません。

返信投稿者:ks-solruserml-bot (2024/07/18 12:03 投稿)

最適化または大規模なフラグメントマージが発生した場合のみ、大きなファイルがそこに生成されます。ですから、「スレーブ」は常にインデックスサイズの2倍の容量を確保しておくべきです。Solrはマスターでのマージや最適化のタイミングを独自に判断するため、スレーブはその2倍のサイズに対応できるように準備しておく必要があり、マスターは3倍のサイズに対応できるようにしておく必要があります。このディスク容量を確保していないと、最終的に深刻な問題に直面するか、単にレプリケーションができなくなってしまうでしょう。

-dave

返信投稿者:ks-solruserml-bot (2024/07/18 12:03 投稿)

ありがとうございます、Dave!はい、昨日この問題に直面し、ディスク容量と大きなコアサイズを見直す必要があると感じました。また、このイベントには興味深い背景がありました。マスターからレプリケーションしている2つのスレーブが別々のサーバーにあります。週末に1つのスレーブは正常にレプリケーションされ、更新が必要なファイルはごく一部でした。しかし、もう1つのスレーブでは、Solrが完全なレプリケーションが必要だと認識し、ディスクを埋め尽くしては失敗し、失敗した試みをクリーンアップして再度試みるということを繰り返していました。昨日、いくつかのSolr再起動と完全なSolrスタート/ストップの後、Solrが完全なレプリケーションを必要としないことを認識し、必要なインデックスファイルのサブセットをコピーするだけで正常に完了しました(他のスレーブと同様に)。

一時的にSolrが完全なレプリケーションを必要とする状態になっており、ストップ/スタートによってレプリケーションに実際に必要なものを再評価させたとしか説明できません。現在、両方のレプリケーションは正常です。

Matt

返信投稿者:ks-solruserml-bot (2024/07/18 12:04 投稿)

スレーブが互いに異なる動作をしたり、インデックスのバージョンがずれてしまうことを見たことがあります。通常、これは1つのスレーブとマスター間のレイテンシーが他のスレーブと異なる場合に発生します。しかし、繰り返しになりますが、スレーブには少なくともインデックスのサイズの2倍のディスク容量を確保するべきです。さらに、スレーブが同じディスク容量とメモリを持っているかどうか、またはネットワーク外のスレーブがある場合は、レプリケーションのタイムアウトを延長して、すぐ近くのサーバーと競合しないようにすることも検討してください。

全体的にこれはダンスのようなものです。例えば、問題を起こして再レプリケーションしているサーバーが途中でインデックスが変更されたために新しい一時インデックスフォルダを作成して同じプロセスを繰り返す必要があるということもあります。本当に興味深いことがたくさん起こります。

それでは、頑張ってください。経験からのもう一つのアドバイスとして、クイーン(主要なスレーブ)を1つだけ使用し、他はバックアップとして使用することをお勧めします。1つのサーバーがラウンドロビンや他のメトリックを使用してサーバーを決定するよりも、フィールドをキャッシュするのがはるかに速いです。

-Dave

返信投稿者:ks-solruserml-bot (2024/07/18 12:04 投稿)

再度ありがとう、Dave。役立つ情報です!はい、私たちは1つのスレーブをプライマリとして使用してクエリに応答し、もう1つをフェイルオーバー用にしています。SolrCloud Solr 8/9への移行を徐々に進めていますが、まだSolr 6のデプロイメントの維持に多くの作業が割かれています。このようなレプリケーションについて学ぶことは非常に価値があります。

Matt

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?