[发明专利]处理数据库操作请求的方法、设备和系统在审
| 申请号: | 201310465319.7 | 申请日: | 2013-10-08 |
| 公开(公告)号: | CN103559204A | 公开(公告)日: | 2014-02-05 |
| 发明(设计)人: | 陈超;桂勇哲;代兵;朱超;王超 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F9/50 |
| 代理公司: | 北京市中伦律师事务所 11410 | 代理人: | 张思悦 |
| 地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 处理 数据库 操作 请求 方法 设备 系统 | ||
技术领域
本发明涉及数据库技术,尤其涉及一种处理数据库操作请求的方法、设备和系统。
背景技术
随着计算机网络的快速发展,出现了具有大量用户的网络应用,这些网络应用需要存储大量的用户数据以及相关数据。先前的单台数据存储服务器的数据存储方式已经不能满足当前网络应用的数据存储要求。目前数据库在使用中普遍采用主-从架构,一般来说,有一个主数据库服务器、多个从数据库服务器,所有的写操作都由主数据库服务器来执行,而从数据库服务器承担绝大部分的读操作。另外,在应用服务器和数据库服务器之间会部署中间层服务器,其负责管理应用服务器对数据库服务器的数据存取服务,通常提供例如读写分离、负载均衡、故障迁移、SQL过滤,连接池等功能。
由于数据库连接需要进行各种初始化操作,不但消耗大量系统资源,而且数据还会很缓慢,因此目前在中间层服务器中采用了连接池技术,连接池是创建和管理连接的缓冲池,这些连接事先准备好被任何需要它们的应用程序请求使用。
图1示意性地图示了一个典型的连接池模型。如图1所示,在中间层服务器中,每当从应用服务器接收到数据存取请求时,就会创建一个工作线程来处理这个请求。工作线程在使用数据库连接的时候从连接池队列头中拿出连接,使用完后放入连接池队列的队尾。
然而,到数据库的连接有默认超时时间,因此在连接池中的连接在一段时间之后会超时,并导致连接失效,并需要重新去建立连接。由于网络用户的特殊特点,网络应用服务会具有不同的访问高峰,当应用服务处于访问高峰时期,访问量会非常大,为了提高并行处理能力,连接池中创建出大量的后端连接。但是当高峰时期过去后,这些后端连接会被放入到连接池中作为可用连接,连接池的队列会被拉长,当一段时间后会出现如示意性地图示连接池模型的超时情况的图2所示的现象:靠近队列头部的一部分连接会超时或者临界超时。如果临界超时的连接被工作线程得到,恰恰又在即将执行操作之前超时,那么继续使用此连接将会出错。
发明内容
鉴于上述问题,提出了本发明,以便提供一种克服上述问题或者至少部分地解决上述问题的处理数据库操作请求的方法、设备和系统。
依据本发明的一个方面,提供了一种处理数据库操作请求的方法,包括步骤:接收对于数据库的操作请求;以及从与各数据库服务器连接的连接队列中,取出超时时间值最大的连接来处理相应的操作请求。
可选地,在根据本发明的实施例的处理数据库操作请求的方法中,还包括步骤:在操作请求处理完成后,将用于处理该操作请求的连接放回该连接队列中,将该连接的超时时间值设置为预先定义的默认值。
可选地,在根据本发明的实施例的处理数据库操作请求的方法中,还包括步骤:在该连接队列中的连接的超时时间值为零时,关闭该连接,并将其从该连接队列中删除。
可选地,在根据本发明的实施例的处理数据库操作请求的方法中,还包括步骤:在接收到对于数据库的操作请求时,如果该连接队列中没有用于处理该操作请求的连接,则创建与该数据库服务器的连接,并将其用于处理该操作请求。
可选地,在根据本发明的实施例的处理数据库操作请求的方法中,在该连接队列中,按照超时时间值从小到大的顺序,排列各个连接,超时时间值最大的连接排列在队列尾部,超时时间值最小的连接排列在队列头部。
可选地,在根据本发明的实施例的处理数据库操作请求的方法中,在该从与各数据库服务器连接的连接队列中取出超时时间值最大的连接来处理相应的操作请求的步骤中,从该连接队列的尾部取出连接来处理相应的操作请求;并且在操作请求处理完成后,将该连接放回该连接队列的尾部。
可选地,在根据本发明的实施例的处理数据库操作请求的方法中,其中在该接收对于数据库的操作请求的步骤中,从应用服务器接收应用程序对于数据库的操作请求。
可选地,在根据本发明的实施例的处理数据库操作请求的方法中,每个连接队列用于处理来自相应应用程序的操作请求。
可选地,在根据本发明的实施例的处理数据库操作请求的方法中,该数据库是MySQL数据库。
依据本发明的另一个方面,提供了一种处理数据库操作请求的设备,包括:应用接口,适于接收对于数据库的操作请求;以及数据库接口,适于从与各数据库服务器连接的连接队列中,取出超时时间值最大的连接来处理相应的操作请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310465319.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种煤气生产的油渣二次气化处理方法
- 下一篇:一种氯化石蜡的制备方法





