DDIA阅读笔记ch6分区

1.分区和复制

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

2.分区方法

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

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

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

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

3.分区数量

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

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

相关推荐
John_ToDebug10 小时前
死锁案例:UI 线程阻塞等待跨进程 COM 注入
c++·windows·笔记
_饭团11 小时前
指针核心知识:5篇系统梳理2
c语言·笔记·学习·leetcode·面试·改行学it
WangJunXiang611 小时前
Nginx性能优化与监控笔记
笔记·nginx·性能优化
四谎真好看11 小时前
Redis学习笔记(实战篇2)
redis·笔记·学习·学习笔记
北岛寒沫11 小时前
北京大学国家发展研究员 中国经济专题 课程笔记(第二课 农村土地改革)
经验分享·笔记·学习
Piccab0o11 小时前
【学习笔记】——电磁相关
笔记·学习
WangJunXiang612 小时前
nginx安全笔记
笔记·nginx·安全
不只会拍照的程序猿12 小时前
《嵌入式AI筑基笔记02:Python数据类型02,从C的“硬核”到Python的“包容”》
开发语言·笔记·python
早睡早起好好code12 小时前
Qwen2.5-VL研究_待完善...
图像处理·人工智能·笔记·深度学习·学习
_muffinman13 小时前
LED点阵8*8驱动开发笔记(Ai8051U单片机)
驱动开发·笔记·单片机