一种基于数据服务器集群实现数据拆分的方法及系统技术方案

技术编号:14146027 阅读:58 留言:0更新日期:2016-12-11 02:15
本发明专利技术实施例提供一种基于数据服务器集群实现数据拆分的方法及系统,该数据服务器集群中的数据服务器节点呈树状层级分布,所述方法包括:当某层级的某一数据服务器节点出现访问量高于设定的访问量阈值时,于所述数据服务器节点下添加预设取值范围内取值为索引的子数据服务器节点,作为该数据服务器节点的下一层级;将所述数据服务器节点存储的数据拆分到新增加的下一层级的子数据服务器节点中进行存储。上述技术方案具有如下有益效果:通过树的层级扩展能力将单点数据服务器进行进一步的拆分扩展,满足了出现访问量过高的数据服务器的拆分扩展需要,相对于一致性Hash算法实现拆分的数据集群整体来说,无需整体迁移数据。

【技术实现步骤摘要】

本专利技术涉及互联网
,尤其涉及一种基于数据服务器集群实现数据拆分的方法及系统
技术介绍
随着业务发展,互联网数据流量会逐年增加。现有技术常通过集群横向扩展来提高后端数据服务的承载能力。常见的前端负载均衡只是简单的“随机”发放。而后端的数据服务器需要进行横向纵向拆分以此缓解单机服务器负载。出于数据一致性的要求对数据服务器集群的数据变更操作是不能“随机”分配,对于数据查找要有一一对应的映射。主要原因是对于更新如果要做到一致性必须保证更新操作是在一个顺序的单线程的情况下进行。只有如此才能保证在:多线程、多进程,多核CPU,多服务、多服务器的环境下更新的数据能够得到正确的结果。所以每条数据在一个集群内只能在一个唯一的线程上做更新操作。数据服务器的操作主要有:增加数据、更新数据、删除数据、查询数据。其中增加、更新、删除都是需要单线程顺序执行的。所以拆分数据服务器的时候是将数据进行加工运算,通过算法计算结果判断当前数据存储在哪个服务器内。理想情况下使用算法可以将数据平均的分配到同组服务器内,如群组内有三台服务器9000条数据,那么每台服务器通过算法会分配每台服务器有3000条数据左右,然而事实上是很多情况下无法保证这个分配是均衡的。很有可能是1000,2000,6000.主要是因为数据参考字段本身就不是均衡导致的。当然数据拆分还有其他方式,比如按日期、按其他维度进行划分,实际规则大同小异,这里将不再叙述。目前业内最常见的数据分配算法是一致性Hash(哈希)算法,他是利用一个有限数值集合。取值范围是0~2的32次方,如果这个集合内有10台服务器,那么就将这个集合按取值范围分成10个节点。当将一个数据某字段作为参考字段,如使用户的id作为原始参考字段对他进行Hash将其转换成一个整数。通过这个整数的值的大小找出此数据在那个服务器的管辖范围内,获取这个对应的服务器的连接将数据写入,理论上这个算法实现了请求映射和数据均等分配的全部功能。但是这个算法是有很多缺点,当服务器的个数产生变化,会导致每台服务器都会有一部分映射的数据需要迁移到临近的服务器上,这个过程极端情况下,需要遍历每台机器的数据重新计算数据的所属,如果数据量很大,几个小时都做不完。在此期间数据服务只能停机才能保证数据的一致性,停机对于互联网公司来说是不可接受的。这个映射方式对于扩展过于僵硬。当然也有其他方案,比如使用手工配置记录每个服务器的数据取值范围,通过手动划分取值范围来迁移部分数据,但是此法过于繁琐,容易出错。
技术实现思路
本专利技术实施例提供一种基于数据服务器集群实现数据拆分的方法及系统,以通过树的层级扩展能力将单点数据服务器进行进一步的拆分扩展,满足出现访问量高于设定的访问量阈值的数据服务器的拆分扩展需要。一方面,本专利技术实施例提供了一种基于数据服务器集群实现数据拆分的方法,该数据服务器集群中的数据服务器节点呈树状层级分布,所述方法包括:当某层级的某一数据服务器节点出现访问量高于设定的访问量阈值时,于所述数据服务器节点下添加预设取值范围内取值为索引的子数据服务器节点,作为该数据服务器节点的下一层级;将所述数据服务器节点存储的数据拆分到新增加的下一层级的子数据服务器节点中进行存储。另一方面,本专利技术实施例提供了一种基于数据服务器集群实现数据拆分的系统,该数据服务器集群中的数据服务器节点呈树状层级分布,当某层级的某一数据服务器节点出现访问量高于设定的访问量阈值时,于所述数据服务器节点下添加预设取值范围内取值为索引的子数据服务器节点,作为该数据服务器节点的下一层级;将所述数据服务器节点存储的数据拆分到新增加的下一层级的子数据服务器节点中进行存储。上述技术方案具有如下有益效果:通过树的层级扩展能力将单点数据服务器进行进一步的拆分扩展,满足了出现访问量过高的数据服务器的拆分扩展需要,相对于一致性Hash算法实现拆分的数据集群整体来说,无需整体迁移数据。数据服务器拆分只需增加树的层级即可将单台热点数据服务器拆分成多台数据服务器,如果多台数据服务器仍旧有个别热点,还可以对此热点数据服务器进一步拆分,此方法迁移数据量少,迁移速度快,迁移方式十分简单,使用主从同步即可完成数据迁移无需停机维护。影响小,同层级节点某个数据服务器的拆分对于同级数据服务器没有任何影响。一般四层(10^4=10000个节点)的Radix树可以满足目前所有行业的扩展需要。运算速度快,如果拆分参考字段使用的是数值,会比Hash计算快很多。无需数据方向代理,同Hash算法一样,仅需同步客户端数据配置,即可完成数据负载均衡路由功能。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例一种基于数据服务器集群实现数据拆分的方法流程图;图2为本专利技术实施例一种基于数据服务器集群实现数据拆分的系统结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,为本专利技术实施例一种基于数据服务器集群实现数据拆分的方法流程图,该数据服务器集群中的数据服务器节点呈树状层级分布,所述方法包括:101、当某层级的某一数据服务器节点出现访问量高于设定的访问量阈值时,于所述数据服务器节点下添加预设取值范围内取值为索引的子数据服务器节点,作为该数据服务器节点的下一层级;102、将所述数据服务器节点存储的数据拆分到新增加的下一层级的子数据服务器节点中进行存储。优选地,所述数据服务器集群中的数据服务器节点呈基数树Radix结构分布,或呈字典树Trie结构分布。优选地,所述预设取值范围为如下之一:0-9,a-z,A-Z,ASCII值范围。取值范围说明,目前单子节ASCII码可见值为0~255,适宜计算机作为标识的字符为0~9,A~Z,a~z,大小写“a”、“A”是不同的,具体的索引取值范围取决于拆分数据的参考字段,如果是数值则为0~9,若为字符串则为a~z,A~Z。优选地,所述将所述数据服务器节点存储的数据拆分到新增加的下一层级的子数据服务器节点中进行存储,包括:利用最大匹配算法,将所述数据服务器节点存储的数据拆分到新增加的下一层级的子数据服务器节点中进行存储。优选地,所述方法还包括:将数据拆分后的最大匹配路径反馈给用户,以便用户通过所述最大匹配路径找到对应的数据服务器配置,从而利用该数据服务器配置找到对应的数据服务器获取数据。对应于上述方法实施例,如图2所示,为本专利技术实施例一种基于数据服务器集群实现数据拆分的系统结构示意图,该数据服务器集群中的数据服务器节点呈树状层级分布,当某层级的某一数据服务器节点出现访问量高于设定的访问量阈值时,于所述数据服务器节点下添加预设取值范围内取值为索引的子数据服务器节点,作为该数据服务器节点的下一层级;将所述数据服务器节点存储的数据拆分本文档来自技高网
...
一种基于数据服务器集群实现数据拆分的方法及系统

【技术保护点】
一种基于数据服务器集群实现数据拆分的方法,其特征在于,该数据服务器集群中的数据服务器节点呈树状层级分布,所述方法包括:当某层级的某一数据服务器节点出现访问量高于设定的访问量阈值时,于所述数据服务器节点下添加预设取值范围内取值为索引的子数据服务器节点,作为该数据服务器节点的下一层级;将所述数据服务器节点存储的数据拆分到新增加的下一层级的子数据服务器节点中进行存储。

【技术特征摘要】
1.一种基于数据服务器集群实现数据拆分的方法,其特征在于,该数据服务器集群中的数据服务器节点呈树状层级分布,所述方法包括:当某层级的某一数据服务器节点出现访问量高于设定的访问量阈值时,于所述数据服务器节点下添加预设取值范围内取值为索引的子数据服务器节点,作为该数据服务器节点的下一层级;将所述数据服务器节点存储的数据拆分到新增加的下一层级的子数据服务器节点中进行存储。2.如权利要求1所述基于数据服务器集群实现数据拆分的方法,其特征在于,所述数据服务器集群中的数据服务器节点呈基数树Radix结构分布,或呈字典树Trie结构分布。3.如权利要求1所述基于数据服务器集群实现数据拆分的方法,其特征在于,所述预设取值范围为如下之一:0-9,a-z,A-Z,ASCII值范围。4.如权利要求1所述基于数据服务器集群实现数据拆分的方法,其特征在于,所述将所述数据服务器节点存储的数据拆分到新增加的下一层级的子数据服务器节点中进行存储,包括:利用最大匹配算法,将所述数据服务器节点存储的数据拆分到新增加的下一层级的子数据服务器节点中进行存储。5.如权利要求4所述基于数据服务器集群实现数据拆分的方法,其特征在于,所述方法还包括:将数据拆分后的最大匹配路径反馈给用户,以便用户通过所述最大匹配路径找到对应的数据服务器配置,从而利用该数据服务器配置找到对应的数据服务器获取数...

【专利技术属性】
技术研发人员:徐长龙王崇任文越
申请(专利权)人:微梦创科网络科技中国有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1