[发明专利]一种数据库连接的管理方法及系统有效
申请号: | 201210103841.6 | 申请日: | 2012-04-10 |
公开(公告)号: | CN103365929A | 公开(公告)日: | 2013-10-23 |
发明(设计)人: | 谢宇 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库连接 管理 方法 系统 | ||
技术领域
本申请涉及数据库技术领域,特别是涉及一种数据库连接的管理方法及系统。
背景技术
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。
传统的数据库连接方式中,一个数据库连接对象均对应一个物理数据库连接,数据库连接的建立以及关闭对系统而言是耗费系统资源的操作。
数据库连接池正是针对这个问题提出来的。数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,数据库连接池负责分配、管理和释放这些数据库连接。具体的,数据库连接池允许应用程序重复使用一个现有的数据库连接,而再不必重新建立一个;而且,通过释放空闲时间超过最大空闲时间的数据库连接,来避免因为没有释放数据库连接而引起的数据库连接遗漏。通过数据库连接池,应用程序可以减少对数据库连接操作,因此这项技术能明显提高对数据库操作的性能。
目前,一些大型或复杂的应用系统中,都会使用数据库连接池技术来管理数据库连接资源。现有技术中,通常一个数据库对应建立一个连接池,各个连接池的管理都相互独立。但是,随着业务的增加,数据库也会随之增加,例如,互联网应用的数据库随着业务的增加而不断增加,并且不断融入各种类型的数据库,如RDBMS数据库(Relational DataBase Management System,关系型数据库管理系统)、nosql数据库(非关系型的数据库)等,平均每年增加管理的连接池数量成百上千地增长。
在这种情况下,针对数以千计的数据库连接池,如何控制连接资源以提高访问效率,是后台管理中非常关键的技术问题。
发明内容
本申请提供了一种数据库连接的管理方法及系统,以解决很多个连接池资源的管理问题。
为了解决上述问题,本申请公开了一种数据库连接的管理方法,包括:
接收客户端发来的数据库访问请求,并从该请求的内容中获取操作类型和目标连接的关键字;
在内存的连接池管理表中查询与所述目标连接的关键字相匹配的连接池对象,并从查询到的连接池对象中获得连接资源;其中,所述内存的连接池管理表中记录了对应每个数据库建立的连接池对象,连接池对象中的每个连接资源都用于连接到该连接池对象对应的数据库;
依据所述连接资源连接相应数据库,并将本次连接记录到数据库连接管理表中;其中,所述数据库连接管理表中保存了连接到每个数据库的连接记录;
依据所述操作类型执行相应的数据库操作,并将操作结果返回;
检测所述连接资源管理表,并依据该检测对连接进行回收。
优选地,如果没有查询到与所述目标连接的关键字相匹配的连接池对象,则从查询到的连接池对象中分配连接资源之前,还包括:从磁盘上查询与所述目标连接的关键字相匹配的连接池配置信息,依据所述配置信息在内存建立新的连接池对象,并将所述新的连接池对象添加到所述连接池管理表中。
优选地,如果一个数据库根据操作类型建立了多个连接池对象,则还包括:根据操作类型和目标连接的关键字查询内存的连接池管理表中是否有相匹配的连接池对象。
优选地,所述连接池管理表采用“关键字-值”结构的哈希表管理所有已建立的连接池对象;则所述在内存的连接池管理表中查询与所述目标连接的关键字相匹配的连接池对象,包括:查询所述哈希表中与所述目标连接的关键字相匹配的哈希表关键字;该哈希表关键字对应的值指向内存中的一个连接池对象。
优选地,所述方法还包括:根据请求的内容判断请求类型,所述请求类型包括单库操作请求和分布式操作请求;如果是分布式操作请求,则:将所述请求内容进行拆分,并获取对应每个单库的操作类型和目标连接的关键字;在内存的连接池管理表中查询与每个目标连接的关键字相匹配的连接池对象,并从查询到的连接池对象中获得连接资源;依据每个连接资源分别连接相应的数据库,并将本次连接记录到数据库连接管理表中;依据每个操作类型分别执行相应的单库操作,并将单库的操作结果进行合并后返回;检测所述连接资源管理表,并依据该检测对连接进行回收。
优选地,所述检测所述连接资源管理表,并依据该检测对连接进行回收,包括:统计当前连接的最后一次访问时间和访问次数;检测所述连接资源管理表中对应当前连接池对象的连接数量是否超过配置的上限,如果超过,则启动异步线程进行连接的回收。
优选地,所述异步线程进行的连接的回收包括:检测所述当前连接池对象中超时的连接,并将所述超时的连接放入第一回收列表中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210103841.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种新型双钢板混凝土连梁与混凝土剪力墙的组合节点
- 下一篇:一种道路检测车