我一直在阅读有关 MongoDB 和 Cassandra 的信息。MongoDB 是主/从,而 Cassandra 是无主的(所有节点都是平等的)。我的疑问是数据如何存储在这两者中。
假设一个用户正在向 MongoDB(一个具有主控和不同从属的集群,每个集群都在一个单独的机器上)写一个请求。这意味着主设备将决定(或通过某些应用程序实现)将此更新写入哪个从设备。也就是说,MongoDB 中的所有节点都不会提供相同的数据。每个节点的大小可能会有所不同。我对吗 ?此外,当被查询时,master 是否知道该请求应该发送到哪个节点?
在 cassandra 的情况下,相同的数据将被写入所有节点,即)如果一个节点大小为 10GB,则其他节点大小也是 10GB。因为如果只有这样的话,那么当一个节点发生故障时,用户在另一个节点查询不会丢失任何数据。我在这里吗?如果我是对的,所有节点都可以使用相同的数据,那么在 Cassandra 中使用 map/reduce 函数有什么好处?如果我错了,那么在 Cassandra 中如何维护可用性,因为相同的数据在另一个节点中不可用?
我在 stackoverflow 中搜索有关 MongoDB 与 cassandra 的内容,并阅读了大约 10 篇帖子,但我的问题无法通过这些帖子中的答案得到解决。请消除我的疑虑,如果我假设错误,也请纠正我。