掌桥专利:专业的专利平台
掌桥专利
首页

一种数据库的计算资源扩缩方法、装置、设备及存储介质

文献发布时间:2024-04-18 20:01:23


一种数据库的计算资源扩缩方法、装置、设备及存储介质

技术领域

本申请实施例涉及云计算技术领域,涉及但不限于一种数据库的计算资源扩缩方法、装置、设备及存储介质。

背景技术

大数据时代的来临,各类应用程序对于关系型和非关系型各类型数据库的需求不断增加,并且云数据库服务以其远低于自建数据库所需的成本优势,越来越多的云服务商都提供了云数据库服务。云数据库是指被优化或部署到一个虚拟计算环境中的数据库,可以实现按需付费、按需扩展、高可用性以及存储整合等优势。随着云数据库市场规模的不断扩大,云数据库相应的底层集群规模也在不断的增加,导致硬件利用率低,资源难以做到真正按需使用、弹性扩展,从而带来了更高的运营成本。

现有云数据库集群在对规格进行升降级的过程中,频繁的升降级会对云数据库集群的稳定性造成影响,错误扩容或缩容会导致问题数据。

发明内容

有鉴于此,本申请实施例为解决现有技术中存在的至少一个问题而提供一种数据库的计算资源扩缩方法、装置、设备及存储介质,至少解决了现有技术中在对规格进行升降级的过程中,频繁的升降级会对云数据库集群的稳定性造成影响,错误扩容或缩容会导致问题数据的问题。

本申请实施例的技术方案是这样实现的:

第一方面,本申请实施例提供一种数据库的计算资源扩缩方法,所述方法包括:在预设时间段内获取所述计算资源的每秒事务数TPS、每秒请求查询次数QPS和每分钟内系统处理的新订单个数tpmC;基于所述TPS、所述QPS和所述tpmC,确定所述预设时间段内的业务波动指标,其中,所述业务波动指标用于表征所述计算资源的业务负载在所述预设时间段内的波动;在确定所述业务波动指标大于业务波动阈值的情况下,对所述计算资源进行扩容或者缩容。

第二方面,本申请实施例提供一种数据库的计算资源扩缩装置,所述装置包括:获取模块,用于在预设时间段内获取所述计算资源的每秒事务数TPS、每秒请求查询次数QPS和每分钟内系统处理的新订单个数tpmC;确定模块,用于基于所述TPS、所述QPS和所述tpmC,确定所述预设时间段内的业务波动指标,其中,所述业务波动指标用于表征所述计算资源的业务负载在所述预设时间段内的波动;扩缩模块,用于在确定所述业务波动指标大于业务波动阈值的情况下,对所述计算资源进行扩容或者缩容。

第三方面,本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。

第四方面,本申请实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现上述方法。

本申请实施例中,利用tpmC、TPS和QPS计算在预设时间段内业务波动指标,并根据业务波动指标确定是否进行扩缩容。这样,基于计算得到的业务波动指标合理的调配负载计算单元,可以降低因错误扩容缩容导致的中断服务的问题,避免对数据库服务产生影响。解决现有技术中在对规格进行升降级的过程中,频繁的升降级会对云数据库集群的稳定性造成影响,错误扩容或缩容会导致问题数据的问题。根据用户业务负载实现数据库动态扩缩容,可以提高硬件设备利用率,在业务负载较高时扩容、在业务低谷时缩容以节省用户使用成本,真正实现用户按需付费,给用户带来更好的使用体验。

附图说明

图1为本申请实施例提供的一种数据库的计算资源扩缩方法的实现流程示意图;

图2为本申请实施例提供的一种数据库的计算资源扩缩方法的实现流程示意图;

图3为本申请实施例提供的一种数据库的计算资源扩缩方法的实现流程示意图;

图4A为本申请实施例提供的一种基于业务负载弹性扩缩的云数据库系统架构图;

图4B为本申请实施例提供的一种业务负载扩缩云数据库集群的内部逻辑流程图;

图4C为本申请实施例提供的一种根据业务负载新增计算单元的内部逻辑流程图;

图4D为本申请实施例提供的一种根据业务负载缩减计算单元的内部逻辑流程图;

