Cassandra不均匀的分区和热点

时间:2015-04-21 12:24:22

标签: cassandra

我对卡桑德拉的分区分布存在疑问。

我的问题是我的分区大小不均匀,有些分区比其他分区更容易访问,所以我担心迟早会在某些分区中出现热点。< / p>

例如:

  1. 我有两个分区:A和B.
  2. A的大小为10,B的大小为5.
  3. 阅读完整的A分区两次,我读了B.
  4. 有三个(1,2和3)节点,复制因子为2。
  5. 结果:

    • 节点1(A)节点2(B,A)节点3(B)
    • 节点1大小为10,读取为1.0
    • 节点2大小为15,读取为1.5
    • 节点3大小为5,读为0.5

    我的节点1和2过载了。

    我开始研究我的问题,我发现了虚拟节点的概念,但我对它的实际含义并不太确定。

    是否会将单个分区键分配给不同的虚拟节点(1个分区键 - > n个令牌范围)?

    一个分区密钥只能存储在虚拟节点中吗?

    我必须对我的键进行分区,添加一些分区信息(比如随机的%10或其他东西),或者有一种让Cassandra自动完成的方法吗?

1 个答案:

答案 0 :(得分:2)

  

是否会将单个分区键分配给不同的虚拟节点(1>分区键 - > n个令牌范围)?

没有。每个分区键将只映射到一个虚拟节点及其副本。

为避免热点,将分片键(随机数%n)添加到分区键非常有用。否则,请尝试选择分区键,使其不会导致热点。