CN113220458B - 一种数据库连接池实现负载均衡的实时调度方法和装置 - Google Patents

一种数据库连接池实现负载均衡的实时调度方法和装置 Download PDF

Info

Publication number
CN113220458B
CN113220458B CN202110579909.7A CN202110579909A CN113220458B CN 113220458 B CN113220458 B CN 113220458B CN 202110579909 A CN202110579909 A CN 202110579909A CN 113220458 B CN113220458 B CN 113220458B
Authority
CN
China
Prior art keywords
database connection
scheduling
request
real
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110579909.7A
Other languages
English (en)
Other versions
CN113220458A (zh
Inventor
马瑞瑞
何清
王毅
何新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Thermal Power Research Institute Co Ltd
Original Assignee
Xian Thermal Power Research Institute Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian Thermal Power Research Institute Co Ltd filed Critical Xian Thermal Power Research Institute Co Ltd
Priority to CN202110579909.7A priority Critical patent/CN113220458B/zh
Publication of CN113220458A publication Critical patent/CN113220458A/zh
Application granted granted Critical
Publication of CN113220458B publication Critical patent/CN113220458B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出了一种数据库连接池实现负载均衡的实时调度方法和装置,该方法包括:调度监听组件接收数据库连接请求任务;调度决策组件实时计算数据库连接池中每个连接的忙值,判断忙值最小的数据库连接;调度分配组件为所述请求任务预分配忙值最小的数据库连接,并将分配结果写入调度任务表中;调度决策组件更新数据库连接的忙值;所述请求任务进入等待状态,调度分配组件根据调度任务表按照先入先出的顺序为处于空闲状态的数据库连接分配请求任务。通过以上技术方案,实现了更加高效的数据库连接池负载均衡,满足电力信息化实时性的要求。

Description

一种数据库连接池实现负载均衡的实时调度方法和装置
技术领域
本发明属于电力信息化技术领域,特别涉及一种数据库连接池实现负载均衡的实时调度方法和装置。
背景技术
根据电力信息化实时性的要求,电站实时运行数据采集不仅仅需要配备高性能的实时数据库,针对实时数据库开发的数据通信中间件也需要符合高速数据传输的要求。对于实时数据库中间件来说,通过实时调度连接请求任务以满足数据库连接池的负载均衡,优化数据库连接池的利用率是提高数据库中间件性能的重要手段。
常用的数据库连接池负载均衡的算法分为静态负载均衡算法和动态负载均衡算法两类。静态负载均衡算法主要包括:轮询法、随机法。轮询法将请求任务按顺序轮流地分配到每个数据库连接上,不关心每个连接当前已分配负载量,可能造成某些连接的响应时间过长,不满足电力信息化实时性的要求;随机法将请求任务随机分配到各个数据库连接,缺点与轮询法相同。动态负载均衡算法主要包括:最小请求数法、最快响应速度法、观察模式法。最小请求数法动态地选取当前积压请求任务数最少的一个数据库连接处理当前请求,没有考虑每类请求任务的处理时间差异,只能满足任务数量的均衡,不能做到本质上负载均衡;最快响应速度法根据请求的响应时间,来动态调整每个数据库连接的负荷权重,给响应速度快的连接分配更多的请求,响应速度慢的连接分配更少的请求,这种算法控制的粒度细、很灵敏,但是计算复杂度高,很难满足实时性的硬核要求;观察模式法综合了最小请求数法和最快响应速度法,同时考量这两方面指标进行负荷权重的分配,计算复杂度更高,开销大,不满足电力信息化实时性要求。
发明内容
为了解决上述问题,本发明提供了一种数据库连接池实现负载均衡的实时调度方法和装置,实现了数据库连接池中的每个连接获得大致相等的负载,避免出现单个连接负载阻塞、其他连接空闲的情况,缩短实时数据库连接的平均响应时间,满足数据传输实时性的要求,提高实时数据传输通讯过程的可靠性及稳定性。
本发明采用如下技术方案来实现的:
一种数据库连接池实现负载均衡的实时调度方法,包括以下步骤:
步骤1:调度监听组件接收数据库连接请求任务;
步骤2:调度决策组件实时计算数据库连接池中每个连接的忙值,判断忙值最小的数据库连接;所述忙值是用于衡量每个数据库连接已分配的剩余未完成请求任务量的标识;
步骤3:调度分配组件为所述请求任务预分配忙值最小的数据库连接,并将分配结果写入调度任务表中;
步骤4:调度决策组件更新数据库连接的忙值;
步骤5:所述请求任务进入等待状态,调度分配组件根据调度任务表按照先入先出的顺序为处于空闲状态的数据库连接分配请求任务;
通过以上步骤实现了负载均衡和速度优先原则分配实时数据库连接请求任务,新的请求任务优先分配给未处理任务量最少的连接,从而实现处理速度快的数据库连接优先分配新的任务。
所述调度决策组件实时计算数据库连接池中每个连接的忙值,具体计算步骤包括:
步骤1):为每个数据库连接设置一个忙值为0;
步骤2):当数据库连接被分配请求任务时,判断请求任务的类型,获取该请求任务的负荷权重;
步骤3):更新忙值加上所述请求任务的负荷权重;
步骤4):当收到请求任务处理结果时,更新忙值减去请求任务的负荷权重。
为不同类型的请求任务配置不同的负荷权重,所述请求任务的类型包括:读取快照数据、写实时数据、读取历史数据、读断面数据、写历史数据、读统计数据、写设备负荷数据、删除历史数据。
为不同类型的请求任务配置不同的负荷权重,具体为按照读取快照数据、写实时数据、读取历史数据、读断面数据、写历史数据、读统计数据、写设备负荷数据、删除历史数据的顺序由小到大分配负荷权重。
一种数据库连接池实现负载均衡的实时调度装置,该装置属于实时数据库中间件的数据库连接池管理模块,包括:依次连接的调度监听组件、调度决策组件和调度分配组件;调度监听组件接收数据库连接请求,发送数据库连接分配请求至调度决策组件;调度决策组件实时计算数据库连接池中每个连接的忙值,判断当前忙值最小的数据库连接;调度分配组件负责将请求任务分配给忙值最小的数据库连接;所述忙值是用于衡量每个数据库连接已分配的剩余未完成请求任务量的标识。
本发明至少具有以下有益的技术效果:
1.本发明提供的方法借助忙值判定数据库连接的负载程度,通过忙值的动态计算进行实现数据库连接请求任务的实时调度,从而使数据库连接池中的每个连接获得大致相等的负载,避免出现单个连接负载阻塞、其他连接空闲的情况,缩短实时数据库连接的平均响应时间,提高了实时数据库中间件的通讯性能和数据通讯的可靠性、稳定性;
2.本发明提供的方法算法简单,计算复杂度低,资源占用少,经现场实验应用证实该方法完全满足电力信息化对数据传输实时性的要求。
附图说明
图1是本发明实施例的基本流程示意图;
图2是本发明实施例的忙值算法流程图;
图3是本发明所提供装置的连接示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
如图1所示的一种数据库连接池实现负载均衡的实时调度方法,包括以下步骤:
步骤S1:调度监听组件接收数据库连接请求任务;
所述调度指的是根据一些特性对任务进行运行分配。实时调度的实质是对系统资源进行分配,其根本目的是让更需要系统资源的任务更快地获得资源而执行,本发明特别针对数据库连接池中的连接资源进行实时调度。
在本实施例中,实时数据库采用国产睿腾实时数据库,数据库连接请求为电站生产过程监控系统、数据采集平台等第三方客户端向数据库中间件发送的实时数据库连接请求。
步骤S2:调度决策组件实时计算数据库连接池中每个连接的忙值,判断忙值最小的数据库连接;
本发明提供的方法实现了负载均衡和速度优先原则分配实时数据库连接请求任务,所述负载均衡指的是某时刻该实时数据库连接剩余任务量的均衡。新的请求任务优先分配给未处理任务量最少的连接,从而实现处理速度快的数据库连接优先分配新的任务。
图2为忙值算法流程图,所述忙值是用于衡量每个数据库连接已分配的剩余未完成请求任务量的标识,如图2所示,忙值的计算步骤为:
为每个数据库连接设置一个初始忙值为0;
当数据库连接被分配请求任务时,判断请求任务的类型,获取所述请求任务的负荷权重;
更新忙值加上所述请求任务负荷权重;
当收到请求任务处理结果时,更新忙值减去请求任务负荷权重。
需要说明的是,由于不同类型请求任务的处理时间不同,需要为不同类型的请求任务配置不同的负荷权重。所述请求任务的类型包括:读取快照数据、写实时数据、读取历史数据、读断面数据、写历史数据、读统计数据、写设备数据数据、删除历史数据,按照以上顺序由小到大分配负荷权重。
在本实施例中,根据不同类型请求任务的执行时间,预先配置不同类型的请求任务如下:
#define BUSYW_SNAP_GET 1//读取快照数据负荷权重
#define BUSYW_SNAP_WRITE 2//写实时数据负荷权重
#define BUSYW_HIS_GET 8//读取历史数据负荷权重
#define BUSYW_SECTION_GET 8//读断面数据负荷权重
#define BUSYW_HIS_WRITE 9//写历史数据负荷权重
#define BUSYW_SUM_GET 10//读统计数据负荷权重
#define BUSYW_DEVICE_WRITE 10//写设备数据负荷权重
#define BUSYW_HIS_DEL 10//删除历史数据负荷权重
步骤S3:调度分配组件为所述请求任务预分配忙值最小的数据库连接,并将分配结果写入调度任务表中;所述调度任务表记录了请求任务的到达时间、请求任务id、分配数据库连接地址指针。
步骤S4:调度决策组件更新该数据库连接的忙值;具体来说就是更新该数据库连接的忙值加上新分配请求任务的负荷权重。
步骤S5:所述请求任务进入等待状态,调度分配组件根据调度任务表按照先入先出的顺序为处于空闲状态的数据库连接分配请求任务。
图3是本发明所提供数据库连接池实现负载均衡的实时调度装置的连接示意图,该装置属于实时数据库中间件的数据库连接池管理模块,包括:依次连接的调度监听组件1、调度决策组件2和调度分配组件3;调度监听组件1接收数据库连接请求,发送数据库连接分配请求至调度决策组件2;调度决策组件2实时计算数据库连接池中每个连接的忙值,判断忙值最小的数据库连接;调度分配组件3负责将请求任务分配给忙值最小的数据库连接。