图5为本申请实施例提供的数据库的计算资源扩缩装置的组成结构示意图;

图6为本申请实施例提供的一种电子设备的硬件实体示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对发明的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

在以下的描述中,所涉及的术语“第一第二第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一第二第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。

Kubernetes:简称K8s,可以实现容器集群的自动化部署、自动扩缩容、维护等功能,K8s上运行容器的最小资源调度单位是Pod。Pod控制器包括复制控制器(ReplicationController)、部署(DeployMent)、副本集(ReplicaSet)和StatefulSets,其中StatefulSets类似Deployments,用于管理有状态应用。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

应当理解,此处所描述的一些实施例仅仅用以解释本申请的技术方案,并不用于限定本申请的技术范围。

本申请实施例提供的一种数据库的计算资源扩缩方法,如图1所示,该方法包括:

步骤S110、在预设时间段内获取所述计算资源的每秒事务数TPS、每秒请求查询次数QPS和每分钟内系统处理的新订单个数tpmC;

这里,TPS(Transaction Per Second)表示每秒事务数;QPS(Query Per Second)表示每秒请求查询次数,可以直观的反映系统的性能,值越大表明服务器的吞吐量越大,同时服务器的负荷也往往越高。tpmC表示每分钟内系统处理的新订单个数,被广泛用于衡量计算机系统的事务处理能力,其中,tpm是系统每分钟处理的任务数(transactionsperminute)的简称;C指TPC中的C基准程序。

在实施过程中,可以先设置一个满足实际要求的预设时间段,在该预设时间段内可以反映出计算资源的负载变化,需要先获取该预设时间段内的多个时间点上的TPS、QPS和tpmC。

步骤S120、基于所述TPS、所述QPS和所述tpmC,确定所述预设时间段内的业务波动指标,其中,所述业务波动指标用于表征所述计算资源的业务负载在所述预设时间段内的波动;

在实施过程中,可以基于获取到的个时间点上的TPS、QPS和tpmC,确定该预设时间段的业务波动指标,该业务波动指标可以表征计算资源的业务负载在该预设时间段内的波动。

步骤S130、在确定所述业务波动指标大于业务波动阈值的情况下,对所述计算资源进行扩容或者缩容。

本申请实施例中,利用tpmC、TPS和QPS计算在预设时间段内业务波动指标,并根据业务波动指标确定是否进行扩缩容。这样,基于计算得到的业务波动指标合理的调配负载计算单元,可以降低因错误扩容缩容导致的中断服务的问题,避免对数据库服务产生影响。解决现有技术中在对规格进行升降级的过程中,频繁的升降级会对云数据库集群的稳定性造成影响,错误扩容或缩容会导致问题数据的问题。根据用户业务负载实现数据库动态扩缩容,可以提高硬件设备利用率,在业务负载较高时扩容、在业务低谷时缩容以节省用户使用成本,真正实现用户按需付费,给用户带来更好的使用体验。解决了现有技术中资源难以做到真正按需使用、弹性扩展,从而带来了更高的运营成本问题。

本申请实施例提供的一种数据库的计算资源扩缩方法,如图2所示,该方法包括:

步骤S210、在预设时间段内获取所述计算资源的每秒事务数TPS、每秒请求查询次数QPS和每分钟内系统处理的新订单个数tpmC;

步骤S220、将所述预设时间段划分为L个预设子时间段,其中,L为大于等于1的整数;

这里,可以根据实际需求将预设时间划分为更细致的时间单元,举例来说,在预设时间段为5分钟的情况下,可以将5分钟划分为5个子时间段,即,1分钟为1个预设子时间段。

步骤S230、获取第j个预设子时间段内的TPS、QPS和tpmC,其中,j为小于等于L的整数;

步骤S240、基于所述第j个预设子时间段内的TPS、QPS和tpmC,确定第j个预设子时间段对应的第一业务负载指标;

举例来说,每分钟的预设子时间段又可以按照60秒为单位计算,首先获取该60秒内的TPS、QPS和tpmC,然后基于该60秒内的TPS、QPS和tpmC确定每一分钟的预设子时间段对应的第一业务负载指标。

步骤S250、基于L个所述第一业务负载指标,确定所述预设时间段内的业务波动指标;

