数据分布算法

Round Robin、虚拟桶、一致性hash

Round Robin:

Round Robin 是指轮询调度算法。算法首先对存储节点进行0到n-1编号,然后对数据的key值做hash后再对存储节点取模,得到的结果即为存储节点的编号。在key值比较分散的情况下,均匀性可以得到和好的保证,但如果存储节点变更,那么原来的所有节点都会受到影响。

虚拟桶:

虚拟桶算法是在存储记录和物理存储节点之间引入了一个虚拟桶层,所有的记录先通过hash函数映射到对应的虚拟桶上,虚拟桶再通过查表的方式映射到实际的物理存储节点上。即算法分为两层映射,分别是记录到虚拟桶和虚拟桶到物理存储节点的映射。映射关系为多对一,一个虚拟桶中包含多条记录,一个物理存储节点包含多个虚拟桶。

与Round Robin算法相比,虚拟桶将原来的由记录到物理节点的单层映射解耦成两级映射,提高了系统的可扩展性,当粗出节点变更的时候,只需要修改虚拟桶鞥到物理节点的映射表中受影响的条目即可;

 

一致性hash

     一致性hash算法被广泛地应用在分布式系统中,该算法将hash值空间组织成了一个首位相连的虚拟圆环。并使用hash函数将物理存储节点映射到这个虚拟圆环之上。再存储数据时,数据对应key值在经过hash函数计算后得到hash环上的某个值,然后从这个值开始沿hash环的顺时针方向寻找,找到的第一个物理存储节点就是该数据的将要写入的存储节点。

     如下图:hash空间被虚拟成一个环,圆环上的字母表示经过hash函数映射后物理存储节点在hash环上的位置,经过一致性hash算法后key1数据将存储到物理节点B上,key2数据将存储到物理节点D上。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值