CN113220458A - 一种数据库连接池实现负载均衡的实时调度方法和装置 - Google Patents
一种数据库连接池实现负载均衡的实时调度方法和装置 Download PDFInfo
- Publication number
- CN113220458A CN113220458A CN202110579909.7A CN202110579909A CN113220458A CN 113220458 A CN113220458 A CN 113220458A CN 202110579909 A CN202110579909 A CN 202110579909A CN 113220458 A CN113220458 A CN 113220458A
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling 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 (5)
1.一种数据库连接池实现负载均衡的实时调度方法,其特征在于,包括以下步骤:
步骤1:调度监听组件接收数据库连接请求任务;
步骤2:调度决策组件实时计算数据库连接池中每个连接的忙值,判断忙值最小的数据库连接;所述忙值是用于衡量每个数据库连接已分配的剩余未完成请求任务量的标识;
步骤3:调度分配组件为所述请求任务预分配忙值最小的数据库连接,并将分配结果写入调度任务表中;
步骤4:调度决策组件更新数据库连接的忙值;
步骤5:所述请求任务进入等待状态,调度分配组件根据调度任务表按照先入先出的顺序为处于空闲状态的数据库连接分配请求任务;
通过以上步骤实现了负载均衡和速度优先原则分配实时数据库连接请求任务,新的请求任务优先分配给未处理任务量最少的连接,从而实现处理速度快的数据库连接优先分配新的任务。
2.根据权利要求1所述的一种数据库连接池实现负载均衡的实时调度方法,其特征在于,所述调度决策组件实时计算数据库连接池中每个连接的忙值,具体计算步骤包括:
步骤1):为每个数据库连接设置一个忙值为0;
步骤2):当数据库连接被分配请求任务时,判断请求任务的类型,获取该请求任务的负荷权重;
步骤3):更新忙值加上所述请求任务的负荷权重;
步骤4):当收到请求任务处理结果时,更新忙值减去请求任务的负荷权重。
3.根据权利要求2所述的一种数据库连接池实现负载均衡的实时调度方法,其特征在于,为不同类型的请求任务配置不同的负荷权重,所述请求任务的类型包括:读取快照数据、写实时数据、读取历史数据、读断面数据、写历史数据、读统计数据、写设备负荷数据、删除历史数据。
4.根据权利要求2所述的一种数据库连接池实现负载均衡的实时调度方法,其特征在于,为不同类型的请求任务配置不同的负荷权重,具体为按照读取快照数据、写实时数据、读取历史数据、读断面数据、写历史数据、读统计数据、写设备负荷数据、删除历史数据的顺序由小到大分配负荷权重。
5.一种数据库连接池实现负载均衡的实时调度装置,其特征在于,该装置属于实时数据库中间件的数据库连接池管理模块,包括:依次连接的调度监听组件、调度决策组件和调度分配组件;调度监听组件接收数据库连接请求,发送数据库连接分配请求至调度决策组件;调度决策组件实时计算数据库连接池中每个连接的忙值,判断当前忙值最小的数据库连接;调度分配组件负责将请求任务分配给忙值最小的数据库连接;所述忙值是用于衡量每个数据库连接已分配的剩余未完成请求任务量的标识。
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 true CN113220458A (zh) | 2021-08-06 |
CN113220458B 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 (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11313364A (ja) * | 1997-10-28 | 1999-11-09 | Sanyo Electric Co Ltd | 伝送チャネル割当方法およびその装置 |
US20040205054A1 (en) * | 2003-04-08 | 2004-10-14 | International Business Machines Corporation | System and method for accessing resources in a database |
CN102681892A (zh) * | 2012-05-15 | 2012-09-19 | 西安热工研究院有限公司 | Key-Value型单写多读锁池软件模块及其运行方法 |
CN102810116A (zh) * | 2012-06-29 | 2012-12-05 | 安科智慧城市技术(中国)有限公司 | 一种基于数据库连接的自动路由和负载均衡的方法及*** |
CN103336721A (zh) * | 2013-07-08 | 2013-10-02 | 北京奇虎科技有限公司 | 数据库操作请求分配方法、设备和*** |
CN111538572A (zh) * | 2020-03-26 | 2020-08-14 | 中国平安人寿保险股份有限公司 | 任务处理方法、装置、调度服务器及介质 |
CN111625588A (zh) * | 2020-05-29 | 2020-09-04 | 北京思特奇信息技术股份有限公司 | 一种共享分布式数据采集数据的方法和*** |
CN112699150A (zh) * | 2021-01-04 | 2021-04-23 | ***股份有限公司 | 一种数据库操作框架、方法及*** |
-
2021
- 2021-05-26 CN CN202110579909.7A patent/CN113220458B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11313364A (ja) * | 1997-10-28 | 1999-11-09 | Sanyo Electric Co Ltd | 伝送チャネル割当方法およびその装置 |
US20040205054A1 (en) * | 2003-04-08 | 2004-10-14 | International Business Machines Corporation | System and method for accessing resources in a database |
CN102681892A (zh) * | 2012-05-15 | 2012-09-19 | 西安热工研究院有限公司 | Key-Value型单写多读锁池软件模块及其运行方法 |
CN102810116A (zh) * | 2012-06-29 | 2012-12-05 | 安科智慧城市技术(中国)有限公司 | 一种基于数据库连接的自动路由和负载均衡的方法及*** |
CN103336721A (zh) * | 2013-07-08 | 2013-10-02 | 北京奇虎科技有限公司 | 数据库操作请求分配方法、设备和*** |
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)
Title |
---|
YICHENG SU: "Blind Natural Image Quality Prediction Using Convolutional Neural Networks And Weighted Spatial Pooling", 《2020 IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING (ICIP)》 * |
何骏等: "基于数据库集群的动态负载均衡研究与实现", 《微型机与应用》 * |
戴长秀: "连接池访问数据库的研究与应用", 《计算机时代》 * |
赵克全: "大数据背景下动态调整参数的数据库连接池性能优化研究", 《淮北职业技术学院学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113220458B (zh) | 2022-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE42726E1 (en) | Dynamically modifying the resources of a virtual server | |
CN108829512B (zh) | 一种云中心硬件加速计算力的分配方法、***和云中心 | |
CN107038071B (zh) | 一种基于数据流预测的Storm任务伸缩调度算法 | |
CN110297698B (zh) | 一种多优先级动态限流方法、装置、服务器及存储介质 | |
CN103401947A (zh) | 多个服务器的任务分配方法和装置 | |
CN105373429A (zh) | 任务调度方法、装置及*** | |
CN109861850B (zh) | 一种基于sla的无状态云工作流负载均衡调度的方法 | |
CN104735095A (zh) | 一种云计算平台作业调度方法及装置 | |
CN106294472A (zh) | 一种Hadoop数据库HBase的查询方法及装置 | |
CN105491150A (zh) | 基于时间序列的负载均衡处理方法及*** | |
CN112783659A (zh) | 一种资源分配方法、装置、计算机设备及存储介质 | |
CN112888005B (zh) | 一种面向mec的分布式业务调度方法 | |
CN112749002A (zh) | 一种集群资源动态管理的方法和装置 | |
CN106095581B (zh) | 一种私有云条件下的网络存储虚拟化调度方法 | |
US20190138354A1 (en) | Method for scheduling jobs with idle resources | |
CN107423134B (zh) | 一种大规模计算集群的动态资源调度方法 | |
CN111158904A (zh) | 一种任务调度方法、装置、服务器及介质 | |
CN114116173A (zh) | 动态调整任务分配的方法、装置和*** | |
CN109597674B (zh) | 一种共享虚拟资源池份额调度方法及*** | |
CN112561301A (zh) | 工单分配方法、装置、设备和计算机可读介质 | |
Chatterjee et al. | A new clustered load balancing approach for distributed systems | |
CN113220458B (zh) | 一种数据库连接池实现负载均衡的实时调度方法和装置 | |
CN110069319B (zh) | 一种面向朵云资源管理的多目标虚拟机调度方法及*** | |
CN111210286A (zh) | 一种基于税控服务器的***高效开具方法及*** | |
CN110955522B (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 |