在预设时间段为5分钟的情况下,可以根据计算的最近5分钟时间范围的第一业务负载指标Q值,即L取值为5的情况下,可以取最近5分钟的Q值参与W的计算,与当前时刻越近的Q值计算权重越大,业务波动指标W的取值范围为[0,1],值越大反应第一业务负载指标Q波动幅度越大。

步骤S260、在确定所述业务波动指标大于业务波动阈值的情况下,对所述计算资源进行扩容或者缩容;

步骤S270、在所述业务波动指标小于等于业务波动阈值的情况下,保持所述计算资源不变。

第一业务负载指标波动幅度的绝对值未超过设定阈值,可以判定业务负载未出现明显波动,此时保持计算单元数量不变,不去水平、纵向扩缩计算资源。

本申请实施例中,首先将预设时间段划分为L个预设子时间段,然后基于所述第j个预设子时间段内的TPS、QPS和tpmC,确定第j个预设子时间段对应的第一业务负载指标,最后基于L个所述第一业务负载指标,确定所述预设时间段内的业务波动指标。这样,可以根据实际需求划分合适的预设子时间段,基于预设子时间段内的TPS、QPS和tpmC,有效获取到业务波动指标。

本申请实施例中,第一业务负载指标波动幅度的绝对值未超过设定阈值,可以判定业务负载未出现明显波动,此时保持计算单元数量不变,不去水平、纵向扩缩计算资源,以保持集群运行以及用户业务平稳。

上述步骤S240“基于所述第j个预设子时间段内的TPS、QPS和tpmC,确定第j个预设子时间段对应的第一业务负载指标”可以通过以下步骤实现:

步骤S241、获取N个第j预设子时间段内的第二业务负载指标,其中,所述第二业务负载指标是对所述TPS和所述QPS进行加权平均得到的,N为大于等于1的整数;

这里,P可以用来表示第二业务为负载指标,即与业务负载相关指标TPS、QPS的加权平均值,其计算公式(1)如下:

P=a·TPS+b·QPS (1);

其中,计算公式中采用了两个指标(TPS、QPS)的累加聚合值,a、b的权重取值分别为0.5和0.5,也可以自定义a、b的值设定计算权重。

步骤S242、基于所述N个第j预设子时间段内的第二业务负载指标和所述tpmC,确定所述第j预设子时间段内的的第一业务负载指标。

这里,可以基于以下公式(2)确定第一业务负载指标Q:

其中,M表示数据点的个数,P

本申请实施例中,对所述TPS和所述QPS进行加权平均,有效得到的第二业务负载指标;基于所述N个第j预设子时间段内的第二业务负载指标和所述tpmC,有效确定所述第j预设子时间段内的的第一业务负载指标。

上述步骤S242“基于所述N个第j预设子时间段内的第二业务负载指标和所述tpmC,确定所述第j预设子时间段内的第一业务负载指标”可以通过以下步骤实现:

步骤S2421、从所述N个第j预设子时间段内的第二业务负载指标中确定符合预设要求的M个所述第二业务负载指标,其中,M为小于等于N的整数;

为了消除第二业务负载指标P在某一时点由于数据点采集误差,或者TPS和QPS值异常大或者异常小导致指标值不完全有效而带来的计算误差,可以从N个第j预设子时间段内的第二业务负载指标中确定符合预设要求的M个所述第二业务负载指标。

步骤S2422、基于M个所述第二业务负载指标和所述tpmC,确定所述第j预设子时间段内的第一业务负载指标。

本申请实施例中,确定符合预设要求的M个所述第二业务负载指标,可以将TPS和QPS值异常大或者异常小的第二业务负载指标剔除,以减少计算误差。

上述步骤S2421“从所述N个第j预设子时间段内的第二业务负载指标中确定符合预设要求的M个所述第二业务负载指标”可以通过以下步骤实现:

步骤A、对所述N个第j预设子时间段内的第二业务负载指标做平均,得到在所述第j子时间段内的所述第二业务负载指标的平均值;

步骤B、基于所述N个第j预设子时间段内的第二业务负载指标和所述第二业务负载指标的平均值,得到在所述第j预设子时间段内的所述第二业务负载指标的方差;

