一种数据库连接的管理方法及装置的制作方法

文档序号:6426380阅读:139来源:国知局
专利名称:一种数据库连接的管理方法及装置的制作方法
技术领域
本发明属于数据库访问技术,尤其涉及一种数据库连接的管理方法及装置。
背景技术
如今,大量应用需要访问数据库以获得所需要的数据。然而,一般的分布式数据库服务器存在以下缺点(1)每个数据库提供的服务是一样的,没有根据数据库压力和业务逻辑需要提供多样性服务;( 数据库调度模块仅仅根据数据库服务的压力状况分配服务,没有考虑到数据库操作的优先级。

发明内容
本发明提供一种数据库连接的管理方法及装置以解决上述问题。本发明提供一种数据库连接的管理方法,包括以下步骤。数据库调度进程从业务逻辑进程接收数据库操作请求,并根据数据库操作请求的业务类型的优先级及业务类型与数据库执行进程的映射关系将数据库操作请求发送至对应的数据库执行进程。对应的数据库执行进程从数据库调度进程接收数据库操作请求。数据库执行进程判断数据库操作请求的类型,并调用与数据库操作请求的类型相对应的数据库连接堆栈内的连接,以执行数据库操作请求。于连接执行数据库操作请求后,数据库执行进程将处于打开状态的连接放回至数据库连接堆栈,供下一次调用。本发明还提供一种数据库连接的管理装置,包括调度模块、接收模块、判断模块以及连接管理模块。调度模块用于从业务逻辑进程接收数据库操作请求。接收模块与调度模块相连,调度模块根据数据库操作请求的业务类型的优先级及业务类型与数据库执行进程的映射关系将数据库操作请求发送至对应的接收模块。判断模块与接收模块相连,并用于判断数据库操作请求的类型。连接管理模块与判断模块相连,并用于调用与数据库操作请求的类型相对应的数据库连接堆栈内的连接,以执行数据库操作请求。于连接执行数据库操作请求后,连接管理模块用于将处于打开状态的连接放回至数据库连接堆栈,供下一次调用。相较于先前技术,根据本发明提供的数据库连接的管理方法及装置,数据库调度进程根据数据库操作请求的业务类型的优先级及业务类型与数据库执行进程的映射关系将数据库操作请求发送至对应的数据库执行进程。如此,有利于负荷平衡,从而提高数据库整体执行效率。此外,通过数据库连接堆栈实现数据库连接的循环使用,同时防止建立过多数据库连接占用系统内存。而且,于连接执行数据库操作请求后,处于打开状态的连接将被放回至数据库连接堆栈。如此,可循环使用已经打开的连接,从而提高连接的使用效率。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中
图1所示为根据本发明的较佳实施例提供的数据库连接的管理方法的流程图;图2所示为根据本发明的较佳实施例提供的数据库连接的管理方法的流程图;图3所示为根据本发明的较佳实施例提供的数据库连接的管理装置的示意图;图4所示为根据本发明的较佳实施例提供的控制模块的示意图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。图1所示为根据本发明的较佳实施例提供的数据库连接的管理方法的流程图。如图ι所示,本发明较佳实施例提供的数据库连接的管理方法包括步骤101 104。于步骤 101中,数据库调度进程从业务逻辑进程接收数据库操作请求,并根据数据库操作请求的业务类型的优先级及业务类型与数据库执行进程的映射关系将数据库操作请求发送至对应的数据库执行进程。于步骤102中,对应的数据库执行进程从数据库调度进程接收数据库数据请求。于步骤103中,数据库执行进程判断数据库操作请求的类型,并调用与数据库操作请求的类型相对应的数据库连接堆栈内的连接,以执行数据库操作请求。于步骤104中, 于连接执行数据库操作请求后,数据库执行进程将处于打开状态的连接放回至数据库连接堆栈,供下一次调用。如下对上述过程进行详细说明。请参考图2。图2所示为根据本发明的较佳实施例提供的数据库连接的管理方法的流程图。如图2所示,本实施例提供的数据库连接的管理方法包括步骤201 207。于步骤201中,数据库调度进程从业务逻辑进程接收数据库操作请求。于步骤202中,数据库调度进程根据数据库操作请求的业务类型的优先级以及业务类型与数据库执行进程的映射关系将数据库操作请求发送至对应的数据库执行进程。于此,数据库操作请求的业务类型包括用户信息管理、离线信息管理以及聊天信息管理。然而,本发明对此不作限定。于实际应用中,可根据需要设置其他的业务类型。具体而言,当数据库调度进程接收数据库操作请求后,根据数据库操作请求的业务类型的优先级,采用任务队列管理数据库操作请求的执行顺序。于此,优先执行业务类型优先级较高的数据库操作请求。举例而言,用户信息管理的优先级高于离线信息管理及聊天信息管理,离线信息管理的优先级高于聊天信息管理,此时,对用户信息管理的操作(例如,查询或修改)优先处理,接着,对离线信息管理及聊天信息管理的操作依次执行。此外,数据库调度进程根据业务类型与数据库执行进程的映射关系将数据库操作请求发送至对应的数据库执行进程。举例而言,若关于用户信息管理的业务类型对应于数据库执行进程1,关于离线信息管理的业务类型对应于数据库执行进程2,关于聊天信息管理的业务类型对应于数据库执行进程3,结合上述业务类型的优先级,则数据库调度进程优先将有关用户信息管理的数据库操作请求发送至数据库执行进程1,然后依次将有关离线信息管理的数据库操作请求发送至数据库执行进程2,将有关聊天信息管理的数据库操作请求发送至数据库执行进程3。于步骤203中,数据库执行进程接收数据库操作请求后判断数据库操作请求的类型。于此,数据库操作请求的类型包括查询、增加、删除以及修改。然而,本发明并不限定于
5此。具体而言,当数据库执行进程接收数据库操作请求后,首先将接收到的数据库操作请求放入任务队列中。然后,数据库执行进程按照任务队列调度的数据库操作请求,判断数据库操作请求的类型。然而,本发明并不限定于此。于其他实施例中,数据库执行进程接收数据库操作请求后可先判断数据库操作请求的类型,然后,按照数据库操作请求的类型将数据库操作请求放入不同的任务队列中,供后续执行。接下来,以查询操作为例进行详细说明,其他操作的执行与查询操作的执行相同, 故于此不再赘述。于本实施例中,根据数据库操作请求的类型,对不同的数据库操作请求调用其对应的数据库连接堆栈内的连接,以执行所述数据库操作请求,从而提高数据库执行效率。于步骤204中,数据库执行进程判断与查询操作对应的数据库查询连接堆栈是否存在信号量。于此,信号量的值即为数据库查询连接堆栈内的连接的剩余数量。若数据库查询连接堆栈的信号量等于0,即数据库查询连接堆栈内无可用连接时,数据库操作请求(即查询任务)需等待直至有可用连接再进行执行。若数据库查询连接堆栈具有信号量,即数据库查询连接堆栈具有可用连接时,数据库执行进程调用数据库查询连接堆栈内的一条连接,同时信号量减一(如步骤205)。接着,于步骤206中,判断上述连接是否处于打开状态。 若连接处于打开状态,则连接执行数据库操作请求,并于执行完成后将处于打开状态的此条连接放回至数据库查询连接堆栈内,同时信号量加一(如步骤207)。若连接处于关闭状态,则先打开连接后再执行步骤207。然而,本发明并不限定于此。于实际应用中,数据库执行进程可同时调用数据库查询连接堆栈内的多条连接,以同时执行多个数据库操作请求。如此,数据库连接堆栈内的连接可循环使用,从而提高利用率。而且,连接一旦被打开后一直处于打开状态,从而极大程度地节省了连接打开所耗费的时间,提高了数据库的执行效率。于此,使用信号量对可用连接的数量实时监控,从而避免多个数据库操作请求同时调用一个连接时造成连接失败的问题。图3所示为根据本发明较佳实施例提供的数据库连接的管理装置的示意图。如图 3所示,本实施例提供的数据库连接的管理装置包括调度模块300、接收模块301、判断模块 302、连接管理模块303以及控制模块304。其中,调度模块300与接收模块301相连,判断模块302与接收模块301相连,连接管理模块303与判断模块302相连,控制模块304与连接管理模块303相连。于本实施例中,调度模块300用于从业务逻辑进程接收数据库操作请求,并根据数据库操作请求的业务类型的优先级及业务类型与数据库执行进程的映射关系将数据库操作请求发送至对应的接收模块301。判断模块302用于判断接收到的数据库操作请求的类型。连接管理模块303用于调用与数据库操作请求的类型相对应的数据库连接堆栈内的连接,以执行数据库操作请求。此外,于连接执行数据库操作请求后,连接管理模块303将处于打开状态的连接放回至数据库连接堆栈,供下一次调用。具体过程同前所述,故于此不再赘述。关于控制模块304如下详述。图4所示为根据本发明较佳实施例提供的控制模块304的示意图。如图4所示, 以数据库查询连接堆栈及数据库修改连接堆栈为例进行说明。当数据库查询操作请求的数目大于数据库查询连接堆栈内可用连接的最大值,且数据库修改操作请求的数目小于数据库修改连接堆栈内可用连接的最大值时,控制模块304锁定数据库修改连接堆栈,并调用数据库修改连接堆栈内的剩余连接,且于控制模块304解除数据库修改连接的锁定后,上述剩余连接执行相应数目的数据库查询操作请求。当数据库修改操作请求的数目大于数据库修改连接堆栈内可用连接的最大值,且数据库查询操作请求的数目小于数据库查询连接堆栈内可用连接的最大值时,控制模块304锁定数据库查询连接堆栈,并调用数据库查询连接堆栈内的剩余连接,且于控制模块304解除数据库查询连接的锁定后,上述剩余连接执行相应数目的数据库修改操作请求。同理,控制模块对数据库增加连接堆栈及数据库删除连接堆栈亦有相同处理。举例而言,当数据库修改操作请求有5个,数据库修改连接堆栈内可用连接的最大值为10个,而数据库查询操作请求有22个,数据库查询连接堆栈内可用连接最大值为20 个。此时,控制模块304先锁定数据库修改连接堆栈,并调用数据库修改连接堆栈内的2个剩余连接。之后,控制模块304解除对数据库修改连接堆栈的锁定。控制模块304调用的数据库修改连接堆栈内的2个剩余连接执行超过数据库查询连接堆栈的可用连接最大值的2 个数据库查询操作请求。于上述数据库查询操作请求执行完成后,控制模块304锁定数据库修改连接堆栈,并将调用的数据库修改连接堆栈内的2个剩余连接放回至数据库修改连接堆栈。之后,控制模块304解除对数据库修改连接堆栈的锁定。然而,本发明并不限定于此。于其他实施例中,于上述数据库查询操作请求执行完成后,控制模块304调用的数据库修改连接堆栈内的2个剩余连接可直接存放在数据库查询连接堆栈内。当数据库修改操作请求有5个,数据库修改连接堆栈内可用连接的最大值为10 个,而数据库查询操作请求有27个,数据库查询连接堆栈内可用连接最大值为20个。此时, 控制模块304先锁定数据库修改连接堆栈,并调用数据库修改连接堆栈内的5个剩余连接。 之后,控制模块304解除对数据库修改连接堆栈的锁定。控制模块304调用的数据库修改连接堆栈内的5个剩余连接执行超过数据库查询连接堆栈的可用连接最大值的5个数据库查询操作请求。另外,剩下2个数据库查询操作请求放入任务队列中,等待后续的执行。于上述数据库查询操作请求执行完成后,控制模块304锁定数据库修改连接堆栈,并将调用的数据库修改连接堆栈内的5个剩余连接放回至数据库修改连接堆栈。之后,控制模块304 解除对数据库修改连接堆栈的锁定。然而,本发明并不限定于此。于其他实施例中,于上述数据库查询操作请求执行完成后,控制模块304调用的数据库修改连接堆栈内的2个剩余连接可直接存放在数据库查询连接堆栈内。如此,充分利用了数据库修改连接堆栈内的空闲连接,提高了连接的利用率,同时亦提高了数据库的整体执行效率。然而,本发明并不限定于此。于其他实施例中,当数据库查询连接堆栈内的连接不够用时,亦可创建新的连接执行相应的查询操作。综上所述,根据本发明较佳实施例提供的数据库连接的管理方法及装置,数据库调度进程根据数据库操作请求的业务类型的优先级及业务类型与数据库执行进程的映射关系将数据库操作请求发送至对应的数据库执行进程。如此,有利于负荷平衡,从而提高数据库整体执行效率。此外,通过数据库连接堆栈实现数据库连接的循环使用,同时防止建立过多数据库连接占用系统内存。而且,于连接执行数据库操作请求后,处于打开状态的连接被放回至数据库连接堆栈。如此,可循环使用已经打开的连接,从而提高连接的使用效率。 另外,根据数据库操作请求的类型调用与其相对应的数据库连接堆栈内的连接,如此,对数据库操作进行分离,提高数据库执行效率。 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种数据库连接的管理方法,其特征在于,包括以下步骤数据库调度进程从业务逻辑进程接收数据库操作请求,并根据数据库操作请求的业务类型的优先级及业务类型与数据库执行进程的映射关系将所述数据库操作请求发送至对应的数据库执行进程;所述对应的数据库执行进程从所述数据库调度进程接收所述数据库操作请求;所述数据库执行进程判断所述数据库操作请求的类型,并调用与所述数据库操作请求的类型相对应的数据库连接堆栈内的连接,以执行所述数据库操作请求;于所述连接执行所述数据库操作请求后,所述数据库执行进程将所述处于打开状态的连接放回至所述数据库连接堆栈,供下一次调用。
2.根据权利要求1所述的数据库连接的管理方法,其特征在于,所述业务类型包括用户信息管理、离线信息管理以及聊天信息管理。
3.根据权利要求1所述的数据库连接的管理方法,其特征在于,所述数据库连接堆栈包括数据库查询连接堆栈、数据库增加连接堆栈、数据库删除连接堆栈及数据库修改连接堆栈。
4.根据权利要求3所述的数据库连接的管理方法,其特征在于,所述数据库操作请求的类型包括查询、增加、删除及修改。
5.根据权利要求4所述的数据库连接的管理方法,其特征在于,当数据库查询操作请求的数目大于数据库查询连接堆栈内可用连接的最大值,且数据库修改操作请求的数目小于数据库修改连接堆栈内可用连接的最大值时,控制模块锁定上述数据库修改连接堆栈, 并调用上述数据库修改连接堆栈内的剩余连接,且于上述控制模块解除上述数据库修改连接堆栈的锁定后,上述剩余连接执行相应数目的数据库查询操作请求。
6.一种数据库连接的管理装置,其特征在于,包括调度模块,用于从业务逻辑进程接收数据库操作请求,;接收模块,与所述调度模块相连,所述调度模块根据数据库操作请求的业务类型的优先级及业务类型与数据库执行进程的映射关系将所述数据库操作请求发送至对应的接收模块;判断模块,与所述接收模块相连,用于判断所述数据库操作请求的类型;连接管理模块,与所述判断模块相连,用于调用与所述数据库操作请求的类型相对应的数据库连接堆栈内的连接,以执行所述数据库操作请求,并于所述连接执行所述数据库操作请求后,所述连接管理模块将所述处于打开状态的连接放回至所述数据库连接堆栈, 供下一次调用。
7.根据权利要求6所述的数据库连接的管理装置,其特征在于,所述业务类型包括用户信息管理、离线信息管理及聊天信息管理。
8.根据权利要求6所述的数据库连接的管理装置,其特征在于,所述数据库连接堆栈包括数据库查询连接堆栈、数据库增加连接堆栈、数据库删除连接堆栈及数据库修改连接堆栈。
9.根据权利要求8所述的数据库连接的管理装置,其特征在于,所述数据库操作请求的类型包括查询、增加、删除及修改。
10.根据权利要求9所述的数据库连接的管理装置,其特征在于,还包括控制模块,当数据库查询操作请求的数目大于数据库查询连接堆栈内可用连接的最大值,且数据库修改操作请求的数目小于数据库修改连接堆栈内可用连接的最大值时,所述控制模块锁定数据库修改连接堆栈,并调用上述数据库修改连接堆栈内的剩余连接,且于上述控制模块解除上述数据库修改连接堆栈的锁定后,上述剩余连接执行相应数目的数据库查询操作请求。
全文摘要
本发明提供一种数据库连接的管理方法及装置。上述方法包括以下步骤。数据库调度进程从业务逻辑进程接收数据库操作请求,并根据数据库操作请求的业务类型的优先级及业务类型与数据库执行进程的映射关系将数据库操作请求发送至对应的数据库执行进程。对应的数据库执行进程从数据库调度进程接收数据库操作请求。数据库执行进程判断数据库操作请求的类型,并调用与数据库操作请求的类型相对应的数据库连接堆栈内的连接,以执行数据库操作请求。于连接执行数据库操作请求后,数据库执行进程将处于打开状态的连接放回至数据库连接堆栈,供下一次调用。
文档编号G06F17/30GK102243653SQ20111016129
公开日2011年11月16日 申请日期2011年6月16日 优先权日2011年6月16日
发明者胡加明 申请人:苏州阔地网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1