技术新讯 > 计算推算,计数设备的制造及其应用技术 > 基于DQA算法的Citus自动分片再平衡方法及设备  >  正文

基于DQA算法的Citus自动分片再平衡方法及设备

  • 国知局
  • 2024-12-26 16:08:29

本发明涉及分布式数据库,更具体地说,涉及一种基于dqa算法的citus自动分片再平衡方法及设备。

背景技术:

1、在现代信息技术中,分布式数据库系统由于其高可扩展性和高可用性,被广泛应用于处理大规模数据和高并发请求。citus是对象关系数据库系统postgresql数据库的一个扩展,能够实现数据库的水平扩展,通过将数据分片存储在多个节点上,提升数据库的存储能力和处理性能。然而,随着数据库集群中数据量和请求数量的不断增加,负载不均衡问题日益突出。在使用citus的分布式数据库中,由于数据和请求的动态变化,各分片可能会出现负载不均衡的情况,这需要进行分片再平衡,以重新分配数据和请求负载,确保各节点的负载均衡。为了应对这一问题,citus提供了分片再平衡方法,但现有技术目前存在以下主要缺陷:

2、1、缺少监控系统来判断citus集群是否出现负载不均衡的情况:citus系统虽然提供了分片再平衡方法,但缺乏实时监控系统来判断集群是否出现负载不均衡的情况,目前依赖数据库管理员手动监控负载并手动触发分片再平衡。这种手动监控方式导致管理员可能未能及时发现负载不均衡问题,导致系统长时间处于不均衡状态,从而影响系统性能和响应速度。

3、2、目前的分片再平衡策略未考虑到各分片的查询次数:citus目前的分片再平衡方法主要有by_shard_count和by_disk_size,by_shard_count方法根据每个分片的数量进行再平衡,旨在节点之间均衡分片数量;by_disk_size方法根据每个分片的磁盘大小进行再平衡,旨在均衡节点上的磁盘空间。但这两种策略未能考虑分片的查询次数,即分片的访问频率。由于未考虑查询次数,分片再平衡后的负载分配仍可能不均衡。例如,某个分片被频繁查询,即使其磁盘大小较小,也可能导致所在节点过载,从而使系统性能未能得到优化。

4、3、目前的分片再平衡策略未能针对预知的特定用户需求做出调整:citus分片再平衡方法未能考虑到预知的用户行为,尤其是在用户对特定数据分片的高频访问需求上。例如,如果预测到在接下来的一段时间内用户将对某些特定数据分片进行密集的数据库操作,而这些数据分片如果过于集中在少数节点上,则可能导致这些节点的负载过高,进而影响系统的整体性能。

技术实现思路

1、本发明的目的在于,提供一种基于dqa算法的citus自动分片再平衡方法及设备,能提升系统的负载均衡效果,增强系统的灵活性和适应性。

2、本发明提供一种基于dqa算法的citus自动分片再平衡方法,包括以下步骤:s1:利用监控工具获取数据库集群的监控数据,根据监控数据,得到数据库节点成本占比,根据数据库节点成本占比,得到负载均衡情况;s2:获取节点的关键性能指标,利用监控工具对关键性能指标进行预测,得到集群在未来预设时段的负载情况;s3:根据监控数据,利用dqa算法,得到各分片的成本和各节点的相对容量比例;获取所有分片的位置,根据所有分片的位置、各分片的成本、各节点的相对容量比例、负载均衡情况和集群在未来预设时段的负载情况,进行数据迁移。

3、进一步地,上述基于dqa算法的citus自动分片再平衡方法的步骤s1具体包括以下步骤:s11:利用监控工具获取数据库集群的监控数据,监控数据包括每个数据库节点的每个分片的磁盘使用量和查询次数;s12:根据磁盘使用量和查询次数,得到分片成本、数据库节点成本和数据库节点成本占比;s13:当数据库节点成本占比超过预设告警阈值且持续时间超过预设时间,则判定为负载不均衡,并发送告警邮件至管理员邮箱,告警邮件包括含告警时间、数据库名称、节点ip、成本百分比、平均成本百分比和建议的处理措施。

4、进一步地,上述基于dqa算法的citus自动分片再平衡方法的步骤s12具体包括:根据磁盘使用量和查询次数,得到分片成本、数据库节点成本和数据库节点成本占比,如公式:

5、

6、w(d)=e-λd,

7、

8、

9、costid=nduid++nqcwid

10、

11、adjusted_costid=costid×userdemandfactor(id),

12、

13、

14、其中,nduid表示归一化后的分片id的磁盘使用量,duid表示分片id的磁盘使用量,dumin表示集群中所有分片的最小磁盘使用量,dumax表示集群中所有分片的最大磁盘使用量,w(d)为每日权重函数,d为距离当前时间的天数,λ是衰减系数,qcwid为加权后的分片id的查询次数,w为时间窗口,qcid(d)表示分片id在距离当前时间天数为d的查询次数,nqcwid为归一化后的加权分片查询次数,qcwmin和qcwmax分别为加权分片查询次数的最小值和最大值,costid为分片id的初始成本,userdemandfactor(id)为分片id的用户需求因子,k是一个大于1的常数,adjusted_costid为调整后的分片成本,dbcostj表示第j个数据库节点中所有分片的总成本,dbj表示第j个数据库中的所有分片集合,dbcostpercentj表示第j个数据库节点的成本占比。

15、进一步地,上述基于dqa算法的citus自动分片再平衡方法的步骤s2具体包括以下步骤:s21:获取节点的关键性能指标,关键性能指标包括cpu使用率、内存使用率、磁盘i/o、网络i/o和数据库活跃连接数;s22:根据关键性能指标,得到集群的空闲状态判断标准;s23:利用监控工具对关键性能指标进行预测,得到集群在未来预设时段的关键性能指标;根据集群在未来预设时段的关键性能指标和空闲状态判断标准,得到集群在未来预设时段的负载情况。

16、进一步地,上述基于dqa算法的citus自动分片再平衡方法的空闲状态判断标准为:当平均cpu使用率低于40%,并且内存使用率低于50%,并且磁盘i/o低于500iops,并且网络i/o低于50mb/s,并且数据库活跃连接数低于总连接数的40%时,判定集群当前处于空闲状态;否则,判定集群当前不处于空闲状态。

17、进一步地,上述基于dqa算法的citus自动分片再平衡方法的步骤s3具体包括以下步骤:s31:根据监控数据,利用dqa算法,得到各分片的成本;s32:根据监控数据,利用最小容量标准化的方法,得到各节点的相对容量比例;s33:获取所有分片的位置,根据所有分片的位置、各分片的成本、各节点的相对容量比例、负载均衡情况和集群在未来预设时段的负载情况,进行数据迁移。

18、进一步地,上述基于dqa算法的citus自动分片再平衡方法的步骤s31具体包括:根据监控数据,利用dqa算法,得到各分片的成本,如公式:

19、w(d)=e-λd,

20、

21、

22、costid=nduid+nqcwid,

23、

24、adjusted_costid=costid×userdemandfactor(id),

25、其中,nduid表示归一化后的分片id的磁盘使用量,duid表示分片id的磁盘使用量,dumin表示集群中所有分片的最小磁盘使用量,dumax表示集群中所有分片的最大磁盘使用量,w(d)为每日权重函数,d为距离当前时间的天数,λ是衰减系数,qcwid为加权后的分片id的查询次数,w为时间窗口,qcid(d)表示分片id在距离当前时间天数为d的查询次数,nqcwid为归一化后的加权分片查询次数,qcwmin和qcwmax分别为加权分片查询次数的最小值和最大值,costid为分片id的初始成本,userdemandfactor(id)为分片id的用户需求因子,k是一个大于1的常数,adjusted_costid为调整后的各分片的成本。

26、进一步地,上述基于dqa算法的citus自动分片再平衡方法的步骤s32具体包括:根据监控数据,确定集群中磁盘使用量最小的节点,并将集群中磁盘使用量最小的节点的容量值设定为基准值,根据基准值和其他各节点的磁盘容量,得到各节点的相对容量比例。

27、本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述基于dqa算法的citus自动分片再平衡方法的步骤。

28、本发明还提供计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现上述基于dqa算法的citus自动分片再平衡方法的步骤。

29、实施本发明提供的基于dqa算法的citus自动分片再平衡方法及设备,具有以下有益效果:

30、本发明通过prometheus、grafana等工具采集citus集群的服务器和数据库监控数据,包括自定义sql查询获取的分片信息,计算得出的数据库成本百分比,设置阈值和持续时间规则触发告警,实现了对citus集群负载均衡状况的监控;通过持续监控citus集群的多项关键性能指标(包括cpu、内存、磁盘i/o、网络i/o和数据库连接数),结合预设阈值判断当前集群是否处于空闲状态。同时,利用prometheus的predict_linear函数对历史数据进行线性回归分析,预测未来2小时内的负载趋势;利用dqa算法,综合分析每个分片的磁盘使用量和查询频率,并引入时间权重和用户需求因子来计算分片的动态成本;同时,引入最小容量标准化方法评估节点容量,实现各节点相对容量的比较;总之,本发明通过设计自动监控与告警系统、自动再平衡触发机制,以及综合考虑分片磁盘使用量、查询次数和特定用户需求的新分片再平衡方法,提升系统的负载均衡效果,增强系统的灵活性和适应性。

本文地址:https://www.jishuxx.com/zhuanli/20241216/348340.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。