步骤C、基于所述第二业务负载指标的平均值和所述第二业务负载指标的方差,在所述第j预设子时间段内从N个所述第二业务负载指标中确定M个所述第二业务负载指标。

举例来说,在预设子时间段为1分钟的情况下,可以通过计算最近1分钟内按照1s的时间间隔计算第二业务负载指标P值、均值

本申请实施例中,通过计算第二业务负载指标P值、均值

本申请实施例提供的一种数据库的计算资源扩缩方法,如图3所示,该方法包括:

步骤S310、在预设时间段内获取所述计算资源的每秒事务数TPS、每秒请求查询次数QPS和每分钟内系统处理的新订单个数tpmC;

步骤S320、将所述预设时间段划分为L个预设子时间段,其中,L为大于等于1的整数;

步骤S330、获取第j个预设子时间段内的TPS、QPS和tpmC,其中,j为小于等于L的整数;

步骤S340、基于所述第j个预设子时间段内的TPS、QPS和tpmC,确定第j个预设子时间段对应的第一业务负载指标;

步骤S350、获取L个所述第一业务负载指标中第j+1个预设子时间段内的第一业务负载指标与所述第j个预设子时间段内的第一业务负载指标的差值和加和值;

步骤S360、对L个所述差值除以所述加和值的值,进行加权求和运算得到所述预设时间段内的业务波动指标;

可以使用以下公式(3)计算预设时间段内的业务波动指标W:

其中,Q

步骤S370、在所述业务波动指标大于业务波动阈值的情况下,获取在所述L个预设子时间段内第L个子时间段对应的第一业务负载指标和第L-1个子时间段对应的第一业务负载指标;

步骤S380、在确定所述第L个子时间段对应的第一业务负载指标大于所述第L-1个子时间段对应的第一业务负载指标的情况下,对所述计算资源进行扩容;

在确定业务负载异常波动,并且当前第一业务负载指标Q值大于前一分钟的第一业务负载指标Q值,可以判定业务负载出现异常上升,对所述计算资源进行扩容。

步骤S390、在确定所述第L个子时间段对应的第一业务负载指标小于所述第L-1个子时间段对应的第一业务负载指标的情况下,对所述计算资源进行缩容。

在确定业务负载异常波动,并且当前第一业务负载指标Q值小于前一分钟的第一业务负载指标Q值,可以判定业务负载出现异常下降,对所述计算资源进行缩容。

本申请实施例中,首先获取L个所述第一业务负载指标中第j+1个预设子时间段内的第一业务负载指标与所述第j个预设子时间段内的第一业务负载指标的差值和加和值,然后对L个所述差值除以所述加和值的值,进行加权求和运算,可以有效得到所述预设时间段内的业务波动指标。

本申请实施例中,在确定业务负载异常波动,并且当前第一业务负载指标Q值大于前一分钟的第一业务负载指标Q值,可以判定业务负载出现异常上升,对所述计算资源进行扩容;在确定业务负载异常波动,并且当前第一业务负载指标Q值小于前一分钟的第一业务负载指标Q值,可以判定业务负载出现异常下降,,对所述计算资源进行缩容。

云数据库的服务可以以Pod的形式运行于K8s集群中,水平自动扩缩是指可以增加或减少K8s资源的副本数量,纵向扩缩是指可以改变Pod的中央处理器(CentralProcessing Unit,CPU)和内存资源大小,以达到对集群扩缩容的目的。Pod水平自动扩缩(Horizontal Pod Autoscaler)可以基于CPU利用率自动扩缩ReplicationController、Deployment、ReplicaSet和StatefulSet中的Pod数量。除了CPU利用率,也可以基于其他应程序提供的自定义度量指标来执行自动扩缩。

现有技术方案想要根据用户业务负载实现数据库的动态扩缩容,通常采用水平、纵向扩缩的方式升级或者降级云数据库集群的副本或规格。由于数据库集群的扩缩容的过程中,直接扩展或收缩ReplicationController、Deployment、ReplicaSet和StatefulSet中的Pod数量或规格,将不可避免出现业务闪断或间歇性中断,严重时可能会导致数据库存储数据丢失,这也将对用户现有业务产生难以预估的影响。