Claims (4)

1.一种数据库连接池实现负载均衡的实时调度方法,其特征在于,包括以下步骤:
步骤1:调度监听组件接收数据库连接请求任务;
步骤2:调度决策组件实时计算数据库连接池中每个连接的忙值,判断忙值最小的数据库连接;所述忙值是用于衡量每个数据库连接已分配的剩余未完成请求任务量的标识;
步骤3:调度分配组件为所述请求任务预分配忙值最小的数据库连接,并将分配结果写入调度任务表中;
步骤4:调度决策组件更新数据库连接的忙值;
步骤5:所述请求任务进入等待状态,调度分配组件根据调度任务表按照先入先出的顺序为处于空闲状态的数据库连接分配请求任务;
通过以上步骤实现了负载均衡和速度优先原则分配实时数据库连接请求任务,新的请求任务优先分配给未处理任务量最少的连接,从而实现处理速度快的数据库连接优先分配新的任务;
所述调度决策组件实时计算数据库连接池中每个连接的忙值,具体计算步骤包括:
步骤1):为每个数据库连接设置一个忙值为0;
步骤2):当数据库连接被分配请求任务时,判断请求任务的类型,获取该请求任务的负荷权重;
步骤3):更新忙值加上所述请求任务的负荷权重;
步骤4):当收到请求任务处理结果时,更新忙值减去请求任务的负荷权重。
2.根据权利要求1所述的一种数据库连接池实现负载均衡的实时调度方法,其特征在于,为不同类型的请求任务配置不同的负荷权重,所述请求任务的类型包括:读取快照数据、写实时数据、读取历史数据、读断面数据、写历史数据、读统计数据、写设备负荷数据、删除历史数据。
3.根据权利要求1所述的一种数据库连接池实现负载均衡的实时调度方法,其特征在于,为不同类型的请求任务配置不同的负荷权重,具体为按照读取快照数据、写实时数据、读取历史数据、读断面数据、写历史数据、读统计数据、写设备负荷数据、删除历史数据的顺序由小到大分配负荷权重。
4.一种实现权利要求1至3任一项所述的数据库连接池实现负载均衡的实时调度方法的装置,其特征在于,该装置属于实时数据库中间件的数据库连接池管理模块,包括:依次连接的调度监听组件、调度决策组件和调度分配组件;调度监听组件接收数据库连接请求,发送数据库连接分配请求至调度决策组件;调度决策组件实时计算数据库连接池中每个连接的忙值,判断当前忙值最小的数据库连接;调度分配组件负责将请求任务分配给忙值最小的数据库连接;所述忙值是用于衡量每个数据库连接已分配的剩余未完成请求任务量的标识。
CN202110579909.7A 2021-05-26 2021-05-26 一种数据库连接池实现负载均衡的实时调度方法和装置 Active CN113220458B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110579909.7A CN113220458B (zh) 2021-05-26 2021-05-26 一种数据库连接池实现负载均衡的实时调度方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110579909.7A CN113220458B (zh) 2021-05-26 2021-05-26 一种数据库连接池实现负载均衡的实时调度方法和装置

