CN103559204A - 处理数据库操作请求的方法、设备和系统 - Google Patents

处理数据库操作请求的方法、设备和系统 Download PDF

Info

Publication number
CN103559204A
CN103559204A CN201310465319.7A CN201310465319A CN103559204A CN 103559204 A CN103559204 A CN 103559204A CN 201310465319 A CN201310465319 A CN 201310465319A CN 103559204 A CN103559204 A CN 103559204A
Authority
CN
China
Prior art keywords
connection
database
operation requests
queue
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201310465319.7A
Other languages
English (en)
Inventor
陈超
桂勇哲
代兵
朱超
王超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201310465319.7A priority Critical patent/CN103559204A/zh
Publication of CN103559204A publication Critical patent/CN103559204A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Abstract

本发明公开了一种处理数据库操作请求的方法、设备和系统,其中该方法包括步骤:接收对于数据库的操作请求;以及从与各数据库服务器连接的连接队列中,取出超时时间值最大的连接来处理相应的操作请求;其中该设备包括:应用接口,适于接收对于数据库的操作请求;以及数据库接口,适于从与各数据库服务器连接的连接队列中,取出超时时间值最大的连接来处理相应的操作请求。

Description

处理数据库操作请求的方法、设备和系统
技术领域
本发明涉及数据库技术,尤其涉及一种处理数据库操作请求的方法、设备和系统。
背景技术
随着计算机网络的快速发展,出现了具有大量用户的网络应用,这些网络应用需要存储大量的用户数据以及相关数据。先前的单台数据存储服务器的数据存储方式已经不能满足当前网络应用的数据存储要求。目前数据库在使用中普遍采用主-从架构,一般来说,有一个主数据库服务器、多个从数据库服务器,所有的写操作都由主数据库服务器来执行,而从数据库服务器承担绝大部分的读操作。另外,在应用服务器和数据库服务器之间会部署中间层服务器,其负责管理应用服务器对数据库服务器的数据存取服务,通常提供例如读写分离、负载均衡、故障迁移、SQL过滤,连接池等功能。
由于数据库连接需要进行各种初始化操作,不但消耗大量系统资源,而且数据还会很缓慢,因此目前在中间层服务器中采用了连接池技术,连接池是创建和管理连接的缓冲池,这些连接事先准备好被任何需要它们的应用程序请求使用。
图1示意性地图示了一个典型的连接池模型。如图1所示,在中间层服务器中,每当从应用服务器接收到数据存取请求时,就会创建一个工作线程来处理这个请求。工作线程在使用数据库连接的时候从连接池队列头中拿出连接,使用完后放入连接池队列的队尾。
然而,到数据库的连接有默认超时时间,因此在连接池中的连接在一段时间之后会超时,并导致连接失效,并需要重新去建立连接。由于网络用户的特殊特点,网络应用服务会具有不同的访问高峰,当应用服务处于访问高峰时期,访问量会非常大,为了提高并行处理能力,连接池中创建出大量的后端连接。但是当高峰时期过去后,这些后端连接会被放入到连接池中作为可用连接,连接池的队列会被拉长,当一段时间后会出现如示意性地图示连接池模型的超时情况的图2所示的现象:靠近队列头部的一部分连接会超时或者临界超时。如果临界超时的连接被工作线程得到,恰恰又在即将执行操作之前超时,那么继续使用此连接将会出错。
发明内容
鉴于上述问题,提出了本发明,以便提供一种克服上述问题或者至少部分地解决上述问题的处理数据库操作请求的方法、设备和系统。
依据本发明的一个方面,提供了一种处理数据库操作请求的方法,包括步骤:接收对于数据库的操作请求;以及从与各数据库服务器连接的连接队列中,取出超时时间值最大的连接来处理相应的操作请求。
可选地,在根据本发明的实施例的处理数据库操作请求的方法中,还包括步骤:在操作请求处理完成后,将用于处理该操作请求的连接放回该连接队列中,将该连接的超时时间值设置为预先定义的默认值。
可选地,在根据本发明的实施例的处理数据库操作请求的方法中,还包括步骤:在该连接队列中的连接的超时时间值为零时,关闭该连接,并将其从该连接队列中删除。
可选地,在根据本发明的实施例的处理数据库操作请求的方法中,还包括步骤:在接收到对于数据库的操作请求时,如果该连接队列中没有用于处理该操作请求的连接,则创建与该数据库服务器的连接,并将其用于处理该操作请求。
可选地,在根据本发明的实施例的处理数据库操作请求的方法中,在该连接队列中,按照超时时间值从小到大的顺序,排列各个连接,超时时间值最大的连接排列在队列尾部,超时时间值最小的连接排列在队列头部。
可选地,在根据本发明的实施例的处理数据库操作请求的方法中,在该从与各数据库服务器连接的连接队列中取出超时时间值最大的连接来处理相应的操作请求的步骤中,从该连接队列的尾部取出连接来处理相应的操作请求;并且在操作请求处理完成后,将该连接放回该连接队列的尾部。
可选地,在根据本发明的实施例的处理数据库操作请求的方法中,其中在该接收对于数据库的操作请求的步骤中,从应用服务器接收应用程序对于数据库的操作请求。
可选地,在根据本发明的实施例的处理数据库操作请求的方法中,每个连接队列用于处理来自相应应用程序的操作请求。
可选地,在根据本发明的实施例的处理数据库操作请求的方法中,该数据库是MySQL数据库。
依据本发明的另一个方面,提供了一种处理数据库操作请求的设备,包括:应用接口,适于接收对于数据库的操作请求;以及数据库接口,适于从与各数据库服务器连接的连接队列中,取出超时时间值最大的连接来处理相应的操作请求。
可选地,在根据本发明的实施例的处理数据库操作请求的设备中,该数据库接口还适于在操作请求处理完成后,将用于处理该操作请求的连接放回该连接队列中,该设备还包括:超时时间设置器,适于在该数据库接口将该连接放回该连接队列后,将该连接的超时时间值设置为预先定义的默认值。
可选地,在根据本发明的实施例的处理数据库操作请求的设备中,该数据库接口还适于在该连接队列中的连接的超时时间值为零时,关闭该连接,并将其从该连接队列中删除。
可选地,在根据本发明的实施例的处理数据库操作请求的设备中,还包括连接创建器,在该应用接口接收到对于数据库的操作请求时,如果该连接队列中没有用于处理该操作请求的连接,则该连接创建器创建与该数据库服务器的连接,该数据库接口将该连接用于处理该操作请求。
可选地,在根据本发明的实施例的处理数据库操作请求的设备中,该数据库接口还适于在该连接队列中,按照超时时间值从小到大的顺序,排列各个连接,其中将超时时间值最大的连接排列在队列尾部,并且将超时时间值最小的连接排列在队列头部。
可选地,在根据本发明的实施例的处理数据库操作请求的设备中,该数据库接口从该连接队列的尾部取出连接来处理相应的操作请求,并且在操作请求处理完成后,将该连接放回该连接队列的尾部。
可选地,在根据本发明的实施例的处理数据库操作请求的设备中,该应用接口从应用服务器接收应用程序对于数据库的操作请求。
可选地,在根据本发明的实施例的处理数据库操作请求的设备中,每个连接队列用于处理来自相应应用程序的操作请求。
可选地,在根据本发明的实施例的处理数据库操作请求的设备中,该数据库是MySQL数据库。
依据本发明的又一个方面,提供了一种处理数据库操作请求的系统,包括:根据本发明的实施例的处理数据库操作请求的设备;一个或者多个应用服务器,适于向该设备发送对于数据库的操作请求;以及数据库服务器,适于根据该设备从该连接队列中取出的一个或多个连接,处理该操作请求。
本发明提供了上述处理数据库操作请求的方法、设备和系统。根据本发明的实施例,可以接收对于数据库的操作请求,然后从与各数据库服务器连接的连接队列中,取出超时时间值最大的连接来处理相应的操作请求。由此,可以利用超时时间值最大的连接来处理操作请求,而不会使用超时或者临界超时的连接来处理操作请求,从而有效地避免了使用临界超时的连接造成的操作请求执行失败的问题。另外,根据本发明的实施例,在连接队列中,可以按照超时时间值从小到大的顺序,排列各个连接,超时时间值最大的连接排列在队列尾部,超时时间值最小的连接排列在队列头部,从而可以从所述连接队列的尾部取出连接来处理相应的操作请求,并且在操作请求处理完成后将所述连接放回所述连接队列的尾部,由此确保总是可以利用超时时间值最大的连接来处理操作请求。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示意性地图示了一个典型的连接池模型;
图2示意性地图示了连接池模型的超时情况;
图3示意性地图示了根据本发明的实施例的处理数据库操作请求的方法的流程图;
图4示意性地图示了根据本发明的实施例的连接池模型;
图5示意性地图示了根据本发明的实施例的包含多个数据库服务器、多个应用程序、以及连接池的整体结构;以及
图6示意性地图示了根据本发明的实施例的包含处理数据库操作请求的设备、多个数据库服务器、多个应用服务器的系统的框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图3示意性地图示了根据本发明的实施例的处理数据库操作请求的方法100的流程图。
根据本发明的实施例,数据库例如可以是MySQL数据库。在下文中,以MySQL数据库为例,对本发明的原理进行描述,然而,这只是为了示例的目的,本发明的范围并不限于此,本发明的原理同样适用于其它类型的数据库,例如IBM DB2、Oracle等数据库。
如图3所示,根据本发明的实施例的处理数据库操作请求的方法100始于步骤S101,其中,接收对于数据库的操作请求。可选地,在步骤S101中,例如可以从一个或多个应用服务器接收对于数据库的操作请求。
根据本发明的实施例,在步骤S101之后,执行步骤S103,其中,从与各数据库服务器连接的连接队列中,取出超时时间值最大的连接来处理相应的操作请求。
可选地,可以创建用于处理该操作请求的工作线程,然后利用该工作线程,从与各数据库服务器连接的连接队列中,取出超时时间值最大的一个或多个连接来处理相应的操作请求,即,按照超时时间从大到小的顺序,取出一个或多个连接,来处理相应的操作请求。
以下,提供从连接队列中取出连接的处理的示例代码,以帮助读者理解本发明的原理,然而这并非是要将本发明的范围限制于此。连接队列中取出连接的处理对应于散列表(hash table)以及队列操作的过程。
Figure BDA0000392395680000061
Figure BDA0000392395680000071
根据本发明的实施例,可选地,该方法100还可以包括以下步骤:在操作请求处理完成后,将用于处理该操作请求的连接放回该连接队列中,将该连接的超时时间值设置为预先定义的默认值。可选地,超时时间是从连接一开始被创建或者从使用连接执行操作开始计时的,即,在创建连接时、或者在操作请求处理完成后将连接放回连接队列时,将连接的超时时间值设置为预先定义的默认值,该默认值可以根据实际情况(例如网络流量等因素)来选择。
以下,提供将连接放回连接队列的处理的示例代码,以帮助读者理解本发明的原理,然而这并非是要将本发明的范围限制于此。
Figure BDA0000392395680000072
下面参照图4来描述步骤S103的处理。图4示意性地图示了根据本发明的实施例的连接队列(连接池)模型。如图4所示,从连接队列的尾部取出连接(例如可以利用工作线程执行此操作),这是因为每个来自应用服务器的对于数据库的操作请求都会创建一个到数据库的后端连接,并放在连接队列的尾部,因此在连接队列中,越靠近尾部的连接是越活跃的,超时时间越大。即,在该连接队列中,按照超时时间值从小到大的顺序,排列各个连接,超时时间值最大的连接排列在队列尾部,超时时间值最小的连接排列在队列头部。
根据本发明的实施例,在操作请求处理完成后,将该连接放回该连接队列的尾部(例如可以利用工作线程执行此操作)。
本领域技术人员能够理解,上述图4中从尾部取出连接来处理操作请求的方式仅为示例,本发明的范围不限于此,例如,基于不同的布置,也可以从连接队列的其它部分取出连接来处理操作请求,只要此连接的超时时间值在所有连接中最大即可。
可选地,根据本发明的实施例,该方法100还可以包括如下步骤:在该连接队列中的连接的超时时间值为零时,关闭该连接,并将其从该连接队列中删除。连接队列中已经超时的连接,如果再被用于处理操作请求,会异步触发事件,因此需要关闭这样的连接,并且将其从连接队列中删除。
以下,提供将连接从连接队列中删除的处理的示例代码,以帮助读者理解本发明的原理,然而这并非是要将本发明的范围限制于此。其中,当一个连接超时时,可以关闭(close)套接字,并且从连接队列中删除该连接。
Figure BDA0000392395680000081
Figure BDA0000392395680000091
可选地,根据本发明的实施例,该方法100还可以包括如下步骤:在接收到对于数据库的操作请求时,如果该连接队列中没有用于处理该操作请求的连接,则创建与该数据库服务器的连接,并将其用于处理该操作请求。可选地,可以使用Socket系统调用来创建一个套接字。如上所述,此时例如可以将该连接的超时时间值设置为预先定义的默认值,并将该连接置于连接队列的尾部。
图5示意性地图示了根据本发明的实施例的包含多个数据库服务器、多个应用程序、以及连接队列(连接池)的整体结构。如图5所示,可以有多个数据库服务器,它们分别接收来自一个或者多个应用程序对于数据库的操作请求,而对应于每个连接队列,可以设置一个连接队列,每个连接队列用于处理来自相应应用程序的操作请求。可选地,从连接队列中取出超时时间值最大的一个或多个连接来处理来自相应的应用程序的操作请求,例如可以利用工作线程执行此操作。在操作请求处理完成后,可以将连接放回连接队列的尾部,例如可以利用工作线程执行此操作。
本领域技术人员应当理解,图5所示出的结构仅为示例,用于帮助读者理解本发明的原理,而本发明的范围并不限于此。本领域技术人员可以根据实际情况采用其它结构,例如每个应用程序对应于多个连接队列和工作线程,也同样可以实现本发明的目的。
本发明提供了上述处理数据库操作请求的方法。根据本发明的实施例,可以接收对于数据库的操作请求,然后从与各数据库服务器连接的连接队列中,取出超时时间值最大的连接来处理相应的操作请求。由此,可以利用超时时间值最大的连接来处理操作请求,而不会使用超时或者临界超时的连接来处理操作请求,从而有效地避免了使用临界超时的连接造成的操作请求执行失败的问题。另外,根据本发明的实施例,在连接队列中,可以按照超时时间值从小到大的顺序,排列各个连接,超时时间值最大的连接排列在队列尾部,超时时间值最小的连接排列在队列头部,从而可以从连接队列的尾部取出连接来处理相应的操作请求,并且在操作请求处理完成后将该连接放回该连接队列的尾部,由此确保总是可以利用超时时间值最大的连接来处理操作请求。
与上述方法100相对应,本发明还提供了一种处理数据库操作请求的设备200。图6示意性地图示了根据本发明的实施例的包含处理数据库操作请求的设备、多个数据库服务器、多个应用服务器的系统的框图。
如图6所示,该设备200主要包括应用接口201以及数据库接口203。其中,应用接口201接收对于数据库的操作请求,然后,数据库接口203从与各数据库服务器连接的连接队列中,取出超时时间值最大的连接来处理相应的操作请求。应用接口201和数据库接口203可以分别用于执行上述方法100中的步骤S101和S103。
根据本发明的实施例,数据库例如可以是MySQL数据库。在下文中,以MySQL数据库为例,对本发明的原理进行描述,然而,这只是为了示例的目的,本发明的范围并不限于此,本发明的原理同样适用于其它类型的数据库,例如IBM DB2、Oracle等数据库。
根据本发明的实施例,首先,应用接口201可以接收对于数据库的操作请求。可选地,应用接口201例如可以从一个或多个应用服务器(例如,图6所示的应用服务器300-1、…、300-n)接收对于数据库的操作请求。
根据本发明的实施例,之后,数据库接口203可以从与各数据库服务器连接的连接队列中,取出超时时间值最大的连接来处理相应的操作请求。
可选地,数据库接口203可以创建用于处理该操作请求的工作线程,然后利用该工作线程,从与各数据库服务器连接的连接队列中,取出超时时间值最大的一个或多个连接来处理相应的操作请求,即,数据库接口203按照超时时间从大到小的顺序,取出一个或多个连接,来处理相应的操作请求。
根据本发明的实施例,在操作请求处理完成后,该数据库接口203可以将用于处理该操作请求的连接放回该连接队列中。可选地,并且如图6所示,该设备200还可以包括可选设备—超时时间设置器205,用于在该数据库接口203将该连接放回连接队列后,将该连接的超时时间值设置为预先定义的默认值。可选地,超时时间是从连接一开始被创建或者从使用连接执行操作开始计时的,即,在创建连接时、或者在操作请求处理完成后数据库接口203将连接放回连接队列时,超时时间设置器205可以将连接的超时时间值设置为预先定义的默认值,该默认值可以根据实际情况(例如网络流量等因素)来选择。
下面参照图4来描述数据库接口203的处理。图4示意性地图示了根据本发明的实施例的连接队列(连接池)模型。如图4所示,数据库接口203可以从连接队列的尾部取出连接(例如可以利用工作线程执行此操作),这是因为每个来自应用服务器的对于数据库的操作请求都会创建一个到数据库的后端连接,并放在连接队列的尾部,因此在连接队列中,越靠近尾部的连接是越活跃的,超时时间越大。即,数据库接口203在该连接队列中,按照超时时间值从小到大的顺序,排列各个连接,超时时间值最大的连接排列在队列尾部,超时时间值最小的连接排列在队列头部。
根据本发明的实施例,在操作请求处理完成后,数据库接口203将该连接放回该连接队列的尾部(例如可以利用工作线程执行此操作)。
本领域技术人员能够理解,上述数据库接口203从尾部取出连接来处理操作请求的方式仅为示例,本发明的范围不限于此,例如,基于不同的布置,数据库接口203也可以从连接队列的其它部分取出连接来处理操作请求,只要此连接的超时时间值在所有连接中最大即可。
可选地,根据本发明的实施例,数据库接口203可以在该连接队列中的连接的超时时间值为零时,关闭该连接,并将其从该连接队列中删除。连接队列中已经超时的连接,如果再被用于处理操作请求,会异步触发事件,因此数据库接口203需要关闭这样的连接,并且将其从连接队列中删除。
可选地,并且如图6所示,根据本发明的实施例,所示设备200还可以包括可选设备—连接创建器207,在应用接口201接收到对于数据库的操作请求时,如果该连接队列中没有用于处理该操作请求的连接,则连接创建器207创建与该数据库服务器的连接,数据库接口203将其用于处理该操作请求。可选地,连接创建器207可以使用Socket系统调用来创建一个套接字。如上所述,此时超时时间设置器205例如可以将该连接的超时时间值设置为预先定义的默认值,并且数据库接口203可以将该连接置于连接队列的尾部。
图5示意性地图示了根据本发明的实施例的包含多个数据库服务器、多个应用程序、以及连接队列(连接池)的整体结构。如图5所示,可以有多个数据库服务器,它们分别接收来自一个或者多个应用程序对于数据库的操作请求,而对应于每个连接队列,可以设置一个连接队列,每个连接队列用于处理来自相应应用程序的操作请求。可选地,数据库接口203可以从连接队列中取出超时时间值最大的一个或多个连接来处理来自相应的应用程序的操作请求,例如可以利用工作线程执行此操作。在操作请求处理完成后,数据库接口203可以将连接放回连接队列的尾部,例如可以利用工作线程执行此操作。
本领域技术人员应当理解,图5所示出的结构仅为示例,用于帮助读者理解本发明的原理,而本发明的范围并不限于此。本领域技术人员可以根据实际情况采用其它结构,例如每个应用程序对应于多个连接队列和工作线程,也同样可以实现本发明的目的。
由于上述各设备实施例与前述各方法实施例相对应,因此不再对各设备实施例进行详细描述。
根据本发明的又一方面,还提供了一种处理数据库操作请求的系统1000。参见图4,系统1000包括上述设备200;一个或者多个应用服务器300-1,…,300-n,适于向设备200发送对于数据库的操作请求;以及一个或者多个数据库服务器400-1,…,400-n,适于根据设备200从该连接队列中取出的一个或多个连接,处理该操作请求。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的装置中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个装置中。可以把实施例中的若干模块组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者模块中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个装置实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的装置中的一些或者全部模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种处理数据库操作请求的方法(100),包括步骤:
接收对于数据库的操作请求(S101);以及
从与各数据库服务器连接的连接队列中,取出超时时间值最大的连接来处理相应的操作请求(S103)。
2.如权利要求1所述的方法,还包括步骤:
在操作请求处理完成后,将用于处理该操作请求的连接放回所述连接队列中,将所述连接的超时时间值设置为预先定义的默认值。
3.如权利要求1所述的方法,还包括步骤:
在所述连接队列中的连接的超时时间值为零时,关闭所述连接,并将其从所述连接队列中删除。
4.如权利要求1至3所述的方法,还包括步骤:
在接收到对于数据库的操作请求时,如果所述连接队列中没有用于处理所述操作请求的连接,则创建与所述数据库服务器的连接,并将其用于处理所述操作请求。
5.如权利要求1至4中的任一项所述的方法,其中在所述连接队列中,按照超时时间值从小到大的顺序,排列各个连接,超时时间值最大的连接排列在队列尾部,超时时间值最小的连接排列在队列头部。
6.一种处理数据库操作请求的设备(200),包括:
应用接口(201),适于接收对于数据库的操作请求;以及
数据库接口(203),适于从与各数据库服务器连接的连接队列中,取出超时时间值最大的连接来处理相应的操作请求。
7.如权利要求6所述的设备,其中所述数据库接口(203)还适于在操作请求处理完成后,将用于处理该操作请求的连接放回所述连接队列中,
所述设备还包括:超时时间设置器(205),适于在所述数据库接口(203)将所述连接放回所述连接队列后,将所述连接的超时时间值设置为预先定义的默认值。
8.如权利要求6所述的设备,其中所述数据库接口(203)还适于在所述连接队列中的连接的超时时间值为零时,关闭所述连接,并将其从所述连接队列中删除。
9.如权利要求6至8所述的设备,还包括连接创建器(207),在所述应用接口(201)接收到对于数据库的操作请求时,如果所述连接队列中没有用于处理所述操作请求的连接,则所述连接创建器(207)创建与所述数据库服务器的连接,所述数据库接口(203)将该连接用于处理所述操作请求。
10.一种处理数据库操作请求的系统(1000),包括:
如权利要求6-9所述的设备(200);
一个或者多个应用服务器(300-1,…,300-n),适于向所述设备(200)发送对于数据库的操作请求;以及
数据库服务器(400-1,…,400-n),适于根据所述设备(200)从所述连接队列中取出的一个或多个连接,处理所述操作请求。
CN201310465319.7A 2013-10-08 2013-10-08 处理数据库操作请求的方法、设备和系统 Pending CN103559204A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310465319.7A CN103559204A (zh) 2013-10-08 2013-10-08 处理数据库操作请求的方法、设备和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310465319.7A CN103559204A (zh) 2013-10-08 2013-10-08 处理数据库操作请求的方法、设备和系统

