一种分布式数据库的扩容方法及装置制造方法及图纸

技术编号:14650412 阅读:137 留言:0更新日期:2017-02-16 10:24
本发明专利技术提供了一种分布式数据库的扩容方法及装置,所述方法包括:集群安装新节点,所述新节点与原有节点为倍数关系;建立新节点与原有节点的映射关系;将原有节点的数据复制至映射关系对应的新节点,构造新的hash map;新节点和原有节点按照所述hash map进行数据重分布;更新集群中节点中的表。减少了节点数据的计算量,实现了强扩容性能,并能快速释放删除行的存储空间。

【技术实现步骤摘要】

本专利技术属于分布式数据库领域,尤其是涉及一种分布式数据库的扩容方法及装置
技术介绍
分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。在客户的业务场景中,当前集群满足不了用户的业务需求而需要对集群进行扩容时,需要在给定的时间窗口完成集群的扩容。目前市场上主流的分布式数据库系统GBaseMPPCluster、vertica、GreepPlum一般采用一致性的hash方式来分布集群中的数据,经过hash分布的表,在扩容时,需要逐条进行hash值的计算,然后根据计算的hash值来搬移部分的数据,按行迁移数据造成迁移性能较低。GBaseMPPCluster采用的一致性hash算法是按照65536个hash桶来对应到集群的实际物理节点(简称为集群的hashmap),理论上集群支持的最大节点数为65536,带来的缺陷是hash桶数太多,导致多个hashkey对应到一个节点,数据扩展和缩容时必须读取所有的数据并且计算hash后按行来重分布数据,导致重分布存在以下问题:1.每个节点必须计算所有数据,并按照hash分布数据到所有节点上;2.扩容性能较低;3.delete行的空间不能释放。
技术实现思路
本专利技术实施例提供了一种分布式数据库的扩容方法及装置,以解决分布式数据库扩容时数据运算量大且扩容性能低的技术问题。一方面,本专利技术实施例提供了一种分布式数据库的扩容方法,包括:集群安装新节点,所述新节点与原有节点为倍数关系;建立新节点与原有节点的映射关系;将原有节点的数据复制至映射关系对应的新节点;构造新的hashmap;新节点和原有节点按照所述hashmap进行数据重分布;更新集群中节点中的表。进一步的,所述新节点和原有节点按照所述hashmap进行数据重分布,包括:原有节点保留原表的一半数据;与原有节点对应的新节点插入所述原有节点的另一半数据。进一步的,所述方法还包括:刷新所有节点的元数据,以使得所有节点实现提供对外服务。更进一步的,所述数据包括:二进制文件。另一方面,本专利技术实施例还提供了一种分布式数据库的扩容装置,包括:安装单元,用于安装新节点,所述新节点与原有节点为倍数关系;映射关系建立单元,用于建立新节点与原有节点的映射关系;构造单元,用于将原有节点的数据复制至映射关系对应的新节点,构造新的hashmap;重分布单元,用于使新节点和原有节点按照所述hashmap进行数据重分布;更新单元,用于更新集群中节点中的表。进一步的,所述重分布单元用于:原有节点保留原表的一半数据;与原有节点对应的新节点插入所述原有节点的另一半数据。进一步的,所述装置还包括:刷新单元,刷新所有节点的元数据,以使得所有节点实现提供对外服务。更进一步的,所述数据包括:二进制文件。本专利技术实施例提供的分布式数据库的扩容方法及装置,在集群安装新节点与原有节点为倍数关系时,通过建立新节点与原有节点的映射关系,构造hashmap,并对数据重分布,减少了节点数据的计算量,实现了强扩容性能,并能快速释放删除行的存储空间。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例一提供的分布式数据库的扩容方法的流程示意图;图2是本专利技术实施例二提供的分布式数据库的扩容方法的流程示意图;图3是本专利技术实施例三提供的分布式数据库的扩容方法的流程示意图;图4是本专利技术实施例四提供的分布式数据库的扩容装置的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例一图1为本专利技术实施例一提供的分布式数据库的扩容方法的流程图,本实施例可适用于在集群安装新节点与原节点数量为倍数关系时,对分布式数据库进行扩容的情况,该方法可以由分布式数据库的扩容装置来执行,该装置可由软件/硬件方式实现,并可集成于分布式数据库系统的管理节点中。S110,集群安装新节点,所述新节点与原有节点为倍数关系。在实际的项目中,大部分分布式系统中节点按照比例关系,成倍的进行扩容和缩容,例如由n个节点扩容到2n个节点。或者由n个节点扩容到3n个节点。S120,建立新节点与原有节点的映射关系。示例性的,把原有集群的n个节点和需要扩容的新的n个节点建立一对一的映射关系。或者原有集群的n个节点和需要扩容的新的2n个节点建立一对二的映射关系。S130,将原有节点的数据复制至映射关系对应的新节点,构造新的hashmap。示例性的,按照该对应关系,把原有集群的n个节点的二进制数据文件一对一的拷贝到需要扩容的新的n个节点,并在集群中构造新的hashmap,其中hashmap是hash值和节点的对应关系,并使所述hashmap生效。例如:原来的hashmap如下:hashkeyNodeid01(Node1)11(Node1)21(Node1)31(Node1)41(Node1)51(Node1)....m1(Node1)新增加的Noden+1和Node1建立对应关系,Noden+1和Node1节点所属的hashmap如下:S140,新节点和原有节点按照所述hashmap进行数据重分布。在扩容后有2n个节点的集群中创建和原有表结构相同的新表,在扩容后有2n个节点的集群中针对每一个节点,查询原表的数据,按照新的hashmap,对查询出的数据进行hash计算,把属于该节点的数据插入到新表中。S150,更新集群中节点中的表。删除系统中各个节点的原表,把新表名更名为原表名。本实施例提供的分布式数据库的扩容方法及装置,在集群安装新节点与原有节点为倍数关系时,通过建立新节点与原有节点的映射关系,构造hashmap,并对数据重分布,减少了节点数据的计算量,实现了强扩容性能,并能快速释放删除行的存储空间。在本实施例的一个优选方式中,所述数据为二进制数据,通常可以为二进制数据文件,使用二进制将数据储存到文件更快捷、省时且不会造成有效位的丢失。实施例二图2是本专利技术实施例二提供的分布式数据库的扩容方法的流程示意图,本专利技术实施例以上述实施例为基础,进一步的,将所述新节点和原有节点按照所述hashmap进行数据重分布,具体优化为:原有节点保留原表的一半数据;与原有节点对应的新节点插入所述原有节点的另一半数据。参见图2,所述分布式数据库的扩容方法,包括:S210,集群安装新节点,所述新节点与原有节点为倍数关系。S220,建立新节点与原有节点的映射关系;S230,将原有节点的数据复制至映射关系对应的新节点,构造新的hashmap。S240,原有节点保留原表的一半数据,与原有节点对应的新节点插入所述原有节点本文档来自技高网...
一种分布式数据库的扩容方法及装置

