【技术实现步骤摘要】
一种基于一致性哈希算法的数据存储方法及装置
[0001]本专利技术涉及服务器存储领域,特别是涉及一种基于一致性哈希算法的数据存储方法、装置、电子设备及计算机可读存储介质。
技术介绍
[0002]随着互联网的高速发展,产生的数据越来越多,海量的数据通常通过服务器集群的方式进行存储,以应对日益增加的存储需求。
[0003]目前,数据采用传统的哈希方案寻找对应的服务器进行数据存储,服务器或服务器对应的虚拟节点分布在哈希环上,通过计算待存储数据映射在哈希环的位置,确定待存储数据对应的服务器。
[0004]然而,由于服务器的存储容量不同,若服务器对应的虚拟节点的分布或数量不合理,将造成数据倾斜问题,数据存储压力集中在某一个服务器,若这个服务器出现故障,那么需要迁移的数据量巨大,同时也造成其他服务器存储资源的浪费。
技术实现思路
[0005]鉴于上述问题,提出了本专利技术实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于一致性哈希算法的数据存储方法、装置、电子设备及计算机可读存储介质。r/>[0006]第本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于一致性哈希算法的数据存储方法,其特征在于,所述方法包括:获取服务器集群中每个存储服务器的存储容量;根据每个所述存储服务器的存储容量,确定每个存储服务器对应的虚拟节点的数量,所述存储服务器的存储容量与所述虚拟节点的数量为正比例关系,每个所述虚拟节点具有对应的第一哈希值;按照每个所述存储服务器对应的虚拟节点的数量以及所述虚拟节点的第一哈希值的大小顺序,构建哈希环;在获取到待存储数据的情况下,根据由所述待存储数据计算得到的第二哈希值,在所述哈希环上确定与所述第二哈希值对应的目标虚拟节点;将所述待存储数据存储在所述目标虚拟节点对应的目标存储服务器中。2.根据权利要求1所述的方法,其特征在于,所述按照每个所述存储服务器对应的虚拟节点的数量以及所述虚拟节点的第一哈希值的大小顺序,构建哈希环,包括:按照每个所述存储服务器对应的虚拟节点的数量,对每个所述存储服务器的第一标识进行编号,将编号后的第一标识作为第一键值;各所述第一键值的取值不同;通过预设哈希算法和所述第一键值,确定与每个所述第一键值对应的第一哈希值,所述第一哈希值用于表征所述虚拟节点在所述哈希环中所对应的位置;根据所述第一哈希值,确定每个虚拟节点在所述哈希环中的位置,构建所述哈希环。3.根据权利要求1所述的方法,其特征在于,所述根据每个所述存储服务器的存储容量,确定每个存储服务器对应的虚拟节点的数量,包括:根据每个存储服务器的存储容量之间的比值,确定每个存储服务器对应的虚拟节点的数量之间的比值,所述存储容量之间的比值与所述虚拟节点的数量之间的比值相同;根据所述虚拟节点的数量之间的比值,确定每个存储服务器对应的虚拟节点的数量。4.根据权利要求1所述的方法,其特征在于,所述在获取到待存储数据的情况下,根据由所述待存储数据计算得到的第二哈希值,在所述哈希环上确定与所述第二哈希值对应的目标虚拟节点,包括:在获取到待存储数据的情况下,确定所述待存储数据的第二标识,将所述第二标识作为第二键值;通过所述第二键值和预设哈希算法确定第二哈希值;根据所述第二哈希值在所述哈希环中的映射位置,确定与所述第二哈希值对应的目标虚拟节点。5.根据权利要求4所述的方法,其特征在于,所有所述第一哈希值在所述哈希环中沿预设方向递增分布,所...
【专利技术属性】
技术研发人员:刘亚阁,
申请(专利权)人:北京奇艺世纪科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。