CN106407308A - 一种分布式数据库的扩容方法及装置 - Google Patents

一种分布式数据库的扩容方法及装置 Download PDF

Info

Publication number
CN106407308A
CN106407308A CN201610777611.6A CN201610777611A CN106407308A CN 106407308 A CN106407308 A CN 106407308A CN 201610777611 A CN201610777611 A CN 201610777611A CN 106407308 A CN106407308 A CN 106407308A
Authority
CN
China
Prior art keywords
node
original
new
data
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610777611.6A
Other languages
English (en)
Inventor
崔维力
武新
张绍勇
王宝贤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TIANJIN NANKAI UNIVERSITY GENERAL DATA TECHNOLOGIES Co Ltd
Original Assignee
TIANJIN NANKAI UNIVERSITY GENERAL DATA TECHNOLOGIES Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TIANJIN NANKAI UNIVERSITY GENERAL DATA TECHNOLOGIES Co Ltd filed Critical TIANJIN NANKAI UNIVERSITY GENERAL DATA TECHNOLOGIES Co Ltd
Priority to CN201610777611.6A priority Critical patent/CN106407308A/zh
Publication of CN106407308A publication Critical patent/CN106407308A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures

Abstract

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

Description

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

Claims (8)

1.一种分布式数据库的扩容方法,其特征在于,包括:
集群安装新节点,所述新节点与原有节点为倍数关系;
建立新节点与原有节点的映射关系;
将原有节点的数据复制至映射关系对应的新节点,构造新的hashmap;
新节点和原有节点按照所述hashmap进行数据重分布;
更新集群中节点中的表。
2.根据权利要求1所述的方法,其特征在于,所述新节点和原有节点按照所述hash map进行数据重分布,包括:
原有节点保留原表的一半数据;
与原有节点对应的新节点插入所述原有节点的另一半数据。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
刷新所有节点的元数据,以使得所有节点实现提供对外服务。
4.根据权利要求1所述的方法,其特征在于,所述数据包括:
二进制文件。
5.一种分布式数据库的扩容装置,其特征在于,包括:
安装单元,用于安装新节点,所述新节点与原有节点为倍数关系;
映射关系建立单元,用于建立新节点与原有节点的映射关系;
构造单元,用于将原有节点的数据复制至映射关系对应的新节点,构造新的hash map;
重分布单元,用于使新节点和原有节点按照所述hash map进行数据重分布;
更新单元,用于更新集群中节点中的表。
6.根据权利要求5所述的装置,其特征在于,所述重分布单元用于:
原有节点保留原表的一半数据;
与原有节点对应的新节点插入所述原有节点的另一半数据。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
刷新单元,刷新所有节点的元数据,以使得所有节点实现提供对外服务。
8.根据权利要求5所述的装置,其特征在于,所述数据包括:
二进制文件。
CN201610777611.6A 2016-08-31 2016-08-31 一种分布式数据库的扩容方法及装置 Pending CN106407308A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610777611.6A CN106407308A (zh) 2016-08-31 2016-08-31 一种分布式数据库的扩容方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610777611.6A CN106407308A (zh) 2016-08-31 2016-08-31 一种分布式数据库的扩容方法及装置

Publications (1)

Publication Number Publication Date
CN106407308A true CN106407308A (zh) 2017-02-15

Family

ID=58004119

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610777611.6A Pending CN106407308A (zh) 2016-08-31 2016-08-31 一种分布式数据库的扩容方法及装置

Country Status (1)

