【发布时间】:2021-05-24 21:46:40
【问题描述】:
考虑到越来越多的数据,让我们从两个极端的选择中进行选择:
- 将所有数据均匀分布在集群中的所有节点
- 我们将它们打包到尽可能少个节点
我更喜欢方案一,因为随着数据量的增长,我们可以把它分散到所有节点上,这样每个节点在查询的时候负载最低。
但是,一些资源表明我们不应该查询所有节点,因为这会减慢查询速度。为什么会减慢查询速度?这不就是普通的分散和聚集吗?他们甚至声称这会损害线性可扩展性,因为添加更多节点会进一步拖累查询。 (也许我错过了 Cassandra 如何执行查询的信息,欢迎提供一些背景参考)。
相反,一些资源表明我们应该使用选项 2,因为它查询的节点数量最少。
当然这里没有非黑即白的选择;一切都必须权衡取舍。
我想知道,选项 1 和选项 2 之间的真正区别是什么。另外,关于网络查询,为什么选项 1 会很慢。
【问题讨论】:
-
我建议阅读本书的前几章以了解 Cassandra 的工作原理以及如何为其建模表结构:datastax.com/resources/ebook/oreilly-cassandra-definitive-guide