现有技术存在以下缺点:

(1)采用升级或者降级云数据库集群规格的方式,由于数据库集群的扩缩容的过程中,不可避免出现业务闪断或间歇性中断;

(2)云数据库集群规格升降级过程中,可能会对数据库持久化数据造成丢失或产生数据不一致问题。特别是在降级过程中,可能导致集群降级失败导致集群异常不可用情况,甚至会对用户数据产生难以预估的影响。

随着技术的进步,网络带宽也变得越来越快,网络带宽也不再是影响数据处理的瓶颈,但是计算机的磁盘输入/输出(Input/Output,I/O)速度却没有得到明显的增长,计算和存储融合的架构缺点也再逐渐暴露。由于计算和存储耦合的缺点越来越多,并且网络速度越来越快,现在架构又在重新向计算和存储分离这一方向重新开始发展。“计算和存储分离”是未来数据库的主要发展方向。

本申请实施例提供一种基于业务负载弹性扩缩的云数据库系统架构图,如图4A所示,该系统架构图包括:连接处理单元41、监测单元42、计算资源43和存储单元44,其中,

连接处理单元41,用于流量转发到相应的云数据库的计算资源43。连接处理单元41与用户直接相连,这样用户不需要直接连接底层数据库;用户可以通过连接处理单元41了解整个云数据库后台服务的变化,以使得整个云数据库后台服务对用户完全透明。

监测单元42,用于实时统计业务负载、CPU、内存消耗情况,再根据计算资源43的副本数量以及计算资源43相应监测指标,作出纵向或水平扩缩的操作。在整个扩缩过程中,由于不涉及到云数据库的存储单元44,故不会对持久化数据库产生任何影响。

计算资源43,用于完成云数据库的计算任务,包括A、B……N等多个计算单元。

存储单元44,用于存储云数据库中的数据。

本申请提供的云数据库系统架构采用计算和存储分离,基于实际负载情况进行自动扩缩容,可应用于具有不频繁、间歇性或不可预见工作负载的开发和测试环境、网站和应用程序,根据实际使用量进行计费,大幅度节省数据库成本。云数据库的计算资源是无状态服务,用于处理用户的数据库读写请求,解析相应的SQL语法,并与存储单元交互,获取、更新存储单元存储的数据库数据。

本申请实施例提供的一种业务负载扩缩云数据库集群的内部逻辑流程图,如图4B所示,该方法包括:

步骤S410、用户连接云数据库系统;

首先,需要初始化云数据库集群的计算资源;在一些实施例中,云数据库在初始化的情况下,可以配置计算资源CPU、内存梯度上升的N种不同档次的规格,举例来说,可以配置CPU1核内存2Gi、CPU2核内存4Gi、CPU4核内存16Gi、CPU8核内存64Gi。还可以配置计算资源数量上下限,举例来说,可以配置计算资源的数量上限为N、下限为1。

在一些实施例中,可以最初仅创建一个最小的第一档规格的计算单元,用户请求均被转发至仅存的计算单元上。在实施过程中,如图4A所示,可以创建一个最小的第一档规格的计算单元A,用户请求可以通过连接处理单元41转发至计算单元43中的计算单元A。

然后,创建云数据库集群的连接处理单元和监测单元;其中,监测单元实时统计业务负载、以及各个计算单元的CPU和内存消耗监控指标。在实施过程中,如图4A所示,检测单元42可以实施统计业务负载,各计算单元(例如A、B)的CPU和内存消耗监控指标。

步骤S420、连接处理单元获取时间段内业务负载;

这里,业务负载包括第一业务负载指标和第二业务负载指标。

在一些实施例中,可以用P来表示第二业务负载指标,即与业务负载相关指标TPS、QPS的加权平均值,其计算公式(1)如下:

P=a·TPS+b·QPS (1);

其中,TPS(Transaction Per Second)表示每秒事务数;QPS(Query Per Second)表示每秒请求查询次数,可以直观的反映系统的性能,值越大表明服务器的吞吐量越大,同时服务器的负荷也往往越高。计算公式中采用了两个指标(TPS、QPS)的累加聚合值,其中a、b的权重取值分别为0.5和0.5,也可以自定义a、b的值设定聚合时间范围和计算权重。

