サーバーレベルでsoftcommitが設定されている場合のコミット動作

トピック作成者:ks-solruserml-bot (2024/07/02 11:56 投稿)
1
CloseClose

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

皆さんへ、

現在、私たちのサーバーは30秒ごとにソフトコミットを行うように設定されています。

もし一度に多くのドキュメントを送信することになる場合、"commitWithin" をより長い時間に設定した場合、そのドキュメントの追加/置換リクエストに対して、ソフトコミット設定が上書きされるのでしょうか?それともソフトコミット設定はそのままソフトコミットを行うのでしょうか?

私は、ドキュメントがすべて同じ場所に送信されるため、グローバルなソフトコミットが単に実行されると仮定しています。

私たちがSolrをオンラインインデックスとして使用していることを考えると(つまり、比較的大きなインデックスに対して常に小数のドキュメントを追加している)、以下の方が理にかなっていると思われますか?

  1. グローバルなソフトコミットを無効にする
  2. "ドキュメントの追加" 操作を常に commitWithin=30s に変更する

上記のステップ1-2を行うことで、多くのドキュメントを追加することがわかっているプロセスに対してより制御を得ることができ、インデックス作成の操作を高速化できるように思われます。また、すべての単一のドキュメントを追加後にコミットすることなく、比較的最新の検索可能なインデックスを確保することも保証されます(これはパフォーマンスに悪影響を与える悪い実践とされています)。

私たちは現在Solr 7.7を使用していますが、その違いが重要であれば、例えば commitWithin が8.x以降で必要とされる場合など、その点についても教えてください。

よろしくお願いします。
Chris

返信投稿者:ks-solruserml-bot (2024/07/02 11:56 投稿)

30秒は非常に積極的ですね。1秒よりは遥かに良いですが、それでもかなり頻繁です。

すべてのコミットタイマーは尊重されます。たとえば、30秒でautoSoftCommitを設定し、60秒でcommitWithinを設定してドキュメントをインデックスした場合、インデックス作成が開始されてから30秒後にautoSoftCommitが実行され、さらに60秒後にcommitWithinが実行されます。30秒から60秒の間に変更がない場合、commitWithinは効果がない操作になります。

もしインデックスリクエストが常に commitWithin(または commit=true)を持つ場合、autoSoftCommitは余分な操作になります。

私なら、autoSoftCommitを2から5分に設定して、コミットオプションが指定されていない更新をキャッチし、すべての更新が何らかのコミットを指定するようにします。その設定では、autoSoftCommitはおそらく常に効果がない操作になるでしょう。

前述の通り、30秒は非常に積極的です。インデックスサイズが非常に小さい場合を除いては、より大きな間隔を考慮した方が良いです。

ちなみに、commitWithinは通常、ソフトコミットとして実行されます。

ありがとうございます。
Shawn

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

KandaSearch

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

投稿の削除

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