いただきありがとうございます。各ノードにはセカンダリインデックスがありますが、そのノードの値のみです。セカンダリインデックスにすべてのノードのすべてのレコードが含まれているわけではありません。したがって、検索したい発信者はすべてのノードに送信する必要があります。
わずか2ノード
ノード1は(2、A)(3、B)
ノード2は(100、A)(105、C)
を有する(A、1)を有していると例:
ノード1には、プライマリインデックス1,2,3があります。二次インデックスa、a、b
ノード2にはプライマリインデックス100,105があります。そして二次索引a、c
「c」を検索したい呼び出し者は、2つの2次索引を検索するために両方のノードにブロードキャストする必要があります。
しかし、セカンダリインデックスa、a、b、cの完全なコピーを保持していれば、そのインデックスを照会してターゲットノードに直接行くことができます。しかし、実際にはこれが予想以上に多くの合併症を伴います。
編集日:6月22日。 3番目のノードでセカンダリインデックスを維持しようとすると、次のような問題が発生します。
2つまたは3つのノードが含まれるようになりました。したがって、ある種の2フェーズコミットプロトコルまたは代替スキームを実装する必要があります。
ノードが多いほど、MTBFが低いほど全体的な信頼性が低下することがあります。
ネットワークパーティショニングで何が起こるかを検討する必要があります。
メンテナンス操作がより困難になることがあります。たとえば、あまりにも多くのネットワークトラフィックを生成せずに、インデックスを効果的に検証する方法は正しいですか。
更新プログラムはどのようにインデックスノードを編集しますか?クライアントはこれに責任がありますか、またはメインストレージノードはインデックスノードを更新しますか?
の詳細を学ぶのに適した場所は、2相に見て、CAP定理を確認スキームをコミットし、潜在的に分散システムのジャーナルに掲載されたIEEE論文の一部を見ることです。
出典
2017-06-06 12:14:12
rlb
あなたの答えをありがとう。私はあなたの答えの最後にそれらの合併症を正確に理解するために探しています –
ありがとう追加情報 –