为了消除第二业务负载指标P在某一时点由于数据点采集误差,或者TPS和QPS值异常大或者异常小导致指标值不完全有效而带来的计算误差。在预设子时间段为1分钟的情况下,可以通过计算最近1分钟内按照1s的时间间隔计算监测指标采样点对应的P值、均值

其中,第一业务负载指标Q值由反应时间范围内负载的波动幅度因子以及业务负载的大小因子确定,在一些实施例中,业务负载变化波动越大,业务负载越大,对应的第一业务负载指标Q越大。

在预设时间段为5分钟的情况下,可以根据计算的最近5分钟时间范围的第一业务负载指标Q值,计算业务波动指标W可以使用以下公式(3):

其中,Q

步骤S430、判断业务负载是否异常波动;

判断业务波动指标W与设定允许的波动阈值(例如,波动阈值可以取0.25)作比较。

步骤S440、连接处理单元连接至计算资源;

第一业务负载指标波动幅度的绝对值未超过设定阈值,可以判定业务负载未出现明显波动,此时保持计算单元数量不变,不去水平、纵向扩缩计算资源,举例来说,业务波动指标W小于或等于0.25,可以确定业务负载没有异常波动。

在在确定业务负载没有异常波动的情况下,连接处理单元将SQL操作语句转发至计算资源,计算资源查询存储单元获取数据。最终,连接处理单元将最终结果返回给用户。

步骤S450、在确定业务负载异常波动的情况下,新增或者缩减计算单元的数量;

步骤S460、返回请求结果。

本申请实施例中,包括如下方面:

(1)一种弹性扩缩服务不中断的云数据库系统;

(2)基于业务负载,按照梯度档次规格新增、缩减计算单元副本数量的方案,从而降低集群扩缩频次,保持集群平稳;

(3)业务负载指标如果波动幅度的绝对值未超过设定阈值,此时保持计算单元数量不变,不去水平、纵向扩缩计算单元。

具有以下有益技术效果:

(1)某时间段业务负载指标如果波动幅度的绝对值未超过设定阈值,此时保持计算单元数量不变,不去水平、纵向扩缩计算单元,以保持集群运行以及用户业务平稳;

(2)采用梯度档次规格新增、缩减计算单元副本数量的方案,从而应对在业务负载出现急剧上升过程中,集群对应计算能力不足以支撑业务情形;

(3)整个集群在扩缩过程中,特别是在降级过程中,始终不中断服务,避免对数据库服务产生影响。

图4C为本申请实施例提供的一种根据业务负载新增计算单元的内部逻辑流程图,如图4C示,包括以下步骤:

步骤S410、用户连接云数据库系统;

步骤S420、连接处理单元获取时间段内业务负载;

步骤S430、判断业务负载是否异常波动;

在确定业务负载异常波动的情况下,执行步骤S451;在确定业务负载未异常波动的情况下,执行步骤S455。

步骤S451、确定计算资源是否临近阈值;

在确定业务负载异常波动,并且当前第一业务负载指标Q值大于前一分钟的第一业务负载指标Q值,可以判定业务负载出现异常上升时:当连接处理单元检测到第一业务负载指标Q出现明显上升的情况下,通过查询计算资源中各个计算单元监测的指标,检测每个计算单元资源出现紧张是否超过设定阈值,举例来说,计算单元CPU使用率超过90%则认定超过设定阈值,或者内存使用率超过80%认定超过设定阈值。

在确定计算资源超过设定阈值,执行步骤S452;在确定计算资源没有超过设定阈值,选择空闲的计算单元,并跳转至步骤S455。

步骤S452、确定计算单元的数量是否超过上限;

在实施过程中,如果计算资源中的所有计算单元均超过临近阈值,需要连接处理单元判断计算单元的数量是否超过上限,执行步骤S453;在确定计算单元的数量未超过上限的情况下,执行步骤S454。

步骤S453、确定空闲计算单元是否超时;

在实施过程中,如果计算单元数量超过上限,连接处理单元在允许超时的时间内等待空闲计算单元。

连接处理单元在允许超时的时间内找到空闲计算单元,并将用户SQL操作请求转发至空闲计算单元,跳转执行步骤S455。

