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 不均匀分区和热点的主要内容,如果未能解决你的问题,请参考以下文章