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 のデータモデルから、特定のシャード内に異なる物理ノードが所有するスロットがあり、これらのスロットを取得するためにノード間で競合が発生していることがわかりました。
私の質問は次のとおりです。
これは、特定のsolrノードで書き込みを要求した場合を意味しますか.
....solandra/abc/dataimport?command=full-importこのリクエストは可能なすべてのノードなどに分散されますか?これは分散書き込みですか? それが起こるまで、他のノードは特定のシャード内のスロットをどのように競合するのでしょうか.理想的には、ドキュメントまたはドキュメントのセットを作成するためのコードは、単一の物理 JVM で実行されます。シャーディングによって、単一の物理ノードにいくつかのドキュメントを書き込もうとしましたが、異なる物理ノードが所有するスロットに基づいて書き込んでいる場合、異なるノードから結果を取得する必要があるため、実際には何を達成したでしょうか。書き込みスループットが最大化されていることがわかりました。
これらの数値の調整を検討できますか? 「
solandra.maximum.docs.per.shard」、「solandra.index.id.reserve.size","solandra.shards.at.once」。単一の DC 6 ノード セットアップでシャードが 1 つだけでレプリケーション ファクターが 5 の場合、このシャードのエンドポイントにはレプリケーション ファクターに従って 5 つのエンドポイントが含まれていることがわかりました。左の 6 番目のノードが実際にはデータを取得していないことを nodetool で確認しました。クラスターをオンにしたままレプリケーション ファクターを 6 に増やすと、問題は解決し、修復などが行われますか、それとももっと良い方法があります。