Country Link
CN (1) CN106407308A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107544848A (zh) * 2017-08-30 2018-01-05 深圳云天励飞技术有限公司 集群扩展方法、装置、电子设备及存储介质
CN109299066A (zh) * 2018-07-27 2019-02-01 阿里巴巴集团控股有限公司 一种数据库扩容方法及装置
CN109426439A (zh) * 2017-09-04 2019-03-05 阿里巴巴集团控股有限公司 对分布式存储系统进行扩容的方法及装置
CN109547574A (zh) * 2019-01-04 2019-03-29 平安科技(深圳)有限公司 一种数据传输方法及相关装置
CN109783577A (zh) * 2019-01-05 2019-05-21 咪付(广西)网络技术有限公司 一种基于策略的云端数据库弹性伸缩方法
WO2019105267A1 (en) * 2017-11-30 2019-06-06 Huawei Technologies Co., Ltd. Redistributing table data in database cluster
CN110059080A (zh) * 2019-04-29 2019-07-26 珠海天燕科技有限公司 一种数据处理的方法和装置
CN110222030A (zh) * 2019-05-13 2019-09-10 福建天泉教育科技有限公司 数据库动态扩容的方法、存储介质
CN111414422A (zh) * 2020-03-19 2020-07-14 上海达梦数据库有限公司 一种数据分布方法、装置、设备和存储介质
CN113448940A (zh) * 2020-03-24 2021-09-28 北京京东振世信息技术有限公司 数据库扩容的方法和装置
CN113704230A (zh) * 2021-09-02 2021-11-26 京东科技控股股份有限公司 数据库扩容方法、装置、电子设备及计算机存储介质
WO2021254047A1 (zh) * 2020-06-16 2021-12-23 中兴通讯股份有限公司 分布式数据库重分布的实现方法、数据库、服务器及介质
WO2022001883A1 (zh) * 2020-06-28 2022-01-06 中兴通讯股份有限公司 一种数据重分布的方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102968503A (zh) * 2012-12-10 2013-03-13 曙光信息产业(北京)有限公司 数据库系统的数据处理方法以及数据库系统
CN103229487A (zh) * 2012-12-27 2013-07-31 华为技术有限公司 分布式存储系统中的分区平衡方法、装置及服务器
CN103944964A (zh) * 2014-03-27 2014-07-23 上海云数信息科技有限公司 一种分布式系统及根据该系统进行逐步扩容的方法
CN104202435A (zh) * 2014-09-28 2014-12-10 北京奇虎科技有限公司 数据拖取的方法和装置
CN104484469A (zh) * 2014-12-31 2015-04-01 天津南大通用数据技术股份有限公司 一种支持多hash map数据库集群系统不停机的扩容方法
CN104615657A (zh) * 2014-12-31 2015-05-13 天津南大通用数据技术股份有限公司 一种节点支持多数据分片的分布式集群的扩容和缩容方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102968503A (zh) * 2012-12-10 2013-03-13 曙光信息产业(北京)有限公司 数据库系统的数据处理方法以及数据库系统
CN103229487A (zh) * 2012-12-27 2013-07-31 华为技术有限公司 分布式存储系统中的分区平衡方法、装置及服务器
CN103944964A (zh) * 2014-03-27 2014-07-23 上海云数信息科技有限公司 一种分布式系统及根据该系统进行逐步扩容的方法
CN104202435A (zh) * 2014-09-28 2014-12-10 北京奇虎科技有限公司 数据拖取的方法和装置
CN104484469A (zh) * 2014-12-31 2015-04-01 天津南大通用数据技术股份有限公司 一种支持多hash map数据库集群系统不停机的扩容方法
CN104615657A (zh) * 2014-12-31 2015-05-13 天津南大通用数据技术股份有限公司 一种节点支持多数据分片的分布式集群的扩容和缩容方法

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107544848A (zh) * 2017-08-30 2018-01-05 深圳云天励飞技术有限公司 集群扩展方法、装置、电子设备及存储介质
CN109426439A (zh) * 2017-09-04 2019-03-05 阿里巴巴集团控股有限公司 对分布式存储系统进行扩容的方法及装置
US11151111B2 (en) 2017-11-30 2021-10-19 Futurewei Technologies, Inc. Redistributing table data in a database cluster
WO2019105267A1 (en) * 2017-11-30 2019-06-06 Huawei Technologies Co., Ltd. Redistributing table data in database cluster
CN111386521A (zh) * 2017-11-30 2020-07-07 华为技术有限公司 在数据库集群中重分布表数据
CN111386521B (zh) * 2017-11-30 2023-10-13 华为技术有限公司 在数据库集群中重分布表数据
CN109299066A (zh) * 2018-07-27 2019-02-01 阿里巴巴集团控股有限公司 一种数据库扩容方法及装置
CN109547574A (zh) * 2019-01-04 2019-03-29 平安科技(深圳)有限公司 一种数据传输方法及相关装置
CN109783577B (zh) * 2019-01-05 2021-10-08 咪付(广西)网络技术有限公司 一种基于策略的云端数据库弹性伸缩方法
CN109783577A (zh) * 2019-01-05 2019-05-21 咪付(广西)网络技术有限公司 一种基于策略的云端数据库弹性伸缩方法
CN110059080A (zh) * 2019-04-29 2019-07-26 珠海天燕科技有限公司 一种数据处理的方法和装置
CN110222030A (zh) * 2019-05-13 2019-09-10 福建天泉教育科技有限公司 数据库动态扩容的方法、存储介质
CN111414422B (zh) * 2020-03-19 2023-09-29 上海达梦数据库有限公司 一种数据分布方法、装置、设备和存储介质
CN111414422A (zh) * 2020-03-19 2020-07-14 上海达梦数据库有限公司 一种数据分布方法、装置、设备和存储介质
CN113448940A (zh) * 2020-03-24 2021-09-28 北京京东振世信息技术有限公司 数据库扩容的方法和装置
CN113448940B (zh) * 2020-03-24 2023-09-22 北京京东振世信息技术有限公司 数据库扩容的方法和装置
WO2021254047A1 (zh) * 2020-06-16 2021-12-23 中兴通讯股份有限公司 分布式数据库重分布的实现方法、数据库、服务器及介质
WO2022001883A1 (zh) * 2020-06-28 2022-01-06 中兴通讯股份有限公司 一种数据重分布的方法和装置
CN113704230A (zh) * 2021-09-02 2021-11-26 京东科技控股股份有限公司 数据库扩容方法、装置、电子设备及计算机存储介质

