发明名称 一种数据库集群系统的负载均衡实现方法和装置
摘要 一种数据库集群系统的负载均衡实现方法和装置,所述方法包括有:负载均衡器将各个数据库服务器的正在执行的事务和客户端请求的并发事务之间的冲突关系建模为具有权重值的无向图;采用图的分割法,将所述无向图划分成k个分区,k是所有的数据库服务器节点总数,并按照跨越不同分区的边的权重值总和最小,同时每个分区内的数据库服务器节点权重值达到均衡的分区原则,将所有请求事务节点划分到相应的分区中;根据分区结果,逐一将请求事务分配给同一分区内的数据库服务器执行、处理。本发明属于信息技术领域,能将具有冲突关系的事务尽可能的分配至最少的数据库服务器上,同时还使各个数据库服务器达到负载均衡。
申请公布号 CN102299959B 申请公布日期 2013.08.14
申请号 CN201110241232.2 申请日期 2011.08.22
申请人 北京邮电大学 发明人 廖建新;王晶;王纯;李炜;郑安根;朱晓民;张磊;徐童;张乐剑;沈奇威;樊利民;程莉
分类号 H04L29/08(2006.01)I;G06F17/30(2006.01)I 主分类号 H04L29/08(2006.01)I
代理机构 代理人
主权项 1.一种数据库集群系统的负载均衡实现方法,其特征在于,所述方法包括有: 步骤一、负载均衡器将各个数据库服务器的正在执行的事务和客户端请求的并发事务之间的冲突关系建模为具有权重值的无向图,其中客户端请求的并发事务简称为请求事务:该无向图中,节点集是数据库服务器节点和请求事务节点的集合,其中数据库服务器节点代表该数据库服务器上的所有正在执行的事务,请求事务节点代表客户端请求的并发事务;边集是数据库服务器上正在执行的事务和请求事务之间的冲突关系集合,其中所述事务之间的冲突关系是指多个事务共同访问同一数据项目、并且其中至少有一个事务存在写操作;所述节点的权重值取决于请求事务的权重值或数据库服务器上的所有正在执行事务的权重值之和,其中事务的权重值取决于事务的复杂度;所述边的权重值取决于存在冲突关系的两个节点所代表的事务共同访问的数据项总数; 步骤二、采用图的分割法,将所述无向图划分成k个分区,k是所有的数据库服务器节点总数,其中每个数据库服务器节点都唯一的归属于不同的分区中,并按照跨越不同分区的边的权重值总和最小,同时每个分区内的数据库服务器节点权重值达到均衡的分区原则,将所有请求事务节点划分到相应的分区中; 步骤三、负载均衡器根据步骤二的分区结果,逐一将请求事务分配给同一分区内的数据库服务器执行、处理;所述步骤二进一步包括有: 步骤21、计算节点总权重W<sub>total</sub>和数据库服务器负载均衡权重W<sub>average</sub>,其中,W<sub>total</sub>是无向图中所有节点的权重值之和,<img file="FSB00001105056300011.GIF" wi="403" he="144" /><img file="FSB00001105056300012.GIF" wi="83" he="96" />表示对χ上取整;步骤22、设置可划分的分区集合S(t)和已划分的分区集合P(t),并对S(t)、P(t)分别初始化:S(t)={S<sub>1</sub>、S<sub>2</sub>、...、S<sub>k</sub>},其中S<sub>1</sub>、S<sub>2</sub>、...、S<sub>k</sub>表示K个分区,初始化时无向图中的每个数据库服务器节点都被划分到S(t)的不同分区中,即每个数据库服务器节点在分区后都唯一的归属于S(t)中的一个分区;P(t)为空集; 步骤23、逐一判断S(t)中的每一个分区所包含的数据库服务器节点的权重值是否大于W<sub>average</sub>,如果数据库服务器节点的权重值大于W<sub>average</sub>,则将所述分区从S(t)中移至P(t)中; 步骤24、判断无向图中是否还有未被划分到分区的请求事务节点,如果是,则继续步骤25;如果否,则本流程结束; 步骤25、提取一个未被划分到分区的请求事务节点,判断S(t)所包含的分区个数是否大于0,如果是,则继续步骤26;如果否,则继续步骤27; 步骤26、判断无向图中,和所述请求事务节点相连的其他节点是否存在有归属于S(t)中的分区的节点,如果是,则从S(t)的分区中,找到和所述请求事务节点相连的边的权重值总和最大的一个S(t)的分区,将所述请求事务节点划分到所述分区中,并将所述分区中的数据库服务器节点的权重值更新为原权重值和所述请求事务节点的权重值之和,转向步骤23;如果否,则比较S(t)中所有分区的数据库服务器节点的权重值,将所述请求事务节点划分到数据库服务器节点的权重值最小的分区中,并将所述分区中的数据库服务器节点的权重值更新为原权重值和所述请求事务节点的权重值之和,转向步骤23; 步骤27、比较P(t)中所有分区的数据库服务器节点的权重值,将所述请求事务节点划分到数据库服务器节点的权重值最小的分区中,并将所述分区中的数据库服务器节点的权重值更新为原权重值和所述请求事务节点的权重值之和,转向步骤24。 
地址 100191 北京市海淀区知春路9号坤讯大厦7层