私はMongoDBとCassandraについて読んでいます。MongoDBはマスター/スレーブですが、Cassandraはマスターレスです(すべてのノードが等しい)。私の疑問は、データがこれらの両方にどのように保存されるかについてです。
ユーザーがMongoDB(マスターと異なるスレーブがそれぞれ別々のマシンにあるクラスター)にリクエストを書き込んでいるとしましょう。これは、マスターが(またはアプリケーションの実装を通じて)この更新を書き込むスレーブを決定することを意味します。つまり、MongoDBのすべてのノードで同じデータを使用できるわけではありません。各ノードサイズは異なる場合があります。私は正しいですか?また、照会すると、マスターはこの要求をどのノードに送信する必要があるかを認識しますか?
cassandraの場合、同じデータがすべてのノードに書き込まれます。つまり、1つのノードサイズが10GBの場合、他のノードサイズも10GBになります。これだけの場合、1つのノードに障害が発生しても、ユーザーは別のノードでクエリを実行してもデータを失うことはありません。私はここにいますか?私が正しければ、すべてのノードで同じデータを利用できます。それでは、Cassandraでmap / reduce関数を使用する利点は何ですか?私が間違っている場合、同じデータが他のノードで利用できないため、Cassandraで可用性がどのように維持されますか?
私はMongoDBとcassandraについてstackoverflowで検索していて、約10の投稿を読みましたが、それらの投稿の回答では質問をクリアできませんでした。私の疑問を解消してください。私が間違って想定していた場合は、私も訂正してください。