Cassandra 不均匀分区和热点

Posted

技术标签:

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

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

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

例如:

    我有两个分区:A 和 B。 A 大小为 10,B 大小为 5。 读取完整 A 分区的次数是读取 B 的两倍。 具有三个(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 自动执行此操作?

【问题讨论】:

看这里以更好地理解:***.com/questions/25615978/… 【参考方案1】:

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

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

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

【讨论】:

以上是关于Cassandra 不均匀分区和热点的主要内容,如果未能解决你的问题,请参考以下文章

Cassandra 不使用本机方法

「时序数据库」Cassandra时间序列大规模数据建模

cassandra安装配置

cassandra集群缩容与剔除问题节点

cassandra 查询超时

Cassandra是否已经为大型项目的生产环境做好了准备和成熟的准备? [关闭]