一种用于数据库集群业务分割优化的方法和系统的制作方法

文档序号:9750647阅读:346来源:国知局
一种用于数据库集群业务分割优化的方法和系统的制作方法
【技术领域】
[0001] 本发明涉及数据库技术领域,尤其涉及一种用于数据库集群业务分割优化的方法 和系统。
【背景技术】
[0002] 数据库技术的发展一直为企业信息化的进程提供了坚实的基础,是IT基础设施建 设的关键领域,而随着企业级应用的数据积累以及需求的发展,导致了应用对数据库处理 能力的需求逐年增加。在单一主机的性能无法满足大量业务请求的场景下,集群数据库为 企业应用横向扩展提供了及时的支持,其在满足企业业务系统的性能和可扩展性需求的同 时,还具备了高可用性,因而在企业关键业务系统中逐渐成为了标准配置。
[0003] 随着集群数据库的大量应用,单个集群中的节点数量也相应增加,而由于集群数 据库的基本原理,导致当不同的节点请求相同的数据块时会发生内存融合(Cache Fusion),即通过节点间的私有网络进行节点内存的数据交换,由此产生GC(global cache) 类的等待事件也逐渐成为集群数据库的首要问题。尤其是,当节点数较多,而在多个节点上 的业务请求同时访问相同数据的场景下,GC等待往往经常出现在前5位等待事件中,成为系 统的主要瓶颈。
[0004] 目前,针对上述问题的优化方法为从应用的角度下手,将业务进行分割。分割的依 据主要是从数据这个维度来考虑,原则是让不同的子业务系统使用的数据尽量没有交集。 当这些子业务分布到不同的数据库节点上时,分别在各自运行的节点上访问自己相对私有 的数据,就会最大限度的避免内存融合的发生,从根本上解决了 GC等待的问题。
[0005] 但是,以上的场景是比较理想化的情况,真实的应用系统中往往做不到完全没有 依赖的业务分割。

【发明内容】

