数据的分片和路由

发布时间:2024年01月01日

之前我们讲解了数据的复制,也就是说让多台机器保留相同的副本,适合用于读多写少的问题,我们这里讲的是数据的分片,分片的目的是将数据进行切分让他们分布到不同的机器上,其中一个动机是数据可能很大如果单纯存放到一个机器的话,可能一个机器存不下,或者多台机器协同工作,地理位置分布不同,需要读取的数据也不同,我们也可以把他们想要的数据存在离他们比较近的地理位置上。

在这里插入图片描述

  • 分片通常结合复制来使用
  • 分片是不公平的,这种情况叫做数据的偏斜
  • 负载比较高的地方叫做热点

范围分片

所有的数据都是以(k,v)的形式存放的,将所有含有记录的主键进行排序,按照范围划分不同的分片最后存放在不同的机器上。 数据的管理采用LSM树。

好处缺点
扫描比较方便甚至可以建立联合索引之类的特定的访问模式会导致热点

哈希分片

减少偏斜和热点的影响,当然是设计一个好的哈希函数。
哈希分片的方式

R:实现简单,但是灵活性比较低
为了解决R的问题 引入了虚拟桶这个东西。
可扩展哈希在我之前的博客写过了,这里不再赘述。 在这里插入图片描述

哈希分片
Round Robin
虚拟桶
一致性哈希
文章来源:https://blog.csdn.net/qq_62260432/article/details/135326439
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。