CN110502582A - 一种分布式数据库的在线扩容方法 - Google Patents
一种分布式数据库的在线扩容方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, 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中在表扩容期间容忍有数据库节点故障,且不影响扩容的进度。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111061737A (zh) * | 2019-12-12 | 2020-04-24 | 税友软件集团股份有限公司 | 一种分布式数据库快速扩容装置 |
Citations (3)
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 |
-
2019
- 2019-08-27 CN CN201910794674.6A patent/CN110502582B/zh active Active
Patent Citations (3)
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)
Title |
---|
YUANQUAN FAN 等: "A heterogeneity-aware data distribution and rebalance method in Hadoop cluster", 《2012 SEVENTH CHINAGRID ANNUAL CONFERENCE》 * |
尧海昌 等: "面向轨道交通集群调度系统的数据分片中间件的研究", 《南京工业职业技术学院学报》 * |
Cited By (2)
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 |