Publications (1)

Publication Number Publication Date
CN103559204A true CN103559204A (zh) 2014-02-05

Family

ID=50013451

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310465319.7A Pending CN103559204A (zh) 2013-10-08 2013-10-08 处理数据库操作请求的方法、设备和系统

Country Status (1)

Country Link
CN (1) CN103559204A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636131A (zh) * 2014-12-12 2015-05-20 北京奇虎科技有限公司 一种特殊指令的执行方法及装置
CN108965164A (zh) * 2017-05-17 2018-12-07 北京京东尚科信息技术有限公司 基于消息队列的业务请求重传方法、装置及可读存储介质
CN109815287A (zh) * 2019-01-30 2019-05-28 网易(杭州)网络有限公司 一种数据库访问系统
CN112817933A (zh) * 2020-12-30 2021-05-18 国电南京自动化股份有限公司 一种弹性数据库连接池的管理方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6105067A (en) * 1998-06-05 2000-08-15 International Business Machines Corp. Connection pool management for backend servers using common interface
US20040088413A1 (en) * 2002-11-04 2004-05-06 Bhogi Sankara R. Dynamically configurable resource pool
US20050108710A1 (en) * 2000-12-05 2005-05-19 Kestutis Patiejunas System and method for implementing a client side HTTP stack
CN1622528A (zh) * 2003-11-26 2005-06-01 国际商业机器公司 有效的连接池管理系统和方法
CN1758606A (zh) * 2004-10-08 2006-04-12 国际商业机器公司 用于自主管理连接池的方法和设备
CN102193820A (zh) * 2010-03-03 2011-09-21 软件股份公司 用于向应用提供异构连接对象的连接处理器和方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6105067A (en) * 1998-06-05 2000-08-15 International Business Machines Corp. Connection pool management for backend servers using common interface
US20050108710A1 (en) * 2000-12-05 2005-05-19 Kestutis Patiejunas System and method for implementing a client side HTTP stack
US20040088413A1 (en) * 2002-11-04 2004-05-06 Bhogi Sankara R. Dynamically configurable resource pool
CN1622528A (zh) * 2003-11-26 2005-06-01 国际商业机器公司 有效的连接池管理系统和方法
CN1758606A (zh) * 2004-10-08 2006-04-12 国际商业机器公司 用于自主管理连接池的方法和设备
CN102193820A (zh) * 2010-03-03 2011-09-21 软件股份公司 用于向应用提供异构连接对象的连接处理器和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
宋善德等: "基于JAVA的WEB数据库连接池技术的研究", 《计算机工程与应用》 *
成培等: "连接池数据库访问技术深入研究", 《计算机工程与设计》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636131A (zh) * 2014-12-12 2015-05-20 北京奇虎科技有限公司 一种特殊指令的执行方法及装置
CN104636131B (zh) * 2014-12-12 2018-07-27 北京奇虎科技有限公司 一种特殊指令的执行方法及装置
CN108965164A (zh) * 2017-05-17 2018-12-07 北京京东尚科信息技术有限公司 基于消息队列的业务请求重传方法、装置及可读存储介质
CN108965164B (zh) * 2017-05-17 2021-12-07 北京京东尚科信息技术有限公司 基于消息队列的业务请求重传方法、装置及可读存储介质
CN109815287A (zh) * 2019-01-30 2019-05-28 网易(杭州)网络有限公司 一种数据库访问系统
CN112817933A (zh) * 2020-12-30 2021-05-18 国电南京自动化股份有限公司 一种弹性数据库连接池的管理方法及装置

