分布式数据库中无状态计算层快速扩容或缩容的方法技术

技术编号:31171650 阅读:67 留言:0更新日期:2021-12-04 13:35
本发明专利技术涉及一种分布式数据库中无状态计算层快速扩容或缩容的方法,其特征在于包括扩容过程或缩容过程,其中:扩容过程:不增加数据库计算实例,将已存在的计算实例调度至集群新增的计算节点上;或者,增加数据库中的计算实例,将原先映射给其它计算实例的数据分片重新划拨给新增加的计算实例;缩容过程:不减少计算实例,将某些节点上的计算实例全部调度至剩余的节点中;或者,减少计算实例,将被缩掉的计算实例所对应的存储分片划拨给剩余的计算实例。本发明专利技术无需对数据进行重新分布,就可以对数据库中的计算实例进行扩容或者缩容,大幅提升计算层的扩容缩容速度。升计算层的扩容缩容速度。升计算层的扩容缩容速度。

【技术实现步骤摘要】
分布式数据库中无状态计算层快速扩容或缩容的方法


[0001]本专利技术是关于一种分布式数据库中无状态计算层快速扩容或缩容的方法,涉及分布式数据库


技术介绍

[0002]目前,分布式数据库通常采用存储与计算绑定的结构。即计算实例与存储分片部署在同一个节点上。这种结构虽然有利于计算实例对于数据的读写,但是不利于应对存储与计算资源需求的快速变化。对于扩容缩容的操作,同样很难应对。
[0003]如图1所示,当前数据库存在两个计算节点,每个计算节点上各有一个计算实例(一个节点上通常有多个实例,这里为了简化,此处只列举一个实例)。当需要再扩容一个计算节点时,除了要在新增加的计算节点上启动一个计算实例以外,还需要对数据分片1,数据分片2重新计算hash,以便重新生成三个计算分片分为对应三个计算实例。这种扩容操作涉及大量的计算和IO操作,会耗费很多时间。

技术实现思路