Publications (2)

Publication Number Publication Date
CN113220458A CN113220458A (zh) 2021-08-06
CN113220458B true CN113220458B (zh) 2022-11-01

Family

ID=77099661

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110579909.7A Active CN113220458B (zh) 2021-05-26 2021-05-26 一种数据库连接池实现负载均衡的实时调度方法和装置

Country Status (1)

Country Link
CN (1) CN113220458B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11313364A (ja) * 1997-10-28 1999-11-09 Sanyo Electric Co Ltd 伝送チャネル割当方法およびその装置
CN111538572A (zh) * 2020-03-26 2020-08-14 中国平安人寿保险股份有限公司 任务处理方法、装置、调度服务器及介质
CN111625588A (zh) * 2020-05-29 2020-09-04 北京思特奇信息技术股份有限公司 一种共享分布式数据采集数据的方法和系统
CN112699150A (zh) * 2021-01-04 2021-04-23 中国银联股份有限公司 一种数据库操作框架、方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2425048C (en) * 2003-04-08 2008-06-03 Ibm Canada Limited - Ibm Canada Limitee Method and system for resource access
CN102681892B (zh) * 2012-05-15 2014-08-20 西安热工研究院有限公司 Key-Value型单写多读锁池软件模块及其运行方法
CN102810116B (zh) * 2012-06-29 2015-01-07 安科智慧城市技术(中国)有限公司 一种基于数据库连接的自动路由和负载均衡的方法及系统
CN103336721B (zh) * 2013-07-08 2017-03-22 北京奇虎科技有限公司 数据库操作请求分配方法、设备和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11313364A (ja) * 1997-10-28 1999-11-09 Sanyo Electric Co Ltd 伝送チャネル割当方法およびその装置
CN111538572A (zh) * 2020-03-26 2020-08-14 中国平安人寿保险股份有限公司 任务处理方法、装置、调度服务器及介质
CN111625588A (zh) * 2020-05-29 2020-09-04 北京思特奇信息技术股份有限公司 一种共享分布式数据采集数据的方法和系统
CN112699150A (zh) * 2021-01-04 2021-04-23 中国银联股份有限公司 一种数据库操作框架、方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Blind Natural Image Quality Prediction Using Convolutional Neural Networks And Weighted Spatial Pooling;Yicheng Su;《2020 IEEE International Conference on Image Processing (ICIP)》;20200930;第191-195页 *
基于数据库集群的动态负载均衡研究与实现;何骏等;《微型机与应用》;20110125(第02期);全文 *
大数据背景下动态调整参数的数据库连接池性能优化研究;赵克全;《淮北职业技术学院学报》;20170215(第01期);全文 *
连接池访问数据库的研究与应用;戴长秀;《计算机时代》;20171130(第11期);第1节、第1.2节 *

