CN110502582A - 一种分布式数据库的在线扩容方法 - Google Patents

一种分布式数据库的在线扩容方法 Download PDF

Info

Publication number
CN110502582A
CN110502582A CN201910794674.6A CN201910794674A CN110502582A CN 110502582 A CN110502582 A CN 110502582A CN 201910794674 A CN201910794674 A CN 201910794674A CN 110502582 A CN110502582 A CN 110502582A
Authority
CN
China
Prior art keywords
dilatation
task
strategy
data base
distributed data
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.)
Granted
Application number
CN201910794674.6A
Other languages
English (en)
Other versions
CN110502582B (zh
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.)
Jiangsu Huaku Data Technology Co Ltd
Original Assignee
Jiangsu Huaku Data Technology 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 Jiangsu Huaku Data Technology Co Ltd filed Critical Jiangsu Huaku Data Technology Co Ltd
Priority to CN201910794674.6A priority Critical patent/CN110502582B/zh
Publication of CN110502582A publication Critical patent/CN110502582A/zh
Application granted granted Critical
Publication of CN110502582B publication Critical patent/CN110502582B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种分布式数据库的在线扩容方法,包含以下步骤:用户执行扩容命令,开启对一个表的扩容任务;数据库系统接收扩容命令,并把扩容任务记录在任务列表中;扩容任务管理模块,读取任务列表中的任务,并依赖优先级开始启动扩容任务;扩容任务启动后,先收集表类型信息和表分片分布信息,由扩容策略生成模块依据这些信息决策出扩容策略;扩容策略生成后,扩容任务执行模块将依据扩容策略开始执行扩容,执行过程中如果遇到有节点故障,扩容任务执行模块会重新获取分布式数据库的节点状态,并继续在好的节点上完成扩容任务。该方法保证分布式数据库在进行扩容时还可以在线提供服务。该方法保证分布式数据库在扩容时的高可用性。

Description

一种分布式数据库的在线扩容方法
技术领域
本发明属于分布式数据库技术领域,具体涉及一种分布式数据库的在线扩容方法。
背景技术
当前分布式数据库主要应用领域是大数据分析。分布式数据库处理的数据量已经达到PB级,且数据量还在以惊人的速度增长。已有的分布式数据库系统总会面临计算能力和数据存储能力的瓶颈。
现有的分布式数据库大多会采用hash分布或者随机分布技术把数据分布到各个节点上。对于已经在运行的分布式数据库系统,数据的hash分布方式已经是固定的。在这种场景下增加节点就需要修改hash分布方式,对已有数据重新做hash分布,让数据分布在新增节点上。因为分布式数据库系统扩容时涉及的数据量巨大,所以扩容的时间一般都是比较长。分布式数据库一般都会要求扩容过程中分布式数据库系统在线,并且扩容时间最短。
发明内容
本发明的目的在于提供一种分布式数据库的在线扩容方法,以满足分布式数据库在线扩容的需求,降低扩容过程对数据库的影响,缩减扩容的时间。
为实现上述目的,本发明提供如下技术方案:一种分布式数据库的在线扩容方法包括如下步骤:
步骤1、用户执行扩容命令,开启对一个表的扩容任务;
步骤2、数据库系统接收扩容命令,并把扩容任务记录在任务列表中;
步骤3、扩容任务管理模块,读取任务列表中的任务,并依赖优先级开始启动扩容任务;
步骤4、扩容任务启动后,先收集表类型信息和表分片分布信息,由扩容策略生成模块依据这些信息决策出扩容策略;扩容策略生成模块决策逻辑具体步骤如下:
步骤4-1、如果新的数据分布规则和老的数据分布规则的分片数相同,那么对表进行扩容时将采用分片移动策略。分片移动策略直接移动表的分片,有速度快的特点;
步骤4-2、如果新的数据分布规则与老的数据分布规则的分片数不同,那么对该类表进行扩容时将采用数据重分布策略。数据重分布策略对把已有数据重分布。如果是hash分布表,将会按照新的数据分布规则重分布数据;如果是随机分布表,将会把已有数据平均分布到所有节点上(包含新增节点);
步骤4-3、如果表类型是随机分布表并且新的数据分布规则包含老的分布规则,那么对该类表进行扩容时将采用快速扩容策略。快速扩容策略不移动已有数据位置,只在新增节点上创建分片;
步骤4-4、如果表类型是复制表,那么对该类表进行扩容时采用增加或减少分片策略;
步骤5、扩容策略生成后,扩容任务执行模块将依据扩容策略开始执行扩容,扩容策略由具体的步骤组成,扩容任务执行模块会读取每个步骤并顺序执行,执行过程中如果遇到有节点故障,扩容任务执行模块会重新获取分布式数据库的节点状态,并继续在好的节点上完成扩容任务;
作为优选,所述的步骤1中数据库响应用户下发的在线扩容命令时,只返回给用户在线扩容命令下发成功,用户可以随时在系统表中查看该表扩容的进度。
作为优选,所述的步骤2中对表增加了一种锁,该锁允许在表扩容期间对表进行查询、追加写和DDL操作。
作为优选,所述的步骤3中依据表类型和新老数据分布规则的分片分布信息选择对表的扩容策略。
作为优选,所述步骤4中在表扩容期间容忍有数据库节点故障,且不影响扩容的进度。
与现有技术相比,本发明的有益效果是:该方法提供异步执行方式;该方法保证分布式数据库在进行扩容时还可以在线提供服务。该方法保证分布式数据库在扩容时的高可用性;该方法有多种策略对表进行扩容。
附图说明
图1是扩容任务管理模块示意图。
图2是分片移动策略示意图。
图3是数据重分布策略示意图。
图4是快速扩容策略示意图。
图5是增加或减少分片策略示意图。
图6是扩容执行模块的高可用逻辑流程图。
图7是有节点故障时扩容执行模块重新获取可用节点示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
请参阅图1-7,本实施例提供一种技术方案:图1所示当用户发起扩容命令时,数据库系统接收扩容命令后在一个任务列表中增加一条扩容任务记录。扩容任务管理模块定期扫描任务列表,并从中选择处于STARTING状态的任务开始在后台执行。
扩容任务开始在数据库系统后台执行的整体工作流程,具体步骤如下所示:
步骤1、数据库系统收集表类型和新老数据分布规则信息后,从图2、图3、图4和图5所示的策略中选择出一种策略。
扩容执行模块从策略中读取步骤信息,顺序执行每一个步骤。在执行步骤过程中如果有节点故障,扩容执行模块会调整策略(图6)并且选择可用节点(图7)继续完成扩容。
本发明有多种扩容方式,其中分片移动策略、快速扩容策略和增加或减少分片策略极大的优化了扩容性能。数据重分布策略在进行数据重分布时仍可以使用数据库在线提供服务,并且满足了高可用性要求。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (5)

