负载倾斜会导致所有负载都集中在一个分区节点上,这种负载严重不成比例的分区即称为系统热点。

应用层解决

即使通过基于关键字哈希值分区基于关键字区间分区等策略解决了大部分热点问题,但是极端情况下依然会出现热点,比如社交媒体的热点时间都会导致热点,只能通过应用层解决,一个简单的技术:

  • 关键字开头或结尾添加一个随机数,两位随机数就可以将关键字的写操作分布到 100 个不同的分区上;
  • 读取就必须从所有的 1000 个关键字中读取数据然后进行合并;
  • 通过额外的元数据标记哪些关键字进行了特殊处理。

由于对读取造成的额外开销,所以通常只有对少量的热点关键词附加随机数才有意义。