数据的分片和路由
2024-01-01 18:34:18
之前我们讲解了数据的复制,也就是说让多台机器保留相同的副本,适合用于读多写少的问题,我们这里讲的是数据的分片,分片的目的是将数据进行切分让他们分布到不同的机器上,其中一个动机是数据可能很大如果单纯存放到一个机器的话,可能一个机器存不下,或者多台机器协同工作,地理位置分布不同,需要读取的数据也不同,我们也可以把他们想要的数据存在离他们比较近的地理位置上。
- 分片通常结合复制来使用
- 分片是不公平的,这种情况叫做数据的偏斜
- 负载比较高的地方叫做热点
范围分片
所有的数据都是以(k,v)的形式存放的,将所有含有记录的主键进行排序,按照范围划分不同的分片最后存放在不同的机器上。 数据的管理采用LSM树。
好处 | 缺点 |
---|---|
扫描比较方便甚至可以建立联合索引之类的 | 特定的访问模式会导致热点 |
哈希分片
减少偏斜和热点的影响,当然是设计一个好的哈希函数。
哈希分片的方式
R:实现简单,但是灵活性比较低
为了解决R的问题 引入了虚拟桶这个东西。
可扩展哈希在我之前的博客写过了,这里不再赘述。
文章来源:https://blog.csdn.net/qq_62260432/article/details/135326439
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!