【技术保护点】
一种分布式数据库的扩容方法,其特征在于,包括:集群安装新节点,所述新节点与原有节点为倍数关系;建立新节点与原有节点的映射关系;将原有节点的数据复制至映射关系对应的新节点,构造新的hashmap;新节点和原有节点按照所述hashmap进行数据重分布;更新集群中节点中的表。

【技术特征摘要】
1.一种分布式数据库的扩容方法,其特征在于,包括:集群安装新节点,所述新节点与原有节点为倍数关系;建立新节点与原有节点的映射关系;将原有节点的数据复制至映射关系对应的新节点,构造新的hashmap;新节点和原有节点按照所述hashmap进行数据重分布;更新集群中节点中的表。2.根据权利要求1所述的方法,其特征在于,所述新节点和原有节点按照所述hashmap进行数据重分布,包括:原有节点保留原表的一半数据;与原有节点对应的新节点插入所述原有节点的另一半数据。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:刷新所有节点的元数据,以使得所有节点实现提供对外服务。4.根据权利要求1所述的方法,其特征在于,所述数据包括:二进制文件。5.一种分布式数据库的...

【专利技术属性】
技术研发人员:崔维力武新张绍勇王宝贤
申请(专利权)人:天津南大通用数据技术股份有限公司
类型:发明
国别省市:天津;12

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

1