Cassandra 中如何选择分区读取

How partition read is chosen in Cassandra

我有 3 个节点,分区数据分布在 3 个节点上,

当我使用如下分区键查找端点时,

./nodetool getendpoints keyspacename tablename partitionkeyvalue
172.30.56.63
172.30.56.62
172.30.56.61

我还可以从 ./nodetool ring 中看到,不同的分区使用虚拟节点从 -2 的 63 次方到 +2 的 63 次方分布

我还能够看到查询的主机(使用响应对象)它使用令牌感知策略来选择协调器节点

假设分区包含 10 亿个条目,RF = 3。单个分区内的数据是否会跨节点分布?或者单个 cassandra 节点将拥有完整的分区数据,而其他两个节点将拥有它的完整副本?

单个分区始终位于单个节点上,副本位于其他节点上。这就是为什么对分区的最大大小有建议:2.0 及以下版本为 ~100Mb,或更高版本为数百 MB。分区内的单元格数量将取决于值的平均大小等。-在 DS220 数据建模课程中,有一组单独的物理模型讲座。