Also Published As

Publication number Publication date
CN113220458A (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
USRE42726E1 (en) Dynamically modifying the resources of a virtual server
CN108829512B (zh) 一种云中心硬件加速计算力的分配方法、系统和云中心
CN105373429A (zh) 任务调度方法、装置及系统
CN103401947A (zh) 多个服务器的任务分配方法和装置
CN109861850B (zh) 一种基于sla的无状态云工作流负载均衡调度的方法
CN106294472A (zh) 一种Hadoop数据库HBase的查询方法及装置
CN112888005B (zh) 一种面向mec的分布式业务调度方法
CN112860974A (zh) 计算资源的调度方法、装置、电子设备和存储介质
CN105491150A (zh) 基于时间序列的负载均衡处理方法及系统
CN112783659A (zh) 一种资源分配方法、装置、计算机设备及存储介质
CN113127171A (zh) 用于任务分配系统中的行为配对的技术
CN112749002A (zh) 一种集群资源动态管理的方法和装置
CN111491015A (zh) 预热任务处理方法及系统、代理服务器、服务中心
CN111158904A (zh) 一种任务调度方法、装置、服务器及介质
CN114116173A (zh) 动态调整任务分配的方法、装置和系统
CN107423134B (zh) 一种大规模计算集群的动态资源调度方法
CN113220458B (zh) 一种数据库连接池实现负载均衡的实时调度方法和装置
CN110069319B (zh) 一种面向朵云资源管理的多目标虚拟机调度方法及系统
CN111210286A (zh) 一种基于税控服务器的发票高效开具方法及系统
CN113051064A (zh) 任务调度方法、装置、设备及存储介质
CN110955522B (zh) 一种协调性能隔离和数据恢复优化的资源管理方法及系统
CN112561301A (zh) 工单分配方法、装置、设备和计算机可读介质
US11409570B2 (en) Dynamic management of system computing resources
CN115981825B (zh) 基于混合式共享状态视图架构的集群并行调度系统
CN115586957B (zh) 一种任务调度系统、方法、装置及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant