【问题标题】:Cassandra uneven partitions and hotspotsCassandra 不均匀分区和热点
【发布时间】:2015-04-21 12:24:21
【问题描述】:

我对 Cassandra 中的分区分布有一个疑问。

我的问题是我的分区不是大小均匀的,而且有些分区的访问量比其他分区多,所以我怕我迟早会在某些分区出现热点。

例如:

  1. 我有两个分区:A 和 B。
  2. A 大小为 10,B 大小为 5。
  3. 读取完整 A 分区的次数是读取 B 的两倍。
  4. 具有三个(1、2 和 3)节点,复制因子为 2。

结果:

  • 节点 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 自动执行此操作?

【问题讨论】:

标签: cassandra


【解决方案1】:

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

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

为避免热点,在分区键中添加一个分片键(随机数 %n)很有用。否则,请尝试选择您的分区键,使其不会导致热点。

【讨论】:

    猜你喜欢
    • 2011-07-16
    • 2013-08-05
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多