连接处理单元在允许超时的时间内未能找到空闲计算单元,则连接处理单元直接返回请求超时,跳转执行步骤S460。

步骤S454、确定新增计算单元的数量;

在实施过程中,如果计算单元数量未超过上限,可以在计算资源中新增一个更高档规格的计算单元,连接处理单元会将新的数据库连接转发至新的计算单元上。

步骤S455、连接至空闲计算单元;

步骤S460、返回请求结果。

本申请实施例中,提供了一种根据业务负载新增计算单元的方法。这样,采用梯度档次规格新增计算单元副本数量的方案,可以应对在业务负载出现急剧上升过程中,集群对应计算能力不足以支撑业务情形。

图4D为本申请实施例提供的一种根据业务负载缩减计算单元的内部逻辑流程图,如图4D所示,包括以下步骤:

步骤S410、用户连接云数据库系统;

步骤S420、连接处理单元获取时间段内业务负载;

步骤S430、判断业务负载是否异常波动;

步骤S456、确定计算资源是否空闲;

在确定业务负载异常波动,并且当前第一业务负载指标Q值小于前一分钟的第一业务负载指标Q值,可以判定业务负载出现异常下降时:当连接处理单元检测到业务负载出现明显下降时,通过查询各个计算单元监测的监测指标,检测到现有计算单元资源是否空闲。

在确定计算资源空闲的情况下,执行步骤S457;在确定计算资源未空闲的情况下,执行步骤S440。

步骤S457、转移计算单元的连接;

在实施过程中,可以执行以下步骤:

A、在确定计算资源空闲的情况下,此时连接处理单元会将最高规格档次的计算单元上的连接逐步转移至最小规格档次计算单元上,新的连接也转发至最小规格档次计算单元上,然后继续执行步骤B;

B、检测到转发到的计算单元资源是否超过设定阈值;

a、若计算单元资源超过设定阈值,再将该规格档次对应的计算单元上的连接以及新的连接转发至更高一等级规格计算单元上,然后跳转至步骤B判断资源是否超过设定阈值;

b、若计算单元资源未超过设定阈值,则将用户SQL操作请求转发至该计算单元,执行步骤S458。

步骤S458、确定计算单元是否存在连接;

当前存在的计算资源中规格档次最高的计算单元,判断其是否存在连接。若存在连接,则跳转至步骤S440;在确定计算单元不存在连接的情况下,执行步骤S459。

步骤S459、缩减计算单元;

若不存在连接,则缩减当前存在的计算单元中规格档次最高的计算单元,执行步骤S440。

步骤S440、连接至计算单元;

步骤S460、返回请求结果。

本申请实施例中,提供了一种根据业务负载缩减计算单元的方法,这样,在降级过程中,始终不中断服务,可以有效避免对数据库服务产生影响。

基于前述的实施例,本申请实施例提供一种数据库的计算资源扩缩装置,该装置包括所包括的各模块,各模块包括各子模块,各子模块包括单元,各单元包括各子单元,可以通过电子设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。

图5为本申请实施例提供的一种数据库的计算资源扩缩装置的组成结构示意图,如图5所示,所述装置500包括:

获取模块510,用于在预设时间段内获取所述计算资源的每秒事务数TPS、每秒请求查询次数QPS和每分钟内系统处理的新订单个数tpmC;

确定模块520,用于基于所述TPS、所述QPS和所述tpmC,确定所述预设时间段内的业务波动指标,其中,所述业务波动指标用于表征所述计算资源的业务负载在所述预设时间段内的波动;

扩缩模块530,用于在确定所述业务波动指标大于业务波动阈值的情况下,对所述计算资源进行扩容或者缩容。

在一些实施例中,所述确定模块包括划分子模块、第一获取子模块、第一确定子模块和第二确定子模块,其中,所述划分子模块,用于将所述预设时间段划分为L个预设子时间段,其中,L为大于等于1的整数;所述第一获取子模块,用于获取第j个预设子时间段内的TPS、QPS和tpmC,其中,j为小于等于L的整数;所述第一确定子模块,用于基于所述第j个预设子时间段内的TPS、QPS和tpmC,确定第j个预设子时间段对应的第一业务负载指标;所述第二确定子模块,用于基于L个所述第一业务负载指标,确定所述预设时间段内的业务波动指标。