[0006] 本发明实施例所要解决的技术问题在于,提供一种用于数据库集群业务分割优化 的方法和系统,能够优化业务分割,减少系统内部资源争用,提高业务运行速度,提升用户 体验。
[0007] 为了解决上述技术问题,本发明实施例提供了一种用于数据库集群业务分割优化 的方法,其在至少两个用于数据库集群业务运行的服务器上实现,所述方法包括: a、 指定一服务器为主节点以及指定除所述主节点之外的服务器为从节点,并获取所述 主节点当前CHJ负载能力及其数据库集群业务运行中所含等待服务; b、 当所述获取到的主节点当前CPU负载能力大于预设的第一阈值时,则根据所述获取 到的主节点等待服务,确定主节点的服务亲和度矩阵并计算,且待所述主节点的服务亲和 度矩阵的计算值小于预设的第二阈值时,将所述获取到的主节点等待服务动态扩展至所述 从节点上;其中,所述服务亲和度矩阵为由当前节点各服务之间的亲和度形成,且所述亲和 度为当前节点各服务对不同实例之间同一对象的加锁次数。
[0008] 其中,所述方法进一步包括: 当所述获取到的主节点当前CPU负载能力小于预设的第三阈值时,则所述获取到的主 节点等待服务依据一定比例迀移至所述主节点上。
[0009] 其中,所述步骤b还包括: 待所述主节点的服务亲和度矩阵的计算值大于预设的第四阈值时,获取每一从节点分 别对应的等待服务,且进一步根据所述获取到的每一从节点分别对应的等待服务,得到每 一从节点的服务亲和度矩阵并计算; 当任一从节点的服务亲和度矩阵的计算值大于所述预设的第四阈值时,则将所述计算 值大于所述预设的第四阈值的从节点作为第一耦合节点,则将所述主节点与所述第一耦合 节点之间的共享数据打散,实现所述主节点与所述第一耦合节点之间等待服务进行解耦。
[0010] 其中,所述方法进一步包括: 当任一从节点的服务亲和度矩阵的计算值小于所述预设的第二阈值时,则将所述计算 值小于所述预设的第二阈值的从节点作为第二耦合节点,并获取所述第二耦合节点当前 CHJ负载能力; 待所述获取到的第二耦合节点当前CPU负载能力小于所述预设的第三阈值时,则将所 述获取到的第二耦合节点等待服务依据一定比例迀移至所述耦合节点上; 待所述获取到的第二耦合节点当前CPU负载能力大于所述预设的第一阈值时,则将所 述获取到的第二耦合节点等待服务依据一定比例迀移至所述主节点上。
[0011] 其中,所述服务亲和度矩阵为三角矩阵。
[0012] 其中,所述CPU负载能力及等待服务均可通过数据库底层视图采集获得。
[0013] 其中,所述预设的第一阈值为85%;所述预设的第三阈值为50%。
[0014]其中,所述预设的第二阈值为数据库系统亲和性指标平均值的20%;所述预设的第 四阈值为所述数据库系统亲和性指标平均值的30%。
[0015] 本发明实施例还提供了一种用于数据库集群业务分割优化的系统,其在至少两个 用于数据库集群业务运行的服务器上实现,所述系统包括: 负载及等待服务获取单元,用于指定一服务器为主节点以及指定除所述主节点之外的 服务器为从节点,并获取所述主节点当前CPU负载能力及其数据库集群业务运行中所含等 待服务; 服务扩展单元,用于当所述获取到的主节点当前CHJ负载能力大于预设的第一阈值时, 则根据所述获取到的主节点等待服务,确定主节点的服务亲和度矩阵并计算,且待所述主 节点的服务亲和度矩阵的计算值小于预设的第二阈值时,将所述获取到的主节点等待服务 动态扩展至所述从节点上;其中,所述服务亲和度矩阵为由当前节点各服务之间的亲和度 形成,且所述亲和度为当前节点各服务对不同实例之间同一对象的加锁次数。
[0016] 其中,所述系统还包括: 服务迀移单元,用于当所述获取到的主节点当前CHJ负载能力小于预设的第一阈值时, 则所述获取到的主节点等待服务依据一定比例迀移至所述主节点上。
[0017] 实施本发明实施例,具有如下有益效果: 在本发明实施例中,由于根据各节点服务器的CPU负载能力及其所含等待服务,自定义 各节点服务器的服务亲和度矩阵,对任何存在资源争用的等待服务,能够快速及时的给出 服务调整建议,从而达到优化业务分割,减少系统内部资源争用,提高业务运行速度,提升 用户体验的目的。
【附图说明】
[0018] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,根据 这些附图获得其他的附图仍属于本发明的范畴。
[0019] 图1为本发明实施例提供的一种用于数据库集群业务分割优化的方法的流程图; 图2为本发明实施例提供的一种用于数据库集群业务分割优化的系统的结构示意图。
【具体实施方式】
[0020] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一 步地详细描述。
[0021] 如图1所示,为本发明实施例中,提供的一种用于数据库集群业务分割优化的方 法,其在至少两个用于数据库集群业务运行的服务器上实现,所述方法包括: 步骤S1、指定一服务器为主节点以及指定除所述主节点之外的服务器为从节点,并获 取所述主节点当前CPU负载能力及其数据库集群业务运行中所含等待服务; 具体过程为,指定数据库集群业务的主从服务器并分别作为主从节点,而衡量各节点 是否能动态容纳服务的主要指标为各节点是否有足够的处理能力,即包括负载能力及各服 务的等待事件。应当说明的是,各节点的CHJ负载能力及等待服务均可通过数据库底层视图 采集获得,且在一定时间间隔内获得,如15s。
[0022]因此,首先要获取主节点负载能力及等待服务,待评估主节点具体处理能力 (即主机负载)后,才能进行下一步对存在资源争用的等待服务,快速及时的给出调整建议。
[0023] 步骤S2、当所述获取到的主节点当前CPU负载能力大于预设的第一阈值时,则根据 所述获取到的主节点等待服务,确定主节点的服务亲和度矩阵并计算,且待所述主节点的 服务亲和度矩阵的计算值小于预设的第二阈值时,将所述获取到的主节点等待服务动态扩 展至所述从节点上;其中,所述服务亲和度矩阵为由当前节点各服务之间的亲和度形成,且 所述亲和度为当前节点各服务对不同实例之间同一对象的加锁次数。
[0024] 具体过程为,业务分割的主要目标是提高多节点集群数据库系统的综合处理能 力,并确保业务系统的响应时间满足业务需求。特别是在主节点主机负载繁忙时,为了达到 上述目标就应确保业务系统之间的松耦合,而业务系统之间的耦合程度需要通过自定义的 服务未和度矩阵计算获得。
[0025]因此,当主节点CPU负载能力处于繁忙状态时,即主节点当前CPU负载能力大于预 设的第一阈值(如85%),根据主节点的等待服务,自定义主节点的服务亲和度矩阵;其中,月艮 务亲和度矩阵为由各服务之间的亲和度形成,且亲和度为各服务对不同实例之间同一对象 的加锁次数,每次同时对同一对象进行一次加锁,则亲和度加一。
[0026]如果主节点的服务亲和度矩阵的计算值小于预设的第二阈值(如计算值小于数据 库系统亲和性指标平均值的20%),认为服务之间为松耦合,则服务可进行水平横向扩展,从 而将主节点等待服务动态扩展至从节点上。
[0027]应当说明的是,数据库系统亲和性指标平均值是通过数据库自动统计出来的。 [0028]在一个实施例中,该服务亲和度矩阵为三角矩阵,通过表1得到: 表1:
相对于步骤S2的松耦合,所述方法还包括:步骤S3、当主节点CPU负载能力处于繁忙状 态时,如果主节点的服务亲和度矩阵的计算值大于预设的第四阈值(如计算值大于数据库 系统亲和性指标平均值的30%),认为服务之间为紧耦合,则服务之间应该进行解耦,以提高 数据库系统的业务响应能力并降低服务的响应时间,因此需要对各从节点的等待服务进行 定义对应的服务亲和度矩阵并计算,且进一步根据各从节点的计算值来快速及时的调整
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1