数据分区——数据密集型应用系统设计读书笔记(2)

与分区相关的概念

分区的其它名字:shard,region,tablet,vnode,vBucket等。
定义:每一条数据(记录、每行或每个文档)只属于某个特定分区。分区可视为一个小型但完整的数据库。
目的:提高可拓展性,实现负载均衡。
历史:最初在20世纪80年代由Teradata和Tandem NonStop SQL等率先提出。目前被一些NoSQL数据库和基于Hadoop的数据仓库所重视(这就是说,分区适用于OLTP和OLAP)。
与数据复制的区别:数据复制指一个分区存在多个副本。这意味着一条记录属于唯一的特定分区,但同时保存在多个节点上以提高容错性。
倾斜:某些分区的数据量或查询负载大于其他分区。
系统热点:负载过大的分区称为系统热点。

设置分区的方法

基于关键字区间分区:依据数据的分布特征设置合适的关键字区间。
好处:便于区间查询。
缺点:导致热点。

基于关键字哈希值分区:利用哈希函数的特性使得数据均匀分布。
分区边界的选择:均匀间隔,伪随机选择(有时称为一致性哈希)。
一致性哈希:由Karger等人提出,最初用于CDN等互联网缓存系统。通过随机选择的分区边界来规避中央控制或分布式共识。此处的一致性指数据的均匀分布。由于实际效果不太好而较少使用。
缺点:丧失了良好的区间查询特性。
解决热点的简单方法:在关键字的开头或结尾处加一个随机数。缺点是增加了读取的复杂度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值