1.一种分布式数据库的在线扩容方法,其特征在于:具体方法包括如下步骤:
步骤1、用户执行扩容命令,开启对一个表的扩容任务;
步骤2、数据库系统接收扩容命令,并把扩容任务记录在任务列表中;
步骤3、扩容任务管理模块,读取任务列表中的任务,并依赖优先级开始启动扩容任务;
步骤4、扩容任务启动后,先收集表类型信息和表分片分布信息,由扩容策略生成模块依据这些信息决策出扩容策略;扩容策略生成模块决策逻辑具体步骤如下:
步骤4-1、如果新的数据分布规则和老的数据分布规则的分片数相同,那么对表进行扩容时将采用分片移动策略;
步骤4-2、如果新的数据分布规则与老的数据分布规则的分片数不同,那么对该类表进行扩容时将采用数据重分布策略,数据重分布策略对把已有数据重分布,如果是hash分布表,将会按照新的数据分布规则重分布数据;如果是随机分布表,将会把已有数据平均分布到所有节点上;
步骤4-3、如果表类型是随机分布表并且新的数据分布规则包含老的分布规则,那么对该类表进行扩容时将采用快速扩容策略,快速扩容策略不移动已有数据位置,只在新增节点上创建分片;
步骤4-4、如果表类型是复制表,那么对该类表进行扩容时采用增加或减少分片策略;
步骤5、扩容策略生成后,扩容任务执行模块将依据扩容策略开始执行扩容,扩容策略由具体的步骤组成,扩容任务执行模块会读取每个步骤并顺序执行,执行过程中如果遇到有节点故障,扩容任务执行模块会重新获取分布式数据库的节点状态,并继续在好的节点上完成扩容任务。
2.根据权利要求1所述的一种分布式数据库的在线扩容方法,其特征在于:所述的步骤1中数据库响应用户下发的在线扩容命令时,只返回给用户在线扩容命令下发成功,用户可以随时在系统表中查看该表扩容的进度。
3.根据权利要求1所述的一种分布式数据库的在线扩容方法,其特征在于:所述的步骤2中对表增加了一种锁,该锁允许在表扩容期间对表进行查询、追加写和DDL操作。
4.根据权利要求1所述的一种分布式数据库的在线扩容方法,其特征在于:所述的步骤3中依据表类型和新老数据分布规则的分片分布信息选择对表的扩容策略。
5.根据权利要求1所述的一种分布式数据库的在线扩容方法,其特征在于:所述步骤4中在表扩容期间容忍有数据库节点故障,且不影响扩容的进度。
CN201910794674.6A 2019-08-27 2019-08-27 一种分布式数据库的在线扩容方法 Active CN110502582B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910794674.6A CN110502582B (zh) 2019-08-27 2019-08-27 一种分布式数据库的在线扩容方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910794674.6A CN110502582B (zh) 2019-08-27 2019-08-27 一种分布式数据库的在线扩容方法

