[发明专利]无共享分布式数据库的数据分布的方法和装置在审
申请号: | 201310292152.9 | 申请日: | 2013-07-11 |
公开(公告)号: | CN103345519A | 公开(公告)日: | 2013-10-09 |
发明(设计)人: | 郭伍得 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;H04L29/08 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 共享 分布式 数据库 数据 分布 方法 装置 | ||
技术领域
本发明涉及通信技术领域,尤其涉及无共享分布式数据库的数据分布的方法和装置。
背景技术
无共享分布式数据库思路是把数据分布到多个数据分片(shard)上,每个shard拥有自己的CPU(Central Processing Unit,中央处理器)和内存,管理自己的存储空间,各个shard之间不共享数据,应用通过分片管理(即数据的存储方式)找到正确的shard来进行数据读写。
现有技术中,可以通过区间划分的方式将待存储数据存储在相应的shard中。
具体的,可以根据MSISDN(移动台国际ISDN<Integrated Services Digital Network,综合业务数字网>号码)的数值对待存储数据进行区间划分,划分后的区域的数量与shard的数量相同,然后,按照一定的准则将相应的区域的待存储数据存储至相应的shard中。
但是,采取这种数据存储方式后,每个shard管理多个区间,当数据库需要扩容时,即增加数据库中包含的shard的数量,这样,还需要对区间进行重新划分,将新划分好的区间分配给相应的shard,由于,各shard对应的区间变化了,因此,各shard中存储的数据也随之变化,导致大部分数据需要在shard之间进行迁移,降低了数据库的性能。
发明内容
本发明的实施例提供一种无共享分布式数据库的数据分布的方法和装置,解决了当数据库扩容后,导致大部分数据需要在shard之间进行迁移,降低了数据库的性能的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种无共享分布式数据库的数据分布的方法,包括:
为数据库中包含的数据分片shard配置第一shard标识;
根据所述第一shard标识将第一待存储数据存储至相应的shard中;
在数据库扩容后,根据数据量最大的shard为新增加的shard配置第二shard标识;
将所述数据量最大的shard中存储的部分数据迁移至所述第二shard标识对应的shard中存储。
在第一种可能实现的方式中,所述为数据库中的数据分片shard配置第一shard标识包括:
将各shard的所述第一shard标识设置为整数,且不同shard的所述第一shard标识不同,相邻shard的所述第一shard标识的差为1;
所述根据所述第一shard标识将第一待存储数据存储至相应的shard中包括:
将所述第一待存储数据的移动台国际综合业务数字网号码MSISDN除以N,得到第一余数,所述N为所述数据库包括的shard的个数;
将所述第一待存储数据存储至与所述第一余数相同的所述第一shard标识对应的shard中。
结合第一方面或第一方面的第一种可能实现的方式,在第二种可能实现的方式中,根据数据量最大的shard为新增加的shard配置第二shard标识包括:
将所述第二shard标识确定为与所述数据量最大的shard对应的第一shard标识相同的shard标识。
结合第一方面或第一方面的第一种可能实现的方式或第二种可能实现的方式,在第三种可能实现的方式中,所述部分数据的数据量与所有数据的数据量的一半的差值小于预设值,所述所有数据为所述数据量最大的shard中存储的所有数据。
结合第一方面或第一方面的第一种可能实现的方式至第三种可能实现的方式中任意一种方式,在第四种可能实现的方式中,所述根据数据量最大的shard为新增加的shard配置第二shard标识之后,还包括:
根据所述第一shard标识和所述第二shard标识将第二待存储数据存储至相应的shard中;
若存在至少两个shard的shard标识相同,且所述第二待存储数据的第一余数与所述至少两个shard的shard标识相同,则所述根据shard标识将第二待存储数据存储至相应的shard中包括:
按照轮流的方式选择所述至少两个shard中的一个,并存储所述第二待存储数据;或者,
将待存储数据存储至所述至少两个shard中的数据量最小的shard中。
结合第一方面,在第五种可能实现的方式中,所述为数据库中的数据分片shard配置第一shard标识包括:
将预设参考区间平均分成N个子区间,每个子区间对应一个shard,所述N为所述数据库中包含的shard的数量,所述预设参考区间为整数区间;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310292152.9/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置