Similar Documents

Publication Publication Date Title
CN106407308A (zh) 一种分布式数据库的扩容方法及装置
CN101334797B (zh) 一种分布式文件系统及其数据块一致性管理的方法
CN102033938B (zh) 基于二级映射的集群动态扩展方法
CN104317669B (zh) 一种云端异构存储系统及其数据副本管理方法
US9305072B2 (en) Information storage system and data replication method thereof
CN103180835B (zh) 用于扩展无共享系统的装置和方法
CN102982186B (zh) 基于oracle数据库系统的range分区表的维护方法和系统
US20160026699A1 (en) Method for Synchronization of UGC Master and Backup and System Thereof, and Computer Storage Medium
CN110858194A (zh) 一种数据库扩容的方法和装置
CN104850565A (zh) 一种基于k-v存储系统的元数据管理方法
CN111917834A (zh) 一种数据同步方法、装置、存储介质及计算机设备
US20160275085A1 (en) Methods for facilitating a nosql database with integrated management and devices thereof
CN111143323B (zh) Mpp数据库管理方法、装置及系统
CN106383826A (zh) 数据库查询方法和装置
CN110008289B (zh) 一种关系数据库、电网模型数据存储及检索方法
CN110688065A (zh) 一种存储空间管理方法、系统、电子设备及存储介质
US20100082551A1 (en) Data placement transparency for high availability and load balancing
CN101483668A (zh) 热点数据的网络存储和访问方法、设备及系统
CN109815207A (zh) 数据存储方法和客户端代理
CN104461736A (zh) 资源分配与搜索方法、资源分配与搜索系统和云服务器
CN104484527A (zh) 一种离散结构拓扑优化过程中均布载荷自动动态修改方法
US9652766B1 (en) Managing data stored in memory locations having size limitations
CN106331132A (zh) 一种分布式数据库中节点的替换方法及装置
CN106776001A (zh) 一种分布式数据库集群数据的分布方法及装置
CN106528833A (zh) 一种mpp数据库数据动态重分布的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170215

RJ01 Rejection of invention patent application after publication