[发明专利]一种降低大规模数据库集群DML资源消耗的方法在审
申请号: | 201910789848.X | 申请日: | 2019-08-26 |
公开(公告)号: | CN110515733A | 公开(公告)日: | 2019-11-29 |
发明(设计)人: | 赵伟;张海亮 | 申请(专利权)人: | 江苏华库数据技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F16/27 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210000 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 集群 资源消耗 主副本 分发 大规模数据库 动态选取 分片数据 空闲节点 相对比较 副本 空闲 保证 | ||
本发明公开了一种降低大规模数据库集群DML资源消耗的方法,具体方法包括以下步骤:步骤一、在主副本分片所在节点中动态选取当前资源相对比较空闲的节点去执行DML操作;步骤二、DML操作只在这一个分片端执行而其他副本分片端不执行;步骤三、执行分片端负责将执行结果分发到其他分片上去。选取相对空闲节点去执行DML操作,可以减少执行时间;降低集群执行DML操作时整体的资源消耗,提升集群效率;对执行DML结果的分发机制,还可以有效保证主副本分片数据的一致性。
技术领域
本发明属于数据库技术领域,尤其是一种降低大规模数据库集群DML资源消耗的方法。
背景技术
大规模数据库集群为了支持高可用,为每一个物理表(主分片)创建了一个或者多个备份(副本分片),主副本分片分布在集群中不同的节点上,主副本分片中数据必须相同,且存储顺序必须一致。当集群执行DML进行数据变更操作时一般同时对所有的主副本分片执行相同的DML语句,在查询条件复杂、数据量大的情况下,各个节点资源消耗都很大。
如图1所示,假设Node 1上有3个主分片,分别是t1_n1、t2_n1、t3_n1;这3个主分片有两份副本分别在Node 2和Node 3上。当集群执行数据变更的DML语句的时候,需要同时将该语句下发到相关表所有的主分片和副本分片上,同一个表的所有主副本分片都将执行DML语句,都需要消耗相同的资源,存在资源浪费的情况。
发明内容
本发明要解决的问题是提供了一种降低大规模数据库集群DML资源消耗的方法。
为实现上述目的,本发明提供如下技术方案:一种降低大规模数据库集群DML资源消耗的方法包括以下步骤:步骤一、在主副本分片所在节点中动态选取当前资源相对比较空闲的节点去执行DML操作;
步骤二、DML操作只在这一个分片端执行而其他副本分片端不执行;
步骤三、执行分片端负责将执行结果分发到其他分片上去。
与现有技术相比,本发明的有益效果是:1.选取相对空闲节点去执行DML操作,可以减少执行时间;
2.降低集群执行DML操作时整体的资源消耗,提升集群效率;
3.对执行DML结果的分发机制,还可以有效保证主副本分片数据的一致性。
附图说明
图1是背景技术中现有的集群执行DML机制示意图;
图2是本实施例中集群执行DML机制流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
本实施例一种降低大规模数据库集群DML资源消耗的方法,流程图如图2所示,Node 1上有3个主分片,分别是t1_n1、t2_n1、t3_n1;这3个主分片有两份副本分别在Node 2和Node 3上。当集群执行数据变更DML操作的时候,首先动态评估当前三个节点的资源占用情况,选择资源相对空闲的节点去执行DML操作(假设为Node2);集群将DML语句下发到Node2相关表的分片上去执行;执行完后由Node2负责将执行结果分发到Node1和Node3对应的分片上去,从而完成所有主副本分片数据的一致性;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏华库数据技术有限公司,未经江苏华库数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910789848.X/2.html,转载请声明来源钻瓜专利网。