一种数据库集群系统的负载均衡实现方法和装置制造方法及图纸

技术编号:7012237 阅读:274 留言:0更新日期:2012-04-11 18:40
一种数据库集群系统的负载均衡实现方法和装置,所述方法包括有:负载均衡器将各个数据库服务器的正在执行的事务和客户端请求的并发事务之间的冲突关系建模为具有权重值的无向图;采用图的分割法,将所述无向图划分成k个分区,k是所有的数据库服务器节点总数,并按照跨越不同分区的边的权重值总和最小,同时每个分区内的数据库服务器节点权重值达到均衡的分区原则,将所有请求事务节点划分到相应的分区中;根据分区结果,逐一将请求事务分配给同一分区内的数据库服务器执行、处理。本发明专利技术属于信息技术领域,能将具有冲突关系的事务尽可能的分配至最少的数据库服务器上,同时还使各个数据库服务器达到负载均衡。

【技术实现步骤摘要】

本专利技术涉及一种数据库集群系统的负载均衡实现方法和装置,属于信息

技术介绍
数据库集群系统是指将一组数据库服务器以集群的方式组合起来,使用统一的接口向用户提供服务。数据库集群系统利用保存在多个数据库服务器上的数据副本获得更高的可用性;并利用多个数据库服务器提供单一数据库系统所无法提供的更强大的数据管理能力和更高的查询响应效率。数据库集群系统中多个数据库服务器之间的一致性可以通过基于认证的数据库复制协议来实现,其过程如下各个数据库服务器是等价的,客户端发来的事务请求(如查询、更新数据等操作)先由一个数据库服务器执行,如果该事务是只读事务,则由该数据库服务器直接提交并应答即可;如果该事务涉及到数据的更新,则广播该事务的改写集通知其他所有的数据库服务器。当其他的数据库服务器接收到广播的事务改写集时,会对该事务进行一个认证如果该数据库服务器上有已经提交的并且与更新事务相冲突的事务,则该更新事务就会被中止;如果没有与该更新事务相冲突的事务,该事务会在所有数据库服务器上以相同的顺序提交。也就是说负载均衡器分配给每个数据库服务器的事务是不一样的,数据库服务器之间的一致性由基于认证的复制协议保证。在这种场景下,如何选取效率最高的数据库服务器执行客户端的事务请求,是决定整个集群系统应答效率的关键技术。由于系统中的不同事务可能需要共同访问一些常见的数据项目,如果其中至少有一个事务存在写操作,则会导致这些事务共同访问数据时冲突,即这些事务之间存在有冲突关系。当两个存在有冲突关系的事务在不同的数据库服务器中执行时,其中一个事务就有可能被中止执行,如果事务之间的冲突率较高,则会导致系统中止率的提高和并发处理能力的降低。相反,如果将存在有冲突关系的事务交由同一个数据库服务器执行,这时数据库服务器本地的并发控制机制能有效解决这些冲突问题,从而降低事务执行时的中止率。 因此,我们希望能将具有冲突关系的事务尽可能的集中在最少的数据库服务器上执行。但是,将具有冲突关系的事务集中分配给少数的数据库服务器,有可能会造成负载不均衡的问题少数的数据库服务器发生数据过载;另一些数据库服务器处于闲置状态。由于解决事务冲突会产生相应的锁冲突,少数的数据库服务器会因为过多的锁冲突而形成数据过载,当数据过载发生时,越来越多的事务被阻塞在执行进程中,事务的响应时间大大增加,同时过多的中止还会导致资源的大量浪费。目前,普遍使用的数据库集群系统负载均衡方法包括有随机选择法、轮询法、加权轮询法等,然而这些方法均没有考虑到事务之间的冲突关系。JC ((Conflict-aware load-balancing techniques for database r印lication》(干Ij于 2008ACMsymposium on Applied computing. March 16—20 2008)提出了一种用于数据库集群系统的冲突感知负载均衡技术(简称MPF)。该MPF方案通过参数f的调整,从而实现了事务冲突数的最小化和并行数的最大化目标,但由于参数f的选择很大程度上取决于以下因素互相冲突的交易数、复杂度和系统负载,从而导致最终结果存在有一定的不确定性和复杂性,同时在每个数据库服务器上仍有可能会发生数据过载现象。因此,如何将具有冲突关系的事务尽可能的分配至最少的数据库服务器上,同时还能使各个数据库服务器达到负载均衡,就成为业内科技人员关注的一个新课题。
技术实现思路
有鉴于此,本专利技术的目的是提供一种数据库集群系统的负载均衡实现方法和装置,能将具有冲突关系的事务尽可能的分配至最少的数据库服务器上,同时还使各个数据库服务器达到负载均衡。为了达到上述目的,本专利技术提供了一种数据库集群系统的负载均衡实现方法,所述方法包括有步骤一、负载均衡器将各个数据库服务器的正在执行的事务和客户端请求的并发事务之间的冲突关系建模为具有权重值的无向图,其中客户端请求的并发事务简称为请求事务该无向图中,节点集是数据库服务器节点和请求事务节点的集合,其中数据库服务器节点代表该数据库服务器上的所有正在执行的事务,请求事务节点代表客户端请求的并发事务;边集是数据库服务器上正在执行的事务和请求事务之间的冲突关系集合,其中所述事务之间的冲突关系是指多个事务共同访问同一数据项目、并且其中至少有一个事务存在写操作;所述节点的权重值取决于请求事务的权重值或数据库服务器上的所有正在执行事务的权重值之和,其中事务的权重值取决于事务的复杂度;所述边的权重值取决于存在冲突关系的两个节点所代表的事务共同访问的数据项总数;步骤二、采用图的分割法,将所述无向图划分成k个分区,k是所有的数据库服务器节点总数,其中每个数据库服务器节点都唯一的归属于不同的分区中,并按照跨越不同分区的边的权重值总和最小,同时每个分区内的数据库服务器节点权重值达到均衡的分区原则,将所有请求事务节点划分到相应的分区中;步骤三、负载均衡器根据步骤二的分区结果,逐一将请求事务分配给同一分区内的数据库服务器执行、处理。为了达到上述目的,本专利技术还提供了一种数据库集群系统的负载均衡装置,包括有负载均衡器,连接客户端和数据库服务器,用于接收客户端请求的并发事务,其中客户端请求的并发事务简称为请求事务,并将各个数据库服务器的正在执行的事务和请求事务之间的冲突关系建模为具有权重值的无向图,然后采用图的分割法,将所述无向图划分成k个分区,k是所有的数据库服务器节点总数,其中每个数据库服务器节点都唯一的归属于不同的分区中,并按照跨越不同分区的边的权重值总和最小,同时每个分区内的数据库服务器节点权重值达到均衡的分区原则,将所有请求事务节点划分到相应的分区中,最后根据分区结果,将所述请求事务分配给同一分区内的数据库服务器执行。与现有技术相比,本专利技术的有益效果是本专利技术同时考虑了事务之间的冲突关系和数据库集群系统的负载均衡问题,首先将数据库服务器和客户端的请求事务之间的冲突关系建模为具有权重值的无向图,再采用图的分割法,按照跨越不同分区的边的权重值总和最小,同时每个分区内的数据库服务器节点权重值达到均衡的分区原则,将所有请求事务节点划分到系统中各个数据库服务器节点所在的分区中,从而将具有冲突关系的事务尽可能的分配至最少的数据库服务器上,有效降低中止率,同时还使各个数据库服务器达到负载均衡;由于数据库服务器在处理互相冲突的事务时会发生锁冲突,因此对每个数据库服务器中的事务执行和完成状态进行跟踪,如果监测到数据库服务器中的冲突比例值 Thrashing大于冲突临界值CR时,则暂缓该数据库服务器中下一个请求事务的执行,从而有效避免了因为过多的锁冲突而形成数据过载现象。附图说明图1是本专利技术一种数据库集群系统的负载均衡实现方法流程图。图2是将数据库服务器的正在执行的事务和请求事务之间的冲突关系建模为无向图的一个实施例的示意图。图3是图1步骤二的具体操作流程图。图4是针对图2所示的无向图实施例,采用图的分割法将所有请求事务节点进行分区后的结果示意图。图5是当负载均衡器向所述数据库服务器分配一个请求事务时的具体操作流程图。图6本专利技术一种数据库集群系统的组成结构示意图。图7是采用Random、MPF、GBCA时的中止率随客户端连接数的变化曲线图。图8是分别采用Rando本文档来自技高网
...

【技术保护点】
1.一种数据库集群系统的负载均衡实现方法,其特征在于,所述方法包括有:步骤一、负载均衡器将各个数据库服务器的正在执行的事务和客户端请求的并发事务之间的冲突关系建模为具有权重值的无向图,其中客户端请求的并发事务简称为请求事务:该无向图中,节点集是数据库服务器节点和请求事务节点的集合,其中数据库服务器节点代表该数据库服务器上的所有正在执行的事务,请求事务节点代表客户端请求的并发事务;边集是数据库服务器上正在执行的事务和请求事务之间的冲突关系集合,其中所述事务之间的冲突关系是指多个事务共同访问同一数据项目、并且其中至少有一个事务存在写操作;所述节点的权重值取决于请求事务的权重值或数据库服务器上的所有正在执行事务的权重值之和,其中事务的权重值取决于事务的复杂度;所述边的权重值取决于存在冲突关系的两个节点所代表的事务共同访问的数据项总数;步骤二、采用图的分割法,将所述无向图划分成k个分区,k是所有的数据库服务器节点总数,其中每个数据库服务器节点都唯一的归属于不同的分区中,并按照跨越不同分区的边的权重值总和最小,同时每个分区内的数据库服务器节点权重值达到均衡的分区原则,将所有请求事务节点划分到相应的分区中;步骤三、负载均衡器根据步骤二的分区结果,逐一将请求事务分配给同一分区内的数据库服务器执行、处理。...

【技术特征摘要】

【专利技术属性】
技术研发人员:廖建新王晶王纯李炜郑安根朱晓民张磊徐童张乐剑沈奇威樊利民程莉
申请(专利权)人:北京邮电大学
类型:发明
国别省市:11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1