SolrCloudのリクエストで、1つのシャードにつき何個のレプリカがクエリされますか?

トピック作成者:ks-solruserml-bot (2024/09/01 21:38 投稿)
2
OpenOpen

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

これは愚問かもしれませんが、答えが見つかりません。もしかしたら、私の検索スキルが弱いのかもしれません。

SolrCloudクラスターにdebug=trueでクエリを送ると、GET_TOP_IDSのトラッキング出力中に、シャードごとにN個のレプリカのリストが表示されます。

例:

shards.url=
http://solr-node-1:8983/solr/my_collectiion_shard1_replica_1234|http://solr-node-1:8983/solr/my_collectiion_shard1_replica_5678

これは、これらすべてのレプリカがクエリされ、最初のレスポンスが集約されてレスポンスに返されることを意味するのでしょうか?それとも、正確に1つのレプリカのみがクエリされるのでしょうか?

そして

テールレイテンシー(つまり、最も遅いコアを待つ時間)を減らすために、シャードごとにリクエストされるレプリカの数を制御する方法はありますか?

よろしくお願いします。
-Doug

返信投稿者:ks-solruserml-bot (2024/09/01 21:38 投稿)

この表現は、正確に1つのレプリカにクエリが送信されることを意味しているのでしょうか?ただし、デバッグ出力はそれとは異なることを示唆しているように見えます。

Solrノードが検索リクエストを受け取ると、そのリクエストは検索されているコレクションの一部であるシャードのレプリカに裏でルーティングされます。

https://solr.apache.org/guide/8_4/distributed-requests.html

返信投稿者:ks-solruserml-bot (2024/09/01 21:39 投稿)

各シャードごとに1つのレプリカだけが特定の「ステージ」リクエストを受け取ります。

ページの下部に表示されているものは、古い(クラウド以前の)構文の例で、複数のシャードにリクエストをルーティングする際に使われていたもので、シャードのリストをカンマ(',')で区切って指定し、シャードごとのランダムなレプリカを選択するために、さらにURLのリストをパイプ('|')で区切って指定できるというものです。

基本的に、複数シャード・複数レプリカのリクエストの場合、特定のシャードリストにリクエストを送ることができ、その際には各シャードのどのレプリカURLに送るかを既に選択しているか、あるいはSolrにレプリカを選択させることができます(その場合はレプリカのURLリストを送信します)。

…これは「シャード」パラメータを意図したものですが…

この「リストのリスト」の構造は、さまざまなデバッグフォーマットで使用され、「shard.url」パラメータにも反映されており、これは個々のレプリカへのリクエストに関する質問に関連するもので、ShardsAugmenterFactory(別名:fl=[shard])をサポートするために存在していた過去の名残です。

この機能が削除された際の詳細な分析は、9.3で削除された際のJIRAにあります...

https://issues.apache.org/jira/browse/SOLR-9378

-Hoss
http://www.lucidworks.com/

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

KandaSearch

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

投稿の削除

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