Similar Documents

Publication Publication Date Title
US11455217B2 (en) Transaction consistency query support for replicated data from recovery log to external data stores
US20230138736A1 (en) Cluster file system-based data backup method and apparatus, and readable storage medium
US8380680B2 (en) Piecemeal list prefetch
US20170220628A1 (en) Verifying data consistency
US8140537B2 (en) Block level tagging with file level information
US20160179919A1 (en) Asynchronous data replication using an external buffer table
CN111324610A (zh) 一种数据同步的方法及装置
CN104239133A (zh) 一种日志处理方法、装置及服务器
US9971563B2 (en) Systems and methods for low interference logging and diagnostics
CN109951553B (zh) 数据处理方法、系统、电子设备以及计算机可读存储介质
CN111865970A (zh) 用于实现接口幂等性的方法和装置
CN103559204A (zh) 处理数据库操作请求的方法、设备和系统
CN105045789A (zh) 一种游戏服务器数据库缓存方法及系统
CN103593406A (zh) 一种静态资源标识处理方法及装置
CN109597697B (zh) 一种资源撮合处理方法及装置
CN105389394A (zh) 基于多个数据库集群的数据请求处理方法及装置
US10761940B2 (en) Method, device and program product for reducing data recovery time of storage system
US8862544B2 (en) Grid based replication
GB2525613A (en) Reduction of processing duplicates of queued requests
US9866444B2 (en) Dynamic conversion of hardware resources of a server system
US9619153B2 (en) Increase memory scalability using table-specific memory cleanup
CN113760861A (zh) 一种数据迁移的方法和装置
US20210141759A1 (en) Synchronous object placement for information lifecycle management
CN113760600A (zh) 一种数据库备份方法、数据库还原方法和相关装置
CN105138342A (zh) 一种服务开发方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20140205