1

Solandra を使い始めたばかりで、Solandra シャーディングの第 2 レベルの詳細を理解しようとしていました。

AFAIK Soalndra は、各シャードが最大「solandra.maximum.docs.per.shard」のサイズである (「solandra.shards.at.once」プロパティとして) 構成された多数のシャードを作成します。

次のレベルでは、「solandra.maximum.docs.per.shard」/「solandra.index.id.reserve.size」で定義される各シャード内にスロットの作成を開始します。

SchemaInfo CF のデータモデルから、特定のシャード内に異なる物理ノードが所有するスロットがあり、これらのスロットを取得するためにノード間で競合が発生していることがわかりました。

私の質問は次のとおりです。

  1. これは、特定のsolrノードで書き込みを要求した場合を意味しますか. ....solandra/abc/dataimport?command=full-importこのリクエストは可能なすべてのノードなどに分散されますか?これは分散書き込みですか? それが起こるまで、他のノードは特定のシャード内のスロットをどのように競合するのでしょうか.理想的には、ドキュメントまたはドキュメントのセットを作成するためのコードは、単一の物理 JVM で実行されます。

  2. シャーディングによって、単一の物理ノードにいくつかのドキュメントを書き込もうとしましたが、異なる物理ノードが所有するスロットに基づいて書き込んでいる場合、異なるノードから結果を取得する必要があるため、実際には何を達成したでしょうか。書き込みスループットが最大化されていることがわかりました。

  3. これらの数値の調整を検討できますか? 「solandra.maximum.docs.per.shard」、「solandra.index.id.reserve.size","solandra.shards.at.once」。

  4. 単一の DC 6 ノード セットアップでシャードが 1 つだけでレプリケーション ファクターが 5 の場合、このシャードのエンドポイントにはレプリケーション ファクターに従って 5 つのエンドポイントが含まれていることがわかりました。左の 6 番目のノードが実際にはデータを取得していないことを nodetool で確認しました。クラスターをオンにしたままレプリケーション ファクターを 6 に増やすと、問題は解決し、修復などが行われますか、それとももっと良い方法があります。

4

1 に答える 1

0

全体として、shards.at.onceパラメーターは、索引付けの並列処理を制御するために使用されます。その数が大きいほど、一度に書き込まれるシャードの数が多くなります。これを1に設定すると、常に1つのシャードにのみ書き込むことになります。通常、これは20%>クラスター内のノード数に設定する必要があります。したがって、4ノードクラスターの場合は5に設定します。

リザーブサイズが大きいほど、ノード間の調整は少なくて済みます。ですから、書くべき文書がたくさんあることがわかっているなら、これを上げてください。

docs.per.shardが高いほど、特定のシャードに対するクエリは遅くなります。一般に、これは最大1〜5Mである必要があります。

あなたのポイントに答えるために:

  1. これは、1つのノードからのみインポートされます。ただし、シャードに応じて一度に多くのインデックスを作成します。

  2. 問題は、すべてのノードにまたがって書くべきかということだと思います。はい。

  3. はい、上記を参照してください。

  4. shards.at.onceを増やすと、これはすぐに入力されます

于 2012-01-04T14:22:16.173 に答える