在一些实施例中,所述第一确定子模块包括第一获取单元和确定单元,其中,所述第一获取单元,用于获取N个第j预设子时间段内的第二业务负载指标,其中,所述第二业务负载指标是对所述TPS和所述QPS进行加权平均得到的,N为大于等于1的整数;所述确定单元,用于基于所述N个第j预设子时间段内的第二业务负载指标和所述tpmC,确定所述第j预设子时间段内的第一业务负载指标。

在一些实施例中,所述确定单元包括第一确定子单元和第二确定子单元,其中,所述第一确定子单元,用于从所述N个第j预设子时间段内的第二业务负载指标中确定符合预设要求的M个所述第二业务负载指标,其中,M为小于等于N的整数;所述第二确定子单元,用于基于M个所述第二业务负载指标和所述tpmC,确定所述第j预设子时间段内的第一业务负载指标。

在一些实施例中,所述第一确定子单元用于对所述N个第j预设子时间段内的第二业务负载指标做平均,得到在所述第j子时间段内的所述第二业务负载指标的平均值;基于所述N个第j预设子时间段内的第二业务负载指标和所述第二业务负载指标的平均值,得到在所述第j预设子时间段内的所述第二业务负载指标的方差;基于所述第二业务负载指标的平均值和所述第二业务负载指标的方差,在所述第j预设子时间段内从N个所述第二业务负载指标中确定M个所述第二业务负载指标。

在一些实施例中,所述第二确定子模块包括第二获取单元和加权求和运算单元,其中,所述第二获取单元,用于获取L个所述第一业务负载指标中第j+1个预设子时间段内的第一业务负载指标与所述第j个预设子时间段内的第一业务负载指标的差值和加和值;所述加权求和运算单元,用于对L个所述差值除以所述加和值的值,进行加权求和运算得到所述预设时间段内的业务波动指标。

在一些实施例中,所述扩缩模块包括第二获取子模块、扩容子模块和缩容子模块,其中,所述第二获取子模块,用于在所述业务波动指标大于业务波动阈值的情况下,获取在所述L个预设子时间段内第L个子时间段对应的第一业务负载指标和第L-1个子时间段对应的第一业务负载指标;所述扩容子模块,用于在确定所述第L个子时间段对应的第一业务负载指标大于所述第L-1个子时间段对应的第一业务负载指标的情况下,对所述计算资源进行扩容;所述缩容子模块,用于在确定所述第L个子时间段对应的第一业务负载指标小于所述第L-1个子时间段对应的第一业务负载指标的情况下,对所述计算资源进行缩容。

在一些实施例中,所述装置还包括保持模块,用于在所述业务波动指标小于等于业务波动阈值的情况下,保持所述计算资源不变。

以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备(可以是手机、平板电脑、笔记本电脑、台式计算机等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。

对应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的数据库的计算资源扩缩方法中的步骤。

对应地,本申请实施例提供一种电子设备,图6为本申请实施例提供的一种电子设备的硬件实体示意图,如图6所示,该设备600的硬件实体包括:包括存储器601和处理器602,所述存储器601存储有可在处理器602上运行的计算机程序,所述处理器602执行所述程序时实现上述实施例中提供的数据库的计算资源扩缩方法中的步骤。

存储器601配置为存储由处理器602可执行的指令和应用,还可以缓存待处理器602以及电子设备600中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random AccessMemory,RAM)实现。

这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备(可以是手机、平板电脑、笔记本电脑、台式计算机等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。

本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。

本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。

本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。

以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 电子地图标注及显示方法、装置、终端设备及存储介质
  • 密码生成方法、装置、存储介质、电子锁、服务器及终端
  • 基于聊天日志的摘要生成方法及装置、存储介质及电子终端
  • 误告警信息识别方法及装置、存储介质、电子终端
  • 电子支付方法及装置、移动终端及可读存储介质
  • 选色方法、终端、电子装置和存储介质
  • 一种色噪抑制方法、色噪抑制装置、电子设备及存储介质
技术分类

06120116547091