[0004]针对上述问题,本专利技术的目的之一是提供一种无需数据重新分布的分布式数据库中无状态计算层快速扩容或缩容的方法。
[0005]本专利技术的目的之二是提供一种分布式数据库中无状态计算层快速扩容或缩容的系统。
[0006]本专利技术的目的之三是提供一种电子设备。
[0007]本专利技术的目的之四是提供一种计算机存储介质。
[0008]为实现上述目的,本专利技术采取以下技术方案:
[0009]第一方面,一种分布式数据库中无状态计算层快速扩容或缩容的方法,其特征在于包括扩容过程或缩容过程,其中:扩容过程:不增加数据库计算实例,将已存在的计算实例调度至集群新增的计算节点上;或者,增加数据库中的计算实例,将原先映射给其它计算实例的数据分片重新划拨给新增加的计算实例;缩容过程:不减少计算实例,将某些节点上的计算实例全部调度至剩余的节点中;或者,减少计算实例,将被缩掉的计算实例所对应的存储分片划拨给剩余的计算实例。
[0010]所述的分布式数据库中无状态计算层快速扩容或缩容的方法,进一步地,不增加数据库计算实例,将已存在的计算实例调度至集群新增的计算节点上,包括:
[0011]调度计算实例,即将一个计算实例从一个计算节点转移到新的计算节点;
[0012]仅修改计算实例与数据分片的映射关系,无需对存储层进行修改。
[0013]所述的分布式数据库中无状态计算层快速扩容或缩容的方法,进一步地,不增加数据库计算实例,将已存在的计算实例调度至集群新增的计算节点上的具体过程包括:
[0014]安装新的计算节点;
[0015]在集群元数据中创建新的计算实例与数据分片的映射关系,将已存在的计算实例
调度至新的计算节点上;
[0016]在新的计算节点上启动新调度的计算实例;
[0017]通知所有计算实例更新映射关系缓存,其中在新的映射关系中,新调度的计算实例仍访问原来的数据分片;
[0018]通知所有协调实例更新映射关系缓存,此时如果集群有新的SQL执行,协调实例会将执行调度到新的计算节点上的计算实例;
[0019]等待依赖旧的映射关系的SQL执行结束;
[0020]执行结束后,计算实例和协调实例清理各自的映射关系缓存,同时更新集群元数据中的映射关系的引用计数;
[0021]将运行在原计算节点上已调度的计算实例停止掉。
[0022]所述的分布式数据库中无状态计算层快速扩容或缩容的方法,进一步地,增加数据库中的计算实例,并将原先映射给其它计算实例的数据分片重新划拨给新增加的实例包括:
[0023]增加新的计算节点,并在新的计算节点上增加新的计算实例;
[0024]仅修改计算实例与数据分片的映射关系,无需对存储层进行修改。
[0025]所述的分布式数据库中无状态计算层快速扩容或缩容的方法,进一步地,增加数据库中的计算实例,并将原先映射给其它计算实例的数据分片重新划拨给新增加的实例的具体过程为:
[0026]安装新的计算节点;
[0027]在集群元数据中创建新的计算实例与数据分片的映射关系;
[0028]在新的计算节点上启动新的计算实例;
[0029]通知所有计算实例更新映射关系缓存,此时,如果集群有新的SQL执行,计算实例会按照新的映射关系去访问对应的数据分片;
[0030]通知所有协调实例更新映射关系缓存,此时,如果集群有新的SQL执行,协调实例会将新的计算实例纳入执行实例集合中;
[0031]等待依赖旧的映射关系的SQL执行结束,执行结束后,计算实例和协调实例清理各自的映射关系缓存,同时更新集群元数据中的映射关系的引用计数。
[0032]第二方面,本专利技术还提供一种分布式数据库中无状态计算层快速扩容或缩容的系统,包括扩容单元或缩容单元;所述扩容单元被配置为:不增加数据库计算实例,将已存在的计算实例调度至集群新增的计算节点上;或者增加数据库中的计算实例,并将原先映射给其它计算实例的数据分片重新划拨给新增加的实例;所述缩容单元被配置为:不减少计算实例,将某些节点上的计算实例全部调度至剩余的节点中;或者减少计算实例,将被缩掉的计算实例所对应的存储分片划拨给剩余的计算实例。
[0033]第三方面,本专利技术还提供一种电子设备,所述电子设备至少包括处理器和存储器,所述存储器上存储有计算机程序,其特征在于,所述处理器运行所述计算机程序时执行以实现所述的方法。
[0034]第四方面,本专利技术还提供一种计算机存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现所述的方法。
[0035]本专利技术由于采取以上技术方案,其具有以下优点:
[0036]1、本专利技术在云计算日益流行的背景下,基于分布式数据库日益流行的存储与计算相分离的架构的基础上,提出的对于计算层快速扩容或缩容的方法,本专利技术无需对数据进行重新分布,就可以对数据库中的计算实例进行扩容或者缩容,大幅提升计算层的扩容或缩容速度;
[0037]2、本专利技术的数据库中存储多份计算实例与数据分片的映射关系,不同的SQL可采用不同的映射关系,在计算层扩容或缩容的同时,可以执行业务操作,不用停机;
[0038]综上,本专利技术可以广泛用于分布式数据库中。
附图说明
[0039]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。在整个附图中,用相同的附图标记表示相同的部件。在附图中:
[0040]图1为现有技术的分布式数据库结构示意图;
[0041]图2为本专利技术实施例在扩容之前数据库的结构图;
[0042]图3为本专利技术实施例使用方法1对计算层进行扩容后的数据库结构图;
[0043]图4为本专利技术实施例使用方法2对计算层进行扩容后的数据库结构图;
[0044]图5为本专利技术实施例的电子设备硬件结构图。
具体实施方式
[0045]下面将参照附图本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式数据库中无状态计算层快速扩容或缩容的方法,其特征在于包括扩容过程或缩容过程,其中:扩容过程:不增加数据库计算实例,将已存在的计算实例调度至集群新增的计算节点上;或者,增加数据库中的计算实例,将原先映射给其它计算实例的数据分片重新划拨给新增加的计算实例;缩容过程:不减少计算实例,将某些节点上的计算实例全部调度至剩余的节点中;或者,减少计算实例,将被缩掉的计算实例所对应的存储分片划拨给剩余的计算实例。2.根据权利要求1所述的分布式数据库中无状态计算层快速扩容或缩容的方法,其特征在于,不增加数据库计算实例,将已存在的计算实例调度至集群新增的计算节点上,包括:调度计算实例,即将一个计算实例从一个计算节点转移到新的计算节点;仅修改计算实例与数据分片的映射关系,无需对存储层进行修改。3.根据权利要求2所述的分布式数据库中无状态计算层快速扩容或缩容的方法,其特征在于,不增加数据库计算实例,将已存在的计算实例调度至集群新增的计算节点上的具体过程包括:安装新的计算节点;在集群元数据中创建新的计算实例与数据分片的映射关系,将已存在的计算实例调度至新的计算节点上;在新的计算节点上启动新调度的计算实例;通知所有计算实例更新映射关系缓存,其中在新的映射关系中,新调度的计算实例仍访问原来的数据分片;通知所有协调实例更新映射关系缓存,此时如果集群有新的SQL执行,协调实例会将执行调度到新的计算节点上的计算实例;等待依赖旧的映射关系的SQL执行结束;执行结束后,计算实例和协调实例清理各自的映射关系缓存,同时更新集群元数据中的映射关系的引用计数;将运行在原计算节点上已调度的计算实例停止掉。4.根据权利要求1所述的分布式数据库中无状态计算层快速扩容或缩容的方法,其特征在于,增加数据库中的计算实例,并将原先映射给其它计算实例的数据分片...

【专利技术属性】
技术研发人员:何新敏王伟哲付威
申请(专利权)人:北京东方金信科技股份有限公司
类型:发明
国别省市:

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

1