CN101841565B - 数据库集群系统负载均衡方法和数据库集群系统 - Google Patents
数据库集群系统负载均衡方法和数据库集群系统 Download PDFInfo
- Publication number
- CN101841565B CN101841565B CN 201010154901 CN201010154901A CN101841565B CN 101841565 B CN101841565 B CN 101841565B CN 201010154901 CN201010154901 CN 201010154901 CN 201010154901 A CN201010154901 A CN 201010154901A CN 101841565 B CN101841565 B CN 101841565B
- Authority
- CN
- China
- Prior art keywords
- database
- index
- back end
- load
- normalization
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种数据库集群系统负载均衡方法和数据库集群系统,属于信息技术领域。本发明方法包括:a)集群控制器采集各个数据库后端的各个指标值组成决策矩阵;b)根据决策矩阵计算带权重的归一化矩阵;c)计算各个数据库后端和正负理想解之间的距离;d)按距离差值由大到小排序,集群控制器根据此序列调用数据库后端。本发明系统包括一个集群控制器和一个或多个数据库后端,前者包括负载均衡决策组件、后端检测组件、用户请求分发组件和负载信息表;后者包括通信组件、数据库服务器和负载测量组件。本发明可用于数据库集群系统。
Description
技术领域
本发明涉及数据库集群系统,尤其涉及数据库集群系统中的负载均衡方法和相应的数据库集群系统,属于信息技术领域。
背景技术
数据库集群系统是指将一组数据库服务器以集群的方式组合起来,使用统一的接口向用户提供服务。数据库集群系统利用保存在多个数据库后端节点上的数据副本获得更高的可用性;并利用多个数据库后端节点提供单一数据库系统所无法提供的更强大的数据管理能力和更高的查询响应效率。
数据库集群系统使用多种数据分布方式,包括:全集冗余模式、子集划分模式和子集交叠模式。其中:全集冗余模式(也称对等冗余模式)是指,多个后端节点中所保存的数据完全相同;子集划分模式是指,多个后端节点各保存数据全集的一部分数据,节点间没有数据交叠;子集交叠模式是指,各结点各保存数据全集的一部分数据,节点间有数据交叠。为了获得更高可用性和响应效率,集群系统大都采用全集冗余模式。
集群数据库系统在全集冗余模式下工作时,由于各个数据库后端节点是等价的,用户查询可仅由一个后端节点执行并应答即可。在这种场景下,如何选取效率最高的节点执行用户查询,是决定整个集群系统应答效率的关键技术。目前普遍使用的数据库集群系统负载均衡方法包括:
(1)随机选择法。在后端中随机选择一个节点来执行用户查询请求。
(2)轮询法。轮流选取后端节点执行用户查询请求。
(3)加权轮询法。给不同的数据库节点赋予不同的权值,权值大的节点被轮询到的次数大于权值小的节点,比如权值为2的节点被轮询到的次数是权值为1的节点的2倍。
然而,上述负载均衡方法,均没有考虑到不同计算机节点的差异性。随机选择法总是随机选择数据库节点完全不了解后端状态也完全没有可控性,轮询法和加权轮询法在各个后端数据库之间按顺序循环执行,这虽然可以使每个后端都有任务,但并不能做到各个后端任务的最优分配。
发明内容
本发明的目的在于克服现有技术中存在的问题,提供一种数据库集群系统中进行动态负载均衡的方法和相应的数据库集群系统。本发明通过对数据库后端节点的运行状态进行测量,实时获得后端节点的响应效率评价值,从而选择效率评价值最高的后端节点进行执行,以避免后端节点的过热和故障,从整体上提升数据库集群系统的运行效率。
本发明的数据库集群系统负载均衡方法包括下列步骤:
a)集群控制器采集各个数据库后端的各个设定指标的值,组成决策矩阵;
b)对决策矩阵进行归一化;计算各个指标的权重向量;并根据vij=wjbij计算带权重的归一化矩阵,其中bij表示归一化后的决策矩阵单元,wj表示指标的权重向量,i表示数据库后端序号,j表示指标序号;
c)分别计算各个数据库后端和负理想解之间的距离di-,以及和正理想解之间的距离di +;
d)按di --di +的差值由大到小对各个数据库后端进行排序,集群控制器根据此序列调用数据库后端。
各具体步骤的优选实现方式将在下面具体描述。
本发明提供的数据库集群系统包括一个集群控制器和一个或多个数据库后端节点,在数据库后端节点中保存完全相同的数据集合,数据库后端节点是同构或异构的数据库后端节点。
如图1所示,集群控制器包含负载均衡决策组件、后端检测组件、用户请求分发组件和负载信息表,其中,负载均衡决策组件用于执行负载均衡决策过程;后端检测组件用于执行后端负载检测过程;负载信息表用于保存后端负载检测过程所得出的测量值;用户请求分发组件用于暂存用户请求、发起后端负载检测过程、发起负载均衡决策过程、并将用户请求发至决策结果确定的数据库后端节点执行。
数据库后端节点包含通信组件、数据库服务器和负载测量组件,其中,通信组件用于接收后端检测请求、发起负载测量、将负载测量值存入集群控制器中的负载信息表中,并接收集群控制器发来的用户请求,将其发给数据库服务器执行,将得到的结果集返回至集群控制器;数据库服务器用于接收通信组件发来的用户请求并作出应答;负载测量组件用于接收通信组件发来的负载测量请求并作出应答。负载测量组件又进一步包含:CPU使用率检测模块、内存使用率检测模块、磁盘已占用空间检测模块、磁盘可用空间比例检测模块、磁盘IO延迟检测模块和网络延迟检测模块。
在上述数据库集群系统中,当用户将数据库查询请求发送至集群控制器时,集群控制器中的用户请求分发组件负责将数据库查询请求暂存,通过后端检测组件执行1次后端负载检测过程,通过负载均衡决策组件执行1次负载均衡决策过程,用户请求分发组件根据负载决策过程得出的结果将数据库查询请求转发至相应的数据库后端节点执行。
后端负载检测过程的执行流程为:后端检测组件向数据库后端发起后端检测请求,由数据库后端节点中的通信组件接受后端检测请求,驱动负载测量组件进行负载测量,负载测量完成后,再由通信组件将获得的负载值返回至集群控制器,并将测量值存储于负载信息表中。其中,负载测量的内容包括:CPU使用率、内存使用率、磁盘已占用空间、磁盘可用空间比例、磁盘IO延迟和网络延迟。
负载均衡决策过程的执行流程为:
(1)如果数据库查询请求是写请求(Insert,Update,Delete操作),决策结果为所有数据库后端节点;
(2)如果数据库查询请求是读请求(Select操作),那么执行以下步骤:
将负载信息表中的负载值构造为决策矩阵,第1列至第6列分别对应为:CPU使用率、内存使用率、磁盘可用空间比例、磁盘已占用空间、网络延迟、磁盘IO延迟;
利用以下两个公式对决策矩阵进行归一化处理,
其中Mj是第j列最大值,mj是第j列最小值,aij为归一化前决策矩阵第i行第j列的值,bij为归一化处理以后决策矩阵第i行第j列的值;
采用熵值法计算各个指标的权重,形成权重向量,使用如下公式将各指标值进行归一化处理使用如下公式计算指标的熵值使用如下公式将熵值转化为权值得到W=[w1,w2,w3,w4,w5,w6],w1+w2+w3+w4+w5+w6=1;
使用TOPSIS(Technique for Order Preference by Similarity to Ideal Solution)方法对所有后端进行排序,确定正理想解为:v+={1,1,0,0,1,1},确定负理想解为:v-={0,0,1,1,0,0},使用下述公式计算决策矩阵中每一行和正理想解之间的距离:j=1,...,m,使用下述公式计算决策矩阵中每一行和负理想解之间的距离:j=1,...,m,使用下述公式计算决策排序:
取dj值最大的数据库后端节点,作为决策结果。
使用传统的随机均衡方法、轮询均衡方法和加权轮询均衡方法等静态负载均衡方法,负载均衡结果与数据库后端节点的即时状态无关,难以保证每次操作都发送至效率最优的节点执行。这主要是出于两方面的原因:
随着服务器的运行,服务器的状态可能会发生变化,性能也会随之改变,而预设的均衡策略无法侦测这种变化。
服务器接收到的任务量不一定相等。用户操作以事务为单元,但每一个事务的工作量存在差异。若一个后端节点接受了一个超长的事务,则只能将后续的事务延迟处理,于此同时,其他后端节点可能因为接收到事务都是短事务,而处于闲置状态。
可见,相对于现有技术中的随机均衡方法、轮询均衡方法和加权轮询均衡方法等静态负载均衡方法,使用本发明所述数据库集群系统动态负载均衡方法,可以随时监测后端节点的运行状态,保证集群系统在每次处理用户请求时都选取效率最优的节点执行。
附图说明
图1是本发明集群数据库系统的结构示意图。
图2是负载测量流程图。
图3是用户指令处理流程图。
图4是本发明实施例数据库集群系统结构示意图。
图5是多指标决策的一般步骤。
具体实施方式
下面提供一具体实施例对本发明作进一步说明。
搭建如图4所示的异构数据库集群系统,其中控制器节点和3个后端数据库节点位于不同的主机之上。在控制器节点主机配置数据库集群控制器提供发明所需的控制器节点的功能。用户通过集群控制器提供的用户交互平台进行操作。本发明对集群控制器进行了扩展,加入以下三个组件:负载决策均衡组件、后端检测组件和负载信息表。后端检测组件以固定的时间间隔向各后端发起负载检测请求。
在三个后端上分别安装SqlServer、Ingres和PostgreSQL数据库。分别在三个数据库上建立表loadstate用来存储本节点的负载信息,在loadstate表上建立触发器,响应插入指令。在触发器中调用外部动态链接库函数测量节点负载信息,再把测得的负载信息写入loadstate表中。该动态链接库可以通过多种方式生成。本例中用C代码编写动态链接库文件。
下面给出一次负载均衡的完整步骤:
如图2所示是一次负载检测的完整过程图。后端检测组件根据内部定时装置,以一定的时间间隔向各个后端发起周期性负载检测请求。当一次负载检测请求开始以后。
步骤①:后端检测组件向通信组件发出负载检测请求。
步骤②:通信组件将这一请求转发给负载测量组件。
步骤③、④:负载测量组件在后端数据库上执行SQL指令“INSERT INTO loadstateVALUES(id,0,0,0,0,0,0)”。数据库建立在表loadstate上的触发器自动响应该INSERT指令,调用外部动态链接库函数取得计算机负载信息。再将实际的负载数据通过UPDATE指令写入loadstate表中。
步骤⑤、⑥:负载信息通过通信组件回到位于控制器端的后端检测组件。
步骤⑦:当后端检测组件收集完毕所有3个后端的负载信息以后,将此时形成的3×6的决策矩阵传递给负载决策组件。
步骤⑧:决策组件对决策矩阵的各列给出排序,最后的结果放在负载信息表中。
此时一次负载检测过程结束。这个负载信息表将会在下一次负载检测过程开始前保持作用。下一次负载检测过程之后,该负载信息表将会被更新。
如图5所示是负载决策组件内部根据决策矩阵形成各个后端排序的过程图。
在上述步骤⑦中,三个后端采集到的负载决策矩阵为:
后端 | CPU使用率(%) | 内存使用率(%) | 空闲磁盘比率(%) | 磁盘剩余空间(Mb) | 网络延迟(ms) | 磁盘IO延迟(ms) |
SqlServer | 4 | 93 | 69 | 28462 | 62 | 63 |
ingres | 53 | 83 | 49 | 20807 | 500 | 218 |
PostgreSQL | 26 | 92 | 79 | 32625 | 94 | 78 |
步骤1,规范化决策矩阵,根据下列公式对决策矩阵进行归一化处理:
在本实施例所测的六个指标中,CPU使用率、内存使用率、网络延迟和磁盘IO延迟属于成本型指标,数值越小越好。空闲磁盘比例和剩余磁盘空间属于效益型指标,数值越大越好。归一化处理后的结果如下表所示:
后端 | CPU使用率 | 内存使用率 | 空闲磁盘比率 | 磁盘剩余空间 | 网络延迟 | 磁盘IO延迟 |
SqlServer | 1 | 0 | 0.6667 | 0.6477 | 1 | 1 |
ingres | 0 | 1 | 0 | 0 | 0 | 0 |
PostgreSQL | 0.5510 | 0.1 | 1 | 1 | 0.9269 | 0.9032 |
步骤2,求权重向量:
后端 | CPU使用率 | 内存使用率 | 空闲磁盘比率 | 磁盘剩余空间 | 网络延迟 | 磁盘IO延迟 |
SqlServer | 0.0482 | 0.3470 | 0.3503 | 0.3475 | 0.0945 | 0.1759 |
ingres | 0.6386 | 0.3097 | 0.2487 | 0.2541 | 0.7622 | 0.6072 |
PostgreSQL | 0.3133 | 0.3433 | 0.4010 | 0.3984 | 0.1433 | 0.2173 |
CPU使用率 | 内存使用率 | 空闲磁盘比率 | 磁盘剩余空间 | 网络延迟 | 磁盘IO延迟 |
0.7247 | 0.9988 | 0.9830 | 0.9849 | 0.6448 | 0.8556 |
CPU使用率 | 内存使用率 | 空闲磁盘比率 | 磁盘剩余空间 | 网络延迟 | 磁盘IO延迟 |
0.3406 | 0.0014 | 0.0210 | 0.0186 | 0.4396 | 0.1787 |
步骤5,根据vij=wjbij计算带权重的归一化矩阵,计算结果如下表所示:
后端 | CPU使用率 | 内存使用率 | 空闲磁盘比率 | 磁盘剩余空间 | 网络延迟 | 磁盘IO延迟 |
SqlServer | 0.3406 | 0 | 0.0140 | 0.0120 | 0.4396 | 0.1787 |
ingres | 0 | 0.0014 | 0 | 0 | 0 | 0 |
PostgreSQL | 0.1877 | 1.4443 | 0.0210 | 0.0186 | 0.4074 | 0.1614 |
步骤6,按下列公式计算每一行分别到正负理想点的距离。
计算结果如下表所示:
di + | di - | |
SqlServer | 1.5568 | 0.5131 |
ingres | 1.9993 | 1.4142 |
PostgreSQL | 1.6476 | 1.4659 |
SqlServer | -0.0438 |
ingres | -0.5850 |
PostgreSQL | -0.1817 |
离正点越近离负点越远的负载越小。所以根据上面的数据得出各个后端负载的序列如下:
SqlServer |
PostgreSQL |
ingres |
如图3所示为一个用户请求到来以后系统的响应流程。
当用户请求为写操作如INSERT、CREATE、UPDATE等语句,用户请求发送到用户请求分发组件以后,该组件直接将请求发送给所有后端数据库。
当用户请求为读操作如SELECT语句时,用户请求按如下流程被处理。
步骤1,用户请求首先传入用户请求分发组件,分发组件识别该语句是读操作。
步骤2,用户请求分发组件从负载信息表中读出其中最新的负载的排列,取出排在最前面的后端信息(负载最小的后端)。
步骤3,用户请求分发组件将用户请求发送给该后端节点。
Claims (4)
1.一种数据库集群系统负载均衡方法,该方法包括下列步骤:
a)集群控制器采集各个数据库后端的各个设定指标的值,组成决策矩阵;
b)对决策矩阵进行归一化;计算各个指标的权重向量;并根据vij=wjbij计算带权重的归一化矩阵,其中bij表示归一化后的决策矩阵单元,wj表示指标的权重向量,i表示数据库后端序号,j表示指标序号;
所述设定指标包括成本型指标和效益型指标,在步骤b)中,
成本型指标按下式进行归一化:
效益型指标按下式进行归一化:
其中Mj和mj分别表示各个数据库后端的第j个指标的最大和最小值,aij表示归一化前的矩阵单元,bij表示归一化后的矩阵单元;
所述步骤b)按下列方法计算各个指标的权重向量:
按公式 计算各个指标的熵值;
2.如权利要求1所述的数据库集群系统负载均衡方法,其特征在于,成本型指标包括CPU使用率、内存使用率、网络延迟和磁盘IO延迟;效益型指标包括空闲磁盘比例和剩余磁盘空间。
3.如权利要求1所述的数据库集群系统负载均衡方法,其特征在于,当指标数为六个时,所述正理想解为{1,1,0,0,1,1},所述负理想解为{0,0,1,1,0,0}。
4.如权利要求1所述的数据库集群系统负载均衡方法,其特征在于,集群控制器按设定的周期更新所述序列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010154901 CN101841565B (zh) | 2010-04-20 | 2010-04-20 | 数据库集群系统负载均衡方法和数据库集群系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010154901 CN101841565B (zh) | 2010-04-20 | 2010-04-20 | 数据库集群系统负载均衡方法和数据库集群系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101841565A CN101841565A (zh) | 2010-09-22 |
CN101841565B true CN101841565B (zh) | 2013-07-31 |
Family
ID=42744684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010154901 Expired - Fee Related CN101841565B (zh) | 2010-04-20 | 2010-04-20 | 数据库集群系统负载均衡方法和数据库集群系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101841565B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436468A (zh) * | 2011-09-14 | 2012-05-02 | 山东中创软件商用中间件股份有限公司 | 一种基于数据库集群的负载均衡方法及系统 |
CN102750384A (zh) * | 2012-06-28 | 2012-10-24 | 用友软件股份有限公司 | 从多数据库引擎获取数据的装置和方法 |
CN103812788B (zh) * | 2012-11-05 | 2017-06-16 | 华为技术有限公司 | 控制用户接入的方法、装置及系统 |
CN104182359B (zh) * | 2013-05-23 | 2017-11-14 | 杭州宏杉科技股份有限公司 | 一种缓存分配方法及装置 |
CN104967638B (zh) * | 2014-07-28 | 2016-08-24 | 浙江大华技术股份有限公司 | 一种数据节点的分配方法及系统 |
CN104462435A (zh) * | 2014-12-15 | 2015-03-25 | 同方知网数字出版技术股份有限公司 | 一种分布式数据库横向扩展方法 |
CN104462548B (zh) * | 2014-12-25 | 2017-07-04 | 杭州东信北邮信息技术有限公司 | 一种数据库分布式系统及其实现方法 |
CN106533730B (zh) * | 2015-09-15 | 2020-07-31 | 南京中兴软件有限责任公司 | Hadoop集群组件指标的采集方法及装置 |
CN105512264B (zh) * | 2015-12-04 | 2019-04-19 | 贵州大学 | 分布式数据库中并发工作负载的性能预测方法 |
CN106599308B (zh) * | 2016-12-29 | 2020-01-31 | 郭晓凤 | 一种分布式元数据管理方法及系统 |
CN108271216B (zh) * | 2016-12-30 | 2020-10-16 | 中国移动通信集团公司 | 自组网负载均衡方法、装置及云平台容灾系统 |
CN108920269B (zh) * | 2018-07-19 | 2021-03-19 | 中国联合网络通信集团有限公司 | 容器的i/o传输任务的调度方法和装置 |
CN109783235A (zh) * | 2018-12-29 | 2019-05-21 | 西安交通大学 | 一种基于最大熵原理的负载均衡调度方法 |
CN110361961B (zh) * | 2019-07-10 | 2022-08-23 | 中国船舶工业综合技术经济研究院 | 一种网络化武器控制系统动态重构设计方法 |
CN111212109A (zh) * | 2019-12-13 | 2020-05-29 | 东软集团股份有限公司 | 一种物联网通信方法、服务器、终端及设备 |
CN111680018A (zh) * | 2020-04-26 | 2020-09-18 | 泰康保险集团股份有限公司 | 响应请求的方法、装置、设备及可读存储介质 |
CN112268560B (zh) * | 2020-10-09 | 2022-09-09 | 广州杰赛科技股份有限公司 | 一种agv移动路径监测方法、系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852502A (zh) * | 2006-05-29 | 2006-10-25 | 杭州华为三康技术有限公司 | 一种集群系统中实现负载均衡的方法、系统和存储控制器 |
CN1972311A (zh) * | 2006-12-08 | 2007-05-30 | 华中科技大学 | 一种基于集群均衡负载的流媒体服务器系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050033809A1 (en) * | 2003-08-08 | 2005-02-10 | Teamon Systems, Inc. | Communications system providing server load balancing based upon weighted health metrics and related methods |
-
2010
- 2010-04-20 CN CN 201010154901 patent/CN101841565B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852502A (zh) * | 2006-05-29 | 2006-10-25 | 杭州华为三康技术有限公司 | 一种集群系统中实现负载均衡的方法、系统和存储控制器 |
CN1972311A (zh) * | 2006-12-08 | 2007-05-30 | 华中科技大学 | 一种基于集群均衡负载的流媒体服务器系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101841565A (zh) | 2010-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101841565B (zh) | 数据库集群系统负载均衡方法和数据库集群系统 | |
CN103955509A (zh) | 一种海量电力计量数据的快速检索方法 | |
CN103902379A (zh) | 一种任务调度方法、装置及服务器集群 | |
CN106027328A (zh) | 一种基于应用容器部署的集群监控的方法及系统 | |
CN101635651A (zh) | 一种网络日志数据管理方法、系统及装置 | |
CN104102543A (zh) | 一种云计算环境中负载调整的方法和装置 | |
CN101556678A (zh) | 一种批处理业务的处理方法、系统及业务处理控制设备 | |
CN104063501B (zh) | 基于hdfs的副本平衡方法 | |
CN109831524A (zh) | 一种负载均衡处理方法及装置 | |
CN111752678A (zh) | 面向边缘计算中分布式协同学习的低功耗容器放置方法 | |
CN107402926A (zh) | 一种查询方法以及查询设备 | |
CN103067486B (zh) | 基于PaaS平台的大数据处理方法 | |
CN102929613A (zh) | 操作系统的调优装置和方法 | |
CN114637650B (zh) | 一种基于Kubernetes集群的弹性伸缩方法 | |
CN102339233A (zh) | 云计算集中管理平台 | |
CN103957280A (zh) | 一种物联网中的传感网络连接分配和调度方法 | |
CN110149377A (zh) | 一种视频服务节点资源分配方法、系统、装置及存储介质 | |
CN105608138A (zh) | 一种优化阵列数据库并行数据加载性能的系统 | |
CN102855157A (zh) | 一种综合性调度服务器负载的方法 | |
CN102394799B (zh) | 一种应用服务器集群效率测试方法及系统 | |
CN101702668A (zh) | 网格化负载均衡系统 | |
CN204066111U (zh) | 一种海量电力计量数据的快速检索系统 | |
CN102148848A (zh) | 一种数据的管理方法和系统 | |
CN111159131A (zh) | 性能优化方法、装置、设备及计算机可读存储介质 | |
CN105282045A (zh) | 一种基于一致性哈希算法的分布式计算和储存方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130731 Termination date: 20190420 |