数据分片方式之哈希和一致性哈希介绍

本文介绍了数据分片的哈希和一致性哈希方法,包括数据分布设计原则,如数据均匀、稳定性和节点异构性。哈希简单但稳定性较差,一致性哈希则通过两步哈希提高稳定性,但可能造成负载不均。文章还讨论了一致性哈希的两种变体:带有限负载和带虚拟节点的一致性哈希,以解决负载和异构性问题。
摘要由CSDN通过智能技术生成

数据分片方式脑图

数据分布设计原则

在分布式数据存储系统中,存储方案选型时,通常会考虑数据均匀、数据稳定和节点异构性这三个维度。

数据均匀

每个节点存储的数据相差不太大即可

数据稳定

当存储节点出现故障需要移除或者扩增时,数据按照分布规则得到的结果应该尽量保持稳定,不要出现大范围的数据迁移。

数据稳定,就是尽可能只迁移移除节点上的数据到其他节点上,而不需要对大范围或所有数据进行迁移存储。当然,如果有扩展同类型节点,也是尽可能小范围迁移数据到扩展的节点上。具体的迁移方法,可以采用下文介绍的一致性哈希方法。

节点异构性

不同存储节点的硬件配置可能差别很大。比如,有的节点硬件配

置很高,可以存储大量数据,也可以承受更多的请求;但,有的节点硬件配置就不怎么样,

存储的数据量不能过多,用户访问也不能过多。

如果这种差别很大的节点,分到的数据量、用户访问量都差不多,本质就是一种不均衡。所

以,一个好的数据分布算法应该考虑节点异构性

隔离故障域

是为了保证数据的可用和可靠性。比如,我们通常通过备份来实现数据的可靠性。但如果每个数据及它的备份,被分布到了同一块硬盘或节点上,就有点违背备份的初衷了。所以,一个好的数据分布算法,应该为每个数据映射一组存储节点,这些节点应该尽量在不同的故障域,比如不同机房、不同机架等。

性能稳定性

是指,数据存储和查询的效率要有保证,不能因为节点的添加或者移除,造成存

储或访问性能的严重下降。

 

了解了数据分布的设计原则后,接下来我们再看看主流的数据分布式方法,哈希和一致性哈

希吧。其中,哈希和一致性哈希是数据分布的基础方法,在不同场景下,数据分布设计的原

则需要考虑的维度也不一样。随着维度的增加,一致性哈希又可进一步演进为带有限负载的

一致性哈希和带虚拟节点的一致性哈希方法。

 

数据分布方法

哈希是指,将数据按照提前规定好的函数(哈希函数)映射到相应的存储节点,即进行一个

哈希计算,得到的结果就是数据应该存储的节点。

一致性哈希同样是采用哈希函数,进行两步哈希:1. 对存储节点进行哈希计算&#x

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值