DDIA阅读笔记ch6分区

1.分区和复制

复制是指把相同的数据冗余多份,是一种保障;分区是指一份数据很大大家一起保存,有一点像是连城诀里的师兄弟三人一起保存剑谱。

2.分区方法

如果是随机分区虽然存储上是容易了,但是检查的时候需要搜索所有节点,事实上是把压力给到了查询,可以使用关键字哈希分区的方法。

使用关键字哈希类似从a到z区分的多本百科全书、或者史记资治通鉴这些按照年代分类的书籍,比如第二本是900-1000年,如果我们要查961年的事情,就在这本书里去查。

关键字哈希一定程度上解决了负载均衡的问题,但是如果数据本身是倾斜的,比如我们的所有数据都是关于万历十五年的事情,那如果要查某一件具体的事情我们就只能在这本书里一点一点全部去查。

针对这种数据本身的倾斜的一种解决方法是可以在数据前面加上伪随机数来区分,仍然是好处是能分区了缺点是要查所有这些分区。

3.分区数量

分区数量和节点数量如果是一一对应的有一个缺点,即节点的增加和删除,都可能改变key的映射,导致要迁移过多的数据,这也是一致性哈希解决的问题即尽量减少改变key的映射。

可以采用固定数量的分区,这样一旦key确定了,分区确定了就不会改变映射关系,难点是分区数量的选择,好处是一个节点可以对应多个分区,在节点上下线的过程中迁移的数据少。

相关推荐
做cv的小昊3 分钟前
【TJU】应用统计学——第一周作业(1.1 数理统计的基本内容、1.2 数理统计的基本概念)
人工智能·笔记·考研·机器学习·数学建模·概率论
sinat_2554878122 分钟前
数组·学习笔记
java·javascript·笔记
zhangrelay40 分钟前
复盘《用智能大模型复盘课程博客停更案例》
笔记·学习
summer10840 分钟前
【读书笔记】蛤蟆先生去看心理医生:洞察自我
笔记·产品经理
阿Y加油吧1 小时前
堆 / 优先队列专题二刷笔记:前 K 个高频元素 & 数据流的中位数
java·笔记·算法
Codector1 小时前
在Ubuntu中使用Edge侧边栏无法添加和查看同步的侧边栏问题解决
笔记·ubuntu·develop
Brilliantwxx1 小时前
【C++】认识标准库STL(1)
开发语言·c++·笔记·程序人生·算法
想成为优秀工程师的爸爸1 小时前
第二十四篇技术笔记:郭大侠学DoIP - 从“偶睡破庙”到“天字一号”
网络·笔记·网络协议·tcp/ip·信息与通信
天才少女爱迪生1 小时前
【迪士尼机器人】硬件接入记录(自用笔记版)
笔记
Nice_Fold2 小时前
Kubernetes命名空间与Pod核心概念(自用笔记)
笔记·容器·kubernetes