【发布时间】: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 自动执行此操作?
【问题讨论】:
-
看这里以更好地理解:stackoverflow.com/questions/25615978/…
标签: cassandra