Publications (2)

Publication Number Publication Date
CN110502582A true CN110502582A (zh) 2019-11-26
CN110502582B CN110502582B (zh) 2022-06-10

Family

ID=68589605

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910794674.6A Active CN110502582B (zh) 2019-08-27 2019-08-27 一种分布式数据库的在线扩容方法

Country Status (1)

Country Link
CN (1) CN110502582B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111061737A (zh) * 2019-12-12 2020-04-24 税友软件集团股份有限公司 一种分布式数据库快速扩容装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107153680A (zh) * 2017-04-18 2017-09-12 北京思特奇信息技术股份有限公司 一种分布式内存数据库在线扩展节点的方法及系统
CN107357896A (zh) * 2017-07-13 2017-11-17 北京小度信息科技有限公司 数据库集群的扩容方法、装置、系统和数据库集群系统
US20180004777A1 (en) * 2016-04-15 2018-01-04 Brian J. Bulkowski Data distribution across nodes of a distributed database base system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180004777A1 (en) * 2016-04-15 2018-01-04 Brian J. Bulkowski Data distribution across nodes of a distributed database base system
CN107153680A (zh) * 2017-04-18 2017-09-12 北京思特奇信息技术股份有限公司 一种分布式内存数据库在线扩展节点的方法及系统
CN107357896A (zh) * 2017-07-13 2017-11-17 北京小度信息科技有限公司 数据库集群的扩容方法、装置、系统和数据库集群系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YUANQUAN FAN 等: "A heterogeneity-aware data distribution and rebalance method in Hadoop cluster", 《2012 SEVENTH CHINAGRID ANNUAL CONFERENCE》 *
尧海昌 等: "面向轨道交通集群调度系统的数据分片中间件的研究", 《南京工业职业技术学院学报》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111061737A (zh) * 2019-12-12 2020-04-24 税友软件集团股份有限公司 一种分布式数据库快速扩容装置
CN111061737B (zh) * 2019-12-12 2023-05-09 税友软件集团股份有限公司 一种分布式数据库快速扩容装置

Also Published As

Publication number Publication date
CN110502582B (zh) 2022-06-10

Similar Documents

Publication Publication Date Title
US10747780B2 (en) Blockchain-based data processing method and device
CN108595157A (zh) 区块链数据的处理方法、装置、设备和存储介质
CN104885078A (zh) 用于大规模并行处理数据库集群中的两阶段查询优化的方法
CN110233802B (zh) 一种构建一主链多侧链的区块链架构的方法
EP3961431B1 (en) Method and apparatus for grouping transactions that need to be serially executed based on a sequence of transactions in one block of a blockchain
CN107247758B (zh) 基于银行核心系统的数据处理方法
CN108810115A (zh) 一种适用于分布式数据库的负载均衡方法、装置及服务器
CN112865089A (zh) 一种改进的主动配电网大规模场景分析方法
CN104573112B (zh) Oltp集群数据库中页面查询方法及数据处理节点
CN115358308A (zh) 一种大数据实例约简方法、装置、电子设备及存储介质
CN115712670A (zh) 一种数据源管理系统
CN110502582A (zh) 一种分布式数据库的在线扩容方法
CN102724301B (zh) 云数据库系统以及云数据读写处理方法、设备
CN107453926B (zh) 一种电力通信网站点通信带宽估算方法及装置
CN104778088A (zh) 一种基于减少进程间通信开销的并行i/o优化方法与系统
CN107104829B (zh) 一种基于网络拓扑数据的物理设备匹配分配方法及装置
CN113377683B (zh) 软件测试用例的生成方法、系统、设备、终端、介质及应用
Huang et al. Reliable redundant services placement in federated micro-clouds
CN112711588B (zh) 多表连接的方法和装置
He et al. SLC-index: A scalable skip list-based index for cloud data processing
CN114138330A (zh) 基于知识图谱的代码克隆检测优化方法、装置和电子设备
Chalvantzis et al. BBQ: Elastic MapReduce over cloud platforms
Bai et al. Skyline-join query processing in distributed databases
KR102054068B1 (ko) 그래프 스트림에 대한 실시간 분산 저장을 위한 분할 방법 및 분할 장치
CN105827737A (zh) 调度方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant