CN103365929A - 一种数据库连接的管理方法及系统 - Google Patents
一种数据库连接的管理方法及系统 Download PDFInfo
- Publication number
- CN103365929A CN103365929A CN2012101038416A CN201210103841A CN103365929A CN 103365929 A CN103365929 A CN 103365929A CN 2012101038416 A CN2012101038416 A CN 2012101038416A CN 201210103841 A CN201210103841 A CN 201210103841A CN 103365929 A CN103365929 A CN 103365929A
- Authority
- CN
- China
- Prior art keywords
- connection
- connection pool
- database
- pool object
- resource
- 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.)
- Granted
Links
Images
Abstract
本申请提供了一种数据库连接的管理方法及系统,以解决很多个连接池资源的管理问题。所述方法包括:接收客户端发来的数据库访问请求,并从该请求的内容中获取操作类型和目标连接的关键字;在内存的连接池管理表中查询与所述目标连接的关键字相匹配的连接池对象,并从查询到的连接池对象中获得连接资源;依据所述连接资源连接相应数据库,并将本次连接记录到数据库连接管理表中;依据所述操作类型执行相应的数据库操作,并将操作结果返回;检测所述连接资源管理表,并依据该检测对连接进行回收。本申请可将上千个连接池资源统一管理起来,对应的数据库连接都通过平台统一调度和控制,与现有技术中各连接池的相互独立管理相比,显著提高了访问效率。
Description
技术领域
本申请涉及数据库技术领域,特别是涉及一种数据库连接的管理方法及系统。
背景技术
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。
传统的数据库连接方式中,一个数据库连接对象均对应一个物理数据库连接,数据库连接的建立以及关闭对系统而言是耗费系统资源的操作。
数据库连接池正是针对这个问题提出来的。数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,数据库连接池负责分配、管理和释放这些数据库连接。具体的,数据库连接池允许应用程序重复使用一个现有的数据库连接,而再不必重新建立一个;而且,通过释放空闲时间超过最大空闲时间的数据库连接,来避免因为没有释放数据库连接而引起的数据库连接遗漏。通过数据库连接池,应用程序可以减少对数据库连接操作,因此这项技术能明显提高对数据库操作的性能。
目前,一些大型或复杂的应用系统中,都会使用数据库连接池技术来管理数据库连接资源。现有技术中,通常一个数据库对应建立一个连接池,各个连接池的管理都相互独立。但是,随着业务的增加,数据库也会随之增加,例如,互联网应用的数据库随着业务的增加而不断增加,并且不断融入各种类型的数据库,如RDBMS数据库(Relational DataBase Management System,关系型数据库管理系统)、nosql数据库(非关系型的数据库)等,平均每年增加管理的连接池数量成百上千地增长。
在这种情况下,针对数以千计的数据库连接池,如何控制连接资源以提高访问效率,是后台管理中非常关键的技术问题。
发明内容
本申请提供了一种数据库连接的管理方法及系统,以解决很多个连接池资源的管理问题。
为了解决上述问题,本申请公开了一种数据库连接的管理方法,包括:
接收客户端发来的数据库访问请求,并从该请求的内容中获取操作类型和目标连接的关键字;
在内存的连接池管理表中查询与所述目标连接的关键字相匹配的连接池对象,并从查询到的连接池对象中获得连接资源;其中,所述内存的连接池管理表中记录了对应每个数据库建立的连接池对象,连接池对象中的每个连接资源都用于连接到该连接池对象对应的数据库;
依据所述连接资源连接相应数据库,并将本次连接记录到数据库连接管理表中;其中,所述数据库连接管理表中保存了连接到每个数据库的连接记录;
依据所述操作类型执行相应的数据库操作,并将操作结果返回;
检测所述连接资源管理表,并依据该检测对连接进行回收。
优选地,如果没有查询到与所述目标连接的关键字相匹配的连接池对象,则从查询到的连接池对象中分配连接资源之前,还包括:从磁盘上查询与所述目标连接的关键字相匹配的连接池配置信息,依据所述配置信息在内存建立新的连接池对象,并将所述新的连接池对象添加到所述连接池管理表中。
优选地,如果一个数据库根据操作类型建立了多个连接池对象,则还包括:根据操作类型和目标连接的关键字查询内存的连接池管理表中是否有相匹配的连接池对象。
优选地,所述连接池管理表采用“关键字-值”结构的哈希表管理所有已建立的连接池对象;则所述在内存的连接池管理表中查询与所述目标连接的关键字相匹配的连接池对象,包括:查询所述哈希表中与所述目标连接的关键字相匹配的哈希表关键字;该哈希表关键字对应的值指向内存中的一个连接池对象。
优选地,所述方法还包括:根据请求的内容判断请求类型,所述请求类型包括单库操作请求和分布式操作请求;如果是分布式操作请求,则:将所述请求内容进行拆分,并获取对应每个单库的操作类型和目标连接的关键字;在内存的连接池管理表中查询与每个目标连接的关键字相匹配的连接池对象,并从查询到的连接池对象中获得连接资源;依据每个连接资源分别连接相应的数据库,并将本次连接记录到数据库连接管理表中;依据每个操作类型分别执行相应的单库操作,并将单库的操作结果进行合并后返回;检测所述连接资源管理表,并依据该检测对连接进行回收。
优选地,所述检测所述连接资源管理表,并依据该检测对连接进行回收,包括:统计当前连接的最后一次访问时间和访问次数;检测所述连接资源管理表中对应当前连接池对象的连接数量是否超过配置的上限,如果超过,则启动异步线程进行连接的回收。
优选地,所述异步线程进行的连接的回收包括:检测所述当前连接池对象中超时的连接,并将所述超时的连接放入第一回收列表中。
优选地,如果所述当前连接池对象中未超时的连接数量仍超过配置的上限,则所述异步线程进行的连接的回收还包括:计算预备回收数量;检测所述当前连接池对象中各连接的权重,并将符合所述预备回收数量的权重小的连接放入第二回收列表中;将所述第一回收列表和第二回收列表进行合并,并将合并后的回收列表中的连接进行销毁。
优选地,所述检测当前连接池对象中各连接的权重,并将符合所述预备回收数量的权重小的连接放入第二回收列表中,包括:根据访问时间和访问次数计算所述当前连接池对象中每个连接的权重;按照下述步骤遍历当前连接池对象中的每个连接,直到遍历完当前连接池对象中的所有连接:当第二回收列表中的连接数量未达到预备回收数量时,依次将每个连接按照权重大小放入第二回收列表中的合适位置;当第二回收列表中的连接数量达到预备回收数量时,依次比较当前连接池对象中每个连接的权重是否小于第二回收列表中连接的最大权重,如果是,则将当前连接池对象中的连接按照权重大小放入第二回收列表中的合适位置,并将第二回收列表中权重最大的连接放回当前连接池对象中。
优选地,所述计算预备回收数量,包括:将当前连接池对象配置的连接数量上限的一半作为预备回收后剩余的数量;将当前连接池对象中的连接数量减去所述预备回收后剩余的数量,得到所述的预备回收数量。
优选地,所述将合并后的回收列表中的连接进行销毁时,还包括:销毁连接前检查该连接是否正在被使用,如果是,则放弃销毁。
本申请还提供了一种数据库连接的管理系统,包括:
获取模块,用于接收客户端发来的数据库访问请求,并从该请求的内容中获取操作类型和目标连接的关键字;
内存查询模块,用于在内存的连接池管理表中查询与所述目标连接的关键字相匹配的连接池对象,并从查询到的连接池对象中获得连接资源;其中,所述内存的连接池管理表中记录了对应每个数据库建立的连接池对象,连接池对象中的每个连接资源都用于连接到该连接池对象对应的数据库;
数据库连接模块,用于依据所述连接资源连接相应数据库,并将本次连接记录到数据库连接管理表中;其中,所述数据库连接管理表中保存了连接到每个数据库的连接记录;
执行操作模块,用于依据所述操作类型执行相应的数据库操作,并将操作结果返回;
连接回收模块,用于检测所述连接资源管理表,并依据该检测对连接进行回收。
与现有技术相比,本申请包括以下优点:
首先,本申请将数以千计的数据库连接池通过统一的平台进行管理,对应的数据库访问请求进入平台的统一查询入口,平台从请求的内容中获取操作类型和目标连接的关键字,并基于所述目标连接的关键字在内存查询相匹配的连接池对象,并从查询到的连接池对象中为该请求分配连接资源,然后依据所述连接资源连接相应数据库(数据源),并依据所述操作类型执行相应的数据库操作。通过所述的方法,平台可以将上千个连接池资源统一管理起来,对应的数据库连接都通过平台统一调度和控制,与现有技术中各连接池的相互独立管理相比,显著提高了访问效率。
其次,本申请中多个不同类型的数据源放在内存中统一管理,可同时使用多个数据源并可将各数据源执行后的操作结果合并,而现有技术中一个请求仅仅连接同一个目标数据源。
再次,本申请以权重为基础,并结合最近最久未使用策略计算权重,对内存中的连接进行回收,以提高命中率和整体的访问效率。
进一步地,本申请还利用“超时+权重”来回收连接,以降低资源开销,即在基于权重踢出连接的基础上,增加超时的机制,以将更多不必要的连接资源踢出,更加节约系统的资源。
当然,实施本申请的任一产品不一定需要同时达到以上所述的所有优点。
附图说明
图1是本申请实施例所述的平台示意图;
图2是本申请实施例所述一种提取目标数据源的流程图;
图3是本申请优选实施例所述提取目标数据源的流程图;
图4是本申请实施例所述内存连接的回收流程图;
图5是本申请实施例所述一种数据库连接的管理系统结构图;
图6是本申请另一实施例所述一种数据库连接的管理系统结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请提出一种数据库连接的管理方法,将数以千计的数据库连接池通过统一的平台进行管理,对应的数据库访问请求进入平台的统一查询入口,并通过该入口获取到内存的连接资源,依据连接资源连接到目标数据源。
进一步地,所述的管理方法还可以按照一定的策略对内存中的连接进行回收管理,以进一步提高命中率和整体的访问效率。
参照图1所示,其为本申请实施例所述的平台示意图。
所述平台可称为统一管理平台1,该统一管理平台1将现有技术中分散的数量众多的连接池进行统一管理。所述统一管理平台1在内存建立连接池仓库,连接池仓库中存放着很多连接池对象2。通常情况下,统一管理平台1在内存中对应一个数据库(也称为数据源)建立一个连接池对象2,该连接池对象2中存放着多个用于连接该数据库的连接资源,根据用户或操作类型等因素,不同的连接资源可分配给不同的请求。在本申请的各个实施例中,所述连接池对象2即指连接池。
其中,所述连接资源记录了与数据库建立连接状态的基本信息,如连接数据库的IP地址、端口、用户名、密码等信息。这些连接资源在第一次与数据库建立连接时被记录下来,后续的请求再次连接同一个数据库时,可以重复使用一个现有的数据库连接,而再不必重新建立一个,由于很多系统开销来源于建立数据库连接的过程,因此连接池技术大大降低了这种开销。
所述统一管理平台1通过连接池管理表管理成百上千的连接池对象2,每当在内存建立一个新的连接池对象2时,就在所述连接池管理表中记录下来。
所述统一管理平台1控制管理的这些数据库可以是各种不同类型的数据库,如RDBMS数据库、nosql数据库等,这些不同类型的数据源可以放在平台的内存中进行统一管理。
为了方便用户使用,所述统一管理平台1提供了客户端程序和简洁统一的用户操作界面。当用户要访问某个数据库时,通过客户端程序提供的入口提交访问请求,统一管理平台1的服务器端接收到该请求后,调度分配连接资源,并连接请求的目标数据库。
实际应用中,上述统一管理平台提供给网站系统的后台内部人员使用,这些后台内部人员由于业务处理的需要,常常要访问网站系统中的多个数据库,通过统一管理平台提供的客户端程序,可以直接提交访问请求,并通过统一管理平台的服务器端连接目标数据库。而所述统一管理平台使用本申请实施例所述的连接池技术管理着网站系统内部的很多个数据库,并为后台内部人员提供快速访问服务。
基于以上内容,下面通过实施例从目标数据源的提取和内存连接的回收两个方面,对本申请所述的数据库连接的管理方法进行详细说明。
参照图2所示,其为本申请实施例所述一种提取目标数据源的流程图。
上述统一管理平台的处理步骤如下:
步骤201,接收客户端发来的数据库访问请求,并从该请求的内容中获取操作类型和目标连接的关键字;
如前所述,所述客户端是指统一管理平台提供的客户端。
所述操作类型可以是查询、修改、表结构变更等数据库操作,其中查询可分为单库查询和分布式查询等。
所述目标连接的关键字可以标识出该请求要访问的连接池对象。
步骤202,在内存的连接池管理表中查询与所述目标连接的关键字相匹配的连接池对象,并从查询到的连接池对象中获得连接资源;
其中,所述内存的连接池管理表中记录了对应每个数据库建立的连接池对象,连接池对象中的每个连接资源都用于连接到该连接池对象对应的数据库;
内存的连接池仓库中保存着非常多的连接资源,本实施例中,在平台系统的内存中,连接池管理表可采用“关键字-值”(key-value)结构的哈希表来管理所有已建立的连接池对象。其中,哈希表的关键字表示为连接池对象的标识,对应着目标连接的关键字;哈希表的值可以表示为一个地址或指针,指向内存中的连接池对象。
查询时,可查找所述哈希表中与所述目标连接的关键字相匹配的哈希表关键字,当查找到时,该哈希表关键字对应的值指向目标连接池对象。
查询到目标操作的连接池对象后,该连接池对象为所述请求分配一个连接资源。连接池对象的具体分配策略可根据实际应用来确定,如根据操作类型,或者按照用户进行分配,等等,本实施例对此不作限定。
需要说明的是,上述实施例是通过查询哈希表来获取目标操作的连接池对象,但实际应用中也可以采用其他查询方式。
而且,每个数据库可建立至少一个(即一个或多个)连接池对象。通常,每个数据库建立一个连接池对象,但是有些数据库操作非常耗费资源和时间,此时可以针对同一数据库再建立一个或多个连接池对象,在新建立的连接池对象中保存的连接资源用于分配给这些耗时的操作。
这种情况下,如果一个数据库根据操作类型建立了多个连接池对象,则还可以“操作类型+目标连接的关键字”作为连接池对象的唯一标识,并根据操作类型和目标连接的关键字来查询内存中是否有相匹配的连接池对象。例如,某数据库中大部分是读操作(查询操作),如果请求的是读操作,就直接使用目标连接的关键字查询;如果是其他操作,如修改、删除等操作,为了不与读操作干扰,就使用“操作类型+目标连接的关键字”来独立申请一个连接池做操作。
步骤203,依据所述连接资源连接相应数据库,并将本次连接记录到数据库连接管理表中;
其中,所述数据库连接管理表中保存了连接到每个数据库的连接记录;
如前所述,连接资源中记录了连接数据库的IP地址、端口、用户名、密码等信息,统一管理平台获得连接资源后,就可以通过该连接资源连接目标操作的数据库。
同时,统一管理平台还会将当前的这个连接记录到所述数据库连接管理表中。实际应用中,每个连接池对象(即每个数据库)可以分别建立一张数据库连接管理表,也可以建议一张数据库连接管理表,统一管理所有的连接池对象中的连接,此时只需要标记出每个连接对应着哪个连接池对象即可。
步骤204,依据所述操作类型执行相应的数据库操作,并将操作结果返回;
综上所述,通过图2所示的步骤,实现了目标数据源的提取。平台可以将上千个连接池资源统一管理起来,所有的数据库连接都通过平台统一调度和控制,与现有技术中各连接池的相互独立管理相比,明显提高了访问效率。
步骤205,检测所述连接资源管理表,并依据该检测对连接进行回收。
连接的回收是对平台内存中连接池仓库的一种管理策略,具体内容将在下面的图4实施例中进行详细说明。
上述图2所示的实施例提供了数据库连接的管理中提取目标数据源的方法,基于此,如果步骤202没有查询到与所述目标连接的关键字相匹配的连接池对象,则从查询到的连接池对象中分配连接资源之前,还可以包括以下步骤的处理:
从磁盘上查询与所述目标连接的关键字相匹配的连接池配置信息,依据所述配置信息在内存建立新的连接池对象,并将所述新的连接池对象添加到所述连接池管理表中。
进一步地,数据库操作包括单库操作和分布式操作,如果是单库操作,则请求中目标连接的关键字标识一个连接池对象;如果是分布式操作,请求中就会标识出需要访问多个连接池对象,即对多个数据库进行访问操作。
下面通过另一优选实施例进行详细说明。
参照图3所示,其为本申请优选实施例所述提取目标数据源的流程图。
步骤301,接收数据库访问请求,并根据请求的内容判断请求类型;
请求类型包括单库操作请求和分布式操作请求。
步骤302,获取操作类型和目标连接的关键字;
如果是单库操作请求,则直接从请求中获取操作类型和目标连接的关键字;
如果是分布式操作请求,则需要将所述请求内容进行拆分,并获取对应每个单库的操作类型和目标连接的关键字。其中,每个单库的操作类型可以相同,也可以不同,实际应用中很多是相同的情况。例如,分布式查询,每个单库的操作类型都是查询操作,但操作对象则分散到多个数据库中,并且还需要将实际的执行脚本进行拆分。
步骤303,根据操作类型、目标连接从内存哈希表中查找连接池对象,并获得连接资源;
如前所述,对于查询操作,可以直接使用目标连接的关键字查询哈希表;如果是其他操作,如修改、删除等操作,为了不与查询操作干扰,就使用“操作类型+目标连接的关键字”来独立申请一个连接池做操作。
如果是单库操作,则直接从内存哈希表中查找连接池对象,并分配连接资源;
如果是分布式操作,则有多个目标连接的关键字,因此在内存哈希表中查询与每个目标连接的关键字相匹配的连接池对象,并从每个查询到的连接池对象中分配连接资源。
步骤304,如果哈希表查询失败,则从磁盘上查询连接池配置信息,创建新的连接池对象,并放入所述哈希表中;然后,从所述新建的连接池对象中获得连接资源;
若内存哈希表中查询不到对应的连接池对象,则从磁盘上查询对应的配置信息,并装入内存,依据所述配置信息在内存建立不同连接池对象,并将其放入内存的哈希表中。其中,所述配置信息包括连接数据库的IP地址、端口、用户名、密码等信息。
步骤305,依据连接资源连接数据库,并将本次连接记录到数据库连接管理表中;
如果是分布式操作,则依据每个连接资源分别连接相应的数据库。
步骤306,依据操作类型执行相应操作,并返回操作结果;
步骤307,如果是分布式操作,则依据每个操作类型分别执行相应的单库操作,并将单库的操作结果进行合并后返回;
步骤308,检测所述连接资源管理表,并依据该检测对连接进行回收。
经过图3的流程,多个不同类型的数据源放在内存中统一管理,并且对于分布式操作,可同时使用多个数据源并可将各数据源执行后的操作结果合并,而现有技术中一个请求仅仅连接同一个目标数据源。
经过上述图2和图3,目标数据源的提取已经说明,但是由于建立的连接随着时间的增加而增加,一个小应用就连接资源是无法同时承受上千连接目标,并根据操作类型不同建立不同的连接池对象,这样建立的连接就会有数千个,这些连接都保存在内存中,不会被释放,应用是无法承受这样的连接请求的,所以本申请还对连接池仓库进行了独立的管理,管理方法是进行连接回收。
回收连接的主要目的一个是节约资源,在小的应用中提高访问的连接个数,并具有良好的扩展性,而回收节点的方法和思路将决定连接的命中率和整体的效率,因为很多开销的来源在于连接的建立过程的代价较大。很多连接可能几小时只使用一次,有些连接可能每秒发生多次,并在访问同一个库上周期性的频率具有集中性,使用常规的最近最久未使用算法效果并不好,如:最近10分钟被访问上百次的连接,可能会被1分钟频繁的单次或几次访问的连接踢出,尤其是在分布式查询上体现得非常明显。
参照图4所示,其为本申请实施例所述内存连接的回收流程图。
步骤401,每次依据连接资源连接相应数据库时,统计当前连接的最后一次访问时间和访问次数;并检测所述连接资源管理表中对应当前连接池对象的连接数量是否超过配置的上限,如果超过,则启动异步线程进行连接的回收;
在连接每次调用时,都会写入一个该连接当前调用的时间(即访问时间)和调用次数(即访问次数)增加1的操作,并检测该连接所在的连接池对象中,连接数量是否超过配置的上限,如果超过,则启动异步线程任务进行连接回收,以防止影响业务正常的调用。
数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数(即上限),当应用程序向连接池请求的连接数超过最大连接数量时,本实施例将进行连接回收。
具体检测时,如果一个连接池对象建立了一张连接资源管理表,那么就去检测当前连接所在的连接池对象对应的连接资源管理表,查看其中的连接数量是否超过配置的上限。如果所有的连接池对象都通过一张连接资源管理表管理,则统计该表中对应当前连接池对象的连接数量,查看是否超过配置的上限,其中所述当前连接池对象是指当前连接所在的连接池对象。
异步线程具体的回收步骤如下:
步骤402,异步线程首先需要判定是否有相同的内容正在回收,如果有,则可不做任何动作直接结束掉,如果没有则自己去完成回收工作;
本步骤是优选步骤,可以提高回收效率。
步骤403,检测所述当前连接池对象中超时的连接,并将所述超时的连接放入第一回收列表中;
在执行中,首先获取到连接池列表,该列表中记录了当前连接池对象中的所有连接,然后开始查看连接池是否有超时的连接(超时即最后一次访问时间距离当前检测时间超过了指定的时间上限认为是超时);将超时的连接放入第一回收列表中,并标记出这些预备回收的连接在进一步的权重检测中不用再遍历。
步骤404,如果所述当前连接池对象中未超时的连接数量仍超过配置的上限,则所述异步线程计算预备回收数量;
当前连接池对象中未超时的连接若数量仍超过配置的上限,则需要计算还需要回收多少个连接,此时,一般可按照上限的一半来计算,以保证回收不是每时每刻都在进行的。
具体的计算方法是:
将当前连接池对象配置的连接数量上限的一半作为预备回收后剩余的数量;
将当前连接池对象中的连接数量减去所述预备回收后剩余的数量,得到所述的预备回收数量。
例如,一个连接池对象配置的上限是60个连接,如果当前的连接数量时67个,那么上限的一半为30个,是预备回收后剩余的数量,相应的,预备回收数量应该是67-30=37个。
步骤405,检测所述当前连接池对象中各连接的权重,并将符合所述预备回收数量的权重小的连接放入第二回收列表中;
步骤405可具体包括以下子步骤:
子步骤1,根据访问时间和访问次数计算所述当前连接池对象中每个连接的权重;
具体的,权重可以最后访问时间和访问次数作为主要参数来计算;
子步骤2,按照下述步骤遍历当前连接池对象中的每个连接,直到遍历完当前连接池对象中的所有连接:
当第二回收列表中的连接数量未达到预备回收数量时,依次将每个连接按照权重大小放入第二回收列表中的合适位置;
当第二回收列表中的连接数量达到预备回收数量时,依次比较当前连接池对象中每个连接的权重是否小于第二回收列表中连接的最大权重,如果是,则将当前连接池对象中的连接按照权重大小放入第二回收列表中的合适位置,并将第二回收列表中权重最大的连接放回当前连接池对象中。
所述第二回收列表用于记录需要销毁的连接信息,权重从高到低顺序排列,权重越低的入队,队列尾部为权重最低的。
遍历开始后,首先将当前连接池对象中的第一个连接第二回收列表,然后将当前连接池对象中的第二个连接与第二回收列表中的连接对比,此时如果队列尚未达到需要删除的数量,则直接入队,但需要按照权重高低排列。按照此方法,依次将每个连接按照权重大小放入第二回收列表中的合适位置。
当超过队列长度时,判定当前连接A的权重是否小于当前队列中最大权重的连接B,如果小于,则入队并将最大权重的连接B踢出,将这个连接A按照权重高低找到合适的位置写入,队列尾部依然保持是最小的权重,直到遍历完成所有的连接为止。这种遍历方法时间复杂度较低,因为只需要一次循环下来即可找到哪些连接需要回收。
步骤406,将所述第一回收列表和第二回收列表进行合并,并将合并后的回收列表中的连接进行销毁。
将权重较低的连接和超时连接做一次合并,然后进行循环销毁连接的过程。
优选地,在销毁连接前,还可以检查该连接是否在这个过程中正在被使用,若被使用,则放弃销毁。最终做一次检查是保证连接的有效性的最大化,在一个时间戳范围内发生了变化的内容将放弃销毁,这样将会最大化地保证连接是有效而无需重建的。
综上所述,上述图4所述的连接池仓库管理方法以权重为基础,并结合最近最久未使用策略计算权重,对内存中的连接进行回收,以提高命中率和整体的访问效率。常规的技术场景一般仅仅使用最近最久未算法即可以满足于场景需要,但在连接非时间均匀访问的情况下,可以结合权重以得到更大的命中率的效果。
进一步地,还利用“超时+权重”来回收连接,以降低资源开销,即在基于权重踢出连接的基础上,增加超时的机制,以将更多不必要的连接资源踢出,更加节约系统的资源。
需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必需的。
基于上述方法实施例的说明,本申请还提供了相应的数据库连接的管理系统实施例。
参照图5所示,其为本申请实施例所述一种数据库连接的管理系统结构图。
所述数据库连接的管理系统可以包括以下模块:
获取模块10,用于接收客户端发来的数据库访问请求,并从该请求的内容中获取操作类型和目标连接的关键字;
内存查询模块20,用于在内存的连接池管理表中查询与所述目标连接的关键字相匹配的连接池对象,并从查询到的连接池对象中获得连接资源;其中,所述内存的连接池管理表中记录了对应每个数据库建立的连接池对象,连接池对象中的每个连接资源都用于连接到该连接池对象对应的数据库;
数据库连接模块30,用于依据所述连接资源连接相应数据库,并将本次连接记录到数据库连接管理表中;其中,所述数据库连接管理表中保存了连接到每个数据库的连接记录;
执行操作模块40,用于依据所述操作类型执行相应的数据库操作,并将操作结果返回;
连接回收模块120,用于检测所述连接资源管理表,并依据该检测对连接进行回收。
优选地,如果一个数据库根据操作类型建立了多个连接池对象,则所述内存查询模块20还可根据操作类型和目标连接的关键字查询内存中是否有相匹配的连接池对象。
优选地,如果所述内存查询模块没有查询到与所述目标连接的关键字相匹配的连接池对象,则还包括:
磁盘查询模块50,用于从磁盘上查询与所述目标连接的关键字相匹配的连接池配置信息,依据所述配置信息在内存建立新的连接池对象,并将所述新的连接池对象添加到所述连接池管理表中。
优选地,所述管理系统还可以根据请求的内容判断请求类型,所述请求类型包括单库操作请求和分布式操作请求;如果是分布式操作请求,则:
所述获取模块10还可将所述请求内容进行拆分,并获取对应每个单库的操作类型和目标连接的关键字;
所述内存查询模块20还可在内存的连接池管理表中查询与每个目标连接的关键字相匹配的连接池对象,并从查询到的连接池对象中获得连接资源;
所述数据库连接模块30还可依据每个连接资源分别连接相应的数据库,并将本次连接记录到数据库连接管理表中;
所述执行操作模块40还可依据每个操作类型分别执行相应的单库操作,并将单库的操作结果进行合并后返回;
所述连接回收模块120还可检测所述连接资源管理表,并依据该检测对连接进行回收。
上述管理系统可以将上千个连接池资源统一管理起来,所有的数据库连接都通过管理统一调度和控制,与现有技术中各连接池的相互独立管理相比,明显提高了访问效率。而且,多个不同类型的数据源放在内存中统一管理,可同时使用多个数据源并可将各数据源执行后的操作结果合并,而现有技术中一个请求仅仅连接同一个目标数据源。
基于图5的实施例,在本申请的另一优选实施例中,如图6所示,所述连接回收模块120具体还可以包括以下模块:
统计模块60,用于当所述数据库连接模块30每次依据连接资源连接相应数据库时,统计当前连接的最后一次访问时间和访问次数;
连接数量检测模块70,用于检测所述连接资源管理表中对应当前连接池对象的连接数量是否超过配置的上限,如果超过,则启动异步线程进行连接的回收。
优选地,所述连接回收模块120还可包括:
超时检测模块80,用于检测所述当前连接池对象中超时的连接,并将所述超时的连接放入第一回收列表中。
如果所述当前连接池对象中未超时的连接数量仍超过配置的上限,则连接回收模块120还可包括:
计算模块90,用于计算预备回收数量;
权重检测模块100,用于检测所述当前连接池对象中各连接的权重,并将符合所述预备回收数量的权重小的连接放入第二回收列表中;
连接销毁模块110,用于将所述第一回收列表和第二回收列表进行合并,并将合并后的回收列表中的连接进行销毁。
优选地,所述权重检测模块100可以包括以下子模块:
权重计算子模块,用于根据访问时间和访问次数计算所述当前连接池对象中每个连接的权重;
遍历子模块,用于遍历当前连接池对象中的每个连接,直到遍历完当前连接池对象中的所有连接:
当第二回收列表中的连接数量未达到预备回收数量时,依次将每个连接按照权重大小放入第二回收列表中的合适位置;
当第二回收列表中的连接数量达到预备回收数量时,依次比较当前连接池对象中每个连接的权重是否小于第二回收列表中连接的最大权重,如果是,则将当前连接池对象中的连接按照权重大小放入第二回收列表中的合适位置,并将第二回收列表中权重最大的连接放回当前连接池对象中。
上述实施例以权重为基础,并结合最近最久未使用策略计算权重,对内存中的连接进行回收,以提高命中率和整体的访问效率。进一步地,还可利用“超时+权重”来回收连接,以降低资源开销,即在基于权重踢出连接的基础上,增加超时的机制,以将更多不必要的连接资源踢出,更加节约系统的资源。
对于上述管理系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见图2至图4所示方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上对本申请所提供的一种数据库连接的管理方法及系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (12)
1.一种数据库连接的管理方法,其特征在于,包括:
接收客户端发来的数据库访问请求,并从该请求的内容中获取操作类型和目标连接的关键字;
在内存的连接池管理表中查询与所述目标连接的关键字相匹配的连接池对象,并从查询到的连接池对象中获得连接资源;其中,所述内存的连接池管理表中记录了对应每个数据库建立的连接池对象,连接池对象中的每个连接资源都用于连接到该连接池对象对应的数据库;
依据所述连接资源连接相应数据库,并将本次连接记录到数据库连接管理表中;其中,所述数据库连接管理表中保存了连接到每个数据库的连接记录;
依据所述操作类型执行相应的数据库操作,并将操作结果返回;
检测所述连接资源管理表,并依据该检测对连接进行回收。
2.根据权利要求1所述的方法,其特征在于,如果没有查询到与所述目标连接的关键字相匹配的连接池对象,则从查询到的连接池对象中分配连接资源之前,还包括:
从磁盘上查询与所述目标连接的关键字相匹配的连接池配置信息,依据所述配置信息在内存建立新的连接池对象,并将所述新的连接池对象添加到所述连接池管理表中。
3.根据权利要求1或2所述的方法,其特征在于,如果一个数据库根据操作类型建立了多个连接池对象,则还包括:
根据操作类型和目标连接的关键字查询内存的连接池管理表中是否有相匹配的连接池对象。
4.根据权利要求1所述的方法,其特征在于,所述连接池管理表采用“关键字-值”结构的哈希表管理所有已建立的连接池对象;
则所述在内存的连接池管理表中查询与所述目标连接的关键字相匹配的连接池对象,包括:
查询所述哈希表中与所述目标连接的关键字相匹配的哈希表关键字;
该哈希表关键字对应的值指向内存中的一个连接池对象。
5.根据权利要求1所述的方法,其特征在于,还包括:
根据请求的内容判断请求类型,所述请求类型包括单库操作请求和分布式操作请求;
如果是分布式操作请求,则:
将所述请求内容进行拆分,并获取对应每个单库的操作类型和目标连接的关键字;
在内存的连接池管理表中查询与每个目标连接的关键字相匹配的连接池对象,并从查询到的连接池对象中获得连接资源;
依据每个连接资源分别连接相应的数据库,并将本次连接记录到数据库连接管理表中;
依据每个操作类型分别执行相应的单库操作,并将单库的操作结果进行合并后返回;
检测所述连接资源管理表,并依据该检测对连接进行回收。
6.根据权利要求1所述的方法,其特征在于,所述检测所述连接资源管理表,并依据该检测对连接进行回收,包括:
统计当前连接的最后一次访问时间和访问次数;
检测所述连接资源管理表中对应当前连接池对象的连接数量是否超过配置的上限,如果超过,则启动异步线程进行连接的回收。
7.根据权利要求6所述的方法,其特征在于,所述异步线程进行的连接的回收包括:
检测所述当前连接池对象中超时的连接,并将所述超时的连接放入第一回收列表中。
8.根据权利要求7所述的方法,其特征在于,如果所述当前连接池对象中未超时的连接数量仍超过配置的上限,则所述异步线程进行的连接的回收还包括:
计算预备回收数量;
检测所述当前连接池对象中各连接的权重,并将符合所述预备回收数量的权重小的连接放入第二回收列表中;
将所述第一回收列表和第二回收列表进行合并,并将合并后的回收列表中的连接进行销毁。
9.根据权利要求8所述的方法,其特征在于,所述检测当前连接池对象中各连接的权重,并将符合所述预备回收数量的权重小的连接放入第二回收列表中,包括:
根据访问时间和访问次数计算所述当前连接池对象中每个连接的权重;
按照下述步骤遍历当前连接池对象中的每个连接,直到遍历完当前连接池对象中的所有连接:
当第二回收列表中的连接数量未达到预备回收数量时,依次将每个连接按照权重大小放入第二回收列表中的合适位置;
当第二回收列表中的连接数量达到预备回收数量时,依次比较当前连接池对象中每个连接的权重是否小于第二回收列表中连接的最大权重,如果是,则将当前连接池对象中的连接按照权重大小放入第二回收列表中的合适位置,并将第二回收列表中权重最大的连接放回当前连接池对象中。
10.根据权利要求8所述的方法,其特征在于,所述计算预备回收数量,包括:
将当前连接池对象配置的连接数量上限的一半作为预备回收后剩余的数量;
将当前连接池对象中的连接数量减去所述预备回收后剩余的数量,得到所述的预备回收数量。
11.根据权利要求8所述的方法,其特征在于,所述将合并后的回收列表中的连接进行销毁时,还包括:
销毁连接前检查该连接是否正在被使用,如果是,则放弃销毁。
12.一种数据库连接的管理系统,其特征在于,包括:
获取模块,用于接收客户端发来的数据库访问请求,并从该请求的内容中获取操作类型和目标连接的关键字;
内存查询模块,用于在内存的连接池管理表中查询与所述目标连接的关键字相匹配的连接池对象,并从查询到的连接池对象中获得连接资源;其中,所述内存的连接池管理表中记录了对应每个数据库建立的连接池对象,连接池对象中的每个连接资源都用于连接到该连接池对象对应的数据库;
数据库连接模块,用于依据所述连接资源连接相应数据库,并将本次连接记录到数据库连接管理表中;其中,所述数据库连接管理表中保存了连接到每个数据库的连接记录;
执行操作模块,用于依据所述操作类型执行相应的数据库操作,并将操作结果返回;
连接回收模块,用于检测所述连接资源管理表,并依据该检测对连接进行回收。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210103841.6A CN103365929B (zh) | 2012-04-10 | 2012-04-10 | 一种数据库连接的管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210103841.6A CN103365929B (zh) | 2012-04-10 | 2012-04-10 | 一种数据库连接的管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103365929A true CN103365929A (zh) | 2013-10-23 |
CN103365929B CN103365929B (zh) | 2016-09-28 |
Family
ID=49367291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210103841.6A Active CN103365929B (zh) | 2012-04-10 | 2012-04-10 | 一种数据库连接的管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103365929B (zh) |
Cited By (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605727A (zh) * | 2013-11-19 | 2014-02-26 | 浪潮电子信息产业股份有限公司 | 基于连接池的多用户数据库访问高效率优化方法及架构 |
CN103761240A (zh) * | 2013-12-12 | 2014-04-30 | 北京奇虎科技有限公司 | 数据库访问方法和装置 |
CN104063451A (zh) * | 2014-06-23 | 2014-09-24 | 北京京东尚科信息技术有限公司 | 一种数据库连接管理方法及系统 |
CN104184729A (zh) * | 2014-08-20 | 2014-12-03 | 杭州华三通信技术有限公司 | 一种报文处理方法和装置 |
CN104579793A (zh) * | 2015-01-26 | 2015-04-29 | 网宿科技股份有限公司 | 网络资源的调度方法和系统 |
CN104636131A (zh) * | 2014-12-12 | 2015-05-20 | 北京奇虎科技有限公司 | 一种特殊指令的执行方法及装置 |
CN104836798A (zh) * | 2015-04-15 | 2015-08-12 | 国家计算机网络与信息安全管理中心 | 一种维护客户端连接信息的方法及装置 |
CN104978335A (zh) * | 2014-04-04 | 2015-10-14 | 阿里巴巴集团控股有限公司 | 数据访问控制方法和装置 |
CN105302842A (zh) * | 2014-07-31 | 2016-02-03 | 北大方正集团有限公司 | 一种数据处理方法及装置 |
WO2016029790A1 (zh) * | 2014-08-28 | 2016-03-03 | 北京奇虎科技有限公司 | 数据传输方法及装置 |
CN105426544A (zh) * | 2015-12-25 | 2016-03-23 | 北京奇虎科技有限公司 | 监控数据库状态的方法及装置 |
CN105512127A (zh) * | 2014-09-24 | 2016-04-20 | 阿里巴巴集团控股有限公司 | 数据库连接的分配方法和装置 |
CN105574195A (zh) * | 2015-12-25 | 2016-05-11 | 北京奇虎科技有限公司 | 判断数据库是否应下线回收的方法及装置 |
CN105574010A (zh) * | 2014-10-13 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 数据查询方法及装置 |
CN105760395A (zh) * | 2014-12-18 | 2016-07-13 | 华为技术有限公司 | 一种数据处理的方法、装置及系统 |
CN105808638A (zh) * | 2016-02-23 | 2016-07-27 | 平安科技(深圳)有限公司 | 数据处理方法和系统 |
CN105933464A (zh) * | 2016-04-13 | 2016-09-07 | 北京思特奇信息技术股份有限公司 | 一种基于网络连接池化的网络通信方法及系统 |
CN105956138A (zh) * | 2016-05-11 | 2016-09-21 | 北京百度网讯科技有限公司 | 数据库连接的控制方法和装置 |
CN106302794A (zh) * | 2016-08-31 | 2017-01-04 | 东软集团股份有限公司 | 连接参数的动态设置方法和装置 |
CN106484826A (zh) * | 2016-09-28 | 2017-03-08 | 山东浪潮商用系统有限公司 | 一种操作数据库的方法及装置 |
CN106909613A (zh) * | 2017-01-11 | 2017-06-30 | 华南理工大学 | 一种自适应均衡数据库访问服务的方法 |
CN107291747A (zh) * | 2016-03-31 | 2017-10-24 | 北京优朋普乐科技有限公司 | 一种数据库连接池的管理方法、装置及系统 |
CN107357831A (zh) * | 2017-06-21 | 2017-11-17 | 信雅达系统工程股份有限公司 | 可配置的流程实例数据分布式存储方法及系统 |
CN107408128A (zh) * | 2015-04-20 | 2017-11-28 | 甲骨文国际公司 | 用于使用高速缓存和碎片拓扑提供对分片数据库的访问的系统和方法 |
CN107980128A (zh) * | 2016-11-07 | 2018-05-01 | 深圳中兴力维技术有限公司 | 数据对接动态管理方法及装置 |
WO2018201887A1 (zh) * | 2017-05-05 | 2018-11-08 | 平安科技(深圳)有限公司 | 数据响应方法、装置、终端设备及介质 |
CN109284311A (zh) * | 2018-08-14 | 2019-01-29 | 四川虹美智能科技有限公司 | 一种获取数据库连接的方法和装置 |
CN109471896A (zh) * | 2018-11-01 | 2019-03-15 | 数贸科技(北京)有限公司 | 数据源信息动态变更方法及装置 |
CN109508344A (zh) * | 2018-09-29 | 2019-03-22 | 中国平安人寿保险股份有限公司 | 业务数据查询方法、装置、电子设备及存储介质 |
CN109542940A (zh) * | 2018-11-26 | 2019-03-29 | 三星电子(中国)研发中心 | 一种数据库连接分配方法和装置 |
CN109582595A (zh) * | 2018-12-12 | 2019-04-05 | 上海达梦数据库有限公司 | 内存管理方法、装置、服务器及存储介质 |
CN110427271A (zh) * | 2019-07-08 | 2019-11-08 | 金蝶汽车网络科技有限公司 | 建立连接的方法、装置、存储介质和计算机设备 |
CN110457202A (zh) * | 2019-06-28 | 2019-11-15 | 武汉迎风聚智科技有限公司 | 快速建立odbc连接的tpc-e测试方法以及驱动器设备 |
CN110704301A (zh) * | 2019-08-27 | 2020-01-17 | 武汉迎风聚智科技有限公司 | Tpc-e自动化测试方法以及tpc-e测试系统 |
CN111427507A (zh) * | 2019-01-09 | 2020-07-17 | 深圳市茁壮网络股份有限公司 | 一种磁盘连接方法、装置及电子设备 |
CN111625588A (zh) * | 2020-05-29 | 2020-09-04 | 北京思特奇信息技术股份有限公司 | 一种共享分布式数据采集数据的方法和系统 |
CN112732441A (zh) * | 2021-01-07 | 2021-04-30 | 山东众阳健康科技集团有限公司 | 一种多元动态连接池的连接方法、装置及系统 |
CN113568892A (zh) * | 2021-08-12 | 2021-10-29 | 威讯柏睿数据科技(北京)有限公司 | 一种基于内存计算对数据源进行数据查询的方法和设备 |
CN114268594A (zh) * | 2021-12-16 | 2022-04-01 | 锐捷网络股份有限公司 | 数据处理方法、系统及虚拟交换机 |
CN115309726A (zh) * | 2022-09-27 | 2022-11-08 | 北京奥星贝斯科技有限公司 | 数据库实例的访问方法及装置 |
CN116436604A (zh) * | 2023-06-08 | 2023-07-14 | 成都房联云码科技有限公司 | 基于数字房产管理类集群应用的密钥管理系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1510575A (zh) * | 2002-12-25 | 2004-07-07 | ����ͨѶ�ɷ�����˾ | 一种数据库连接的高效管理方法 |
US20060074877A1 (en) * | 2004-10-01 | 2006-04-06 | Ralf Kuersch | System and method for optimizing transaction termination |
CN1815469A (zh) * | 2005-02-01 | 2006-08-09 | 华为技术有限公司 | 一种数据库连接资源的管理方法 |
US20070198684A1 (en) * | 2006-02-22 | 2007-08-23 | Kazunori Mizushima | Method and system for data processing with connection pool for the same |
CN101408899A (zh) * | 2008-11-21 | 2009-04-15 | 北京中企开源信息技术有限公司 | 一种网站多数据源切换方法和装置 |
CN102243655A (zh) * | 2011-06-16 | 2011-11-16 | 苏州阔地网络科技有限公司 | 一种数据库的连接管理方法及装置 |
CN102243652A (zh) * | 2011-06-16 | 2011-11-16 | 苏州阔地网络科技有限公司 | 一种数据库连接管理方法及装置 |
-
2012
- 2012-04-10 CN CN201210103841.6A patent/CN103365929B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1510575A (zh) * | 2002-12-25 | 2004-07-07 | ����ͨѶ�ɷ�����˾ | 一种数据库连接的高效管理方法 |
US20060074877A1 (en) * | 2004-10-01 | 2006-04-06 | Ralf Kuersch | System and method for optimizing transaction termination |
CN1815469A (zh) * | 2005-02-01 | 2006-08-09 | 华为技术有限公司 | 一种数据库连接资源的管理方法 |
US20070198684A1 (en) * | 2006-02-22 | 2007-08-23 | Kazunori Mizushima | Method and system for data processing with connection pool for the same |
CN101408899A (zh) * | 2008-11-21 | 2009-04-15 | 北京中企开源信息技术有限公司 | 一种网站多数据源切换方法和装置 |
CN102243655A (zh) * | 2011-06-16 | 2011-11-16 | 苏州阔地网络科技有限公司 | 一种数据库的连接管理方法及装置 |
CN102243652A (zh) * | 2011-06-16 | 2011-11-16 | 苏州阔地网络科技有限公司 | 一种数据库连接管理方法及装置 |
Cited By (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605727A (zh) * | 2013-11-19 | 2014-02-26 | 浪潮电子信息产业股份有限公司 | 基于连接池的多用户数据库访问高效率优化方法及架构 |
CN103605727B (zh) * | 2013-11-19 | 2017-07-28 | 浪潮电子信息产业股份有限公司 | 基于连接池的多用户数据库访问高效率优化方法及系统 |
CN103761240A (zh) * | 2013-12-12 | 2014-04-30 | 北京奇虎科技有限公司 | 数据库访问方法和装置 |
CN103761240B (zh) * | 2013-12-12 | 2017-12-15 | 北京奇虎科技有限公司 | 数据库访问方法和装置 |
CN104978335A (zh) * | 2014-04-04 | 2015-10-14 | 阿里巴巴集团控股有限公司 | 数据访问控制方法和装置 |
CN104978335B (zh) * | 2014-04-04 | 2018-12-07 | 阿里巴巴集团控股有限公司 | 数据访问控制方法和装置 |
CN104063451A (zh) * | 2014-06-23 | 2014-09-24 | 北京京东尚科信息技术有限公司 | 一种数据库连接管理方法及系统 |
CN104063451B (zh) * | 2014-06-23 | 2019-03-26 | 北京京东尚科信息技术有限公司 | 一种数据库连接管理方法及系统 |
CN105302842A (zh) * | 2014-07-31 | 2016-02-03 | 北大方正集团有限公司 | 一种数据处理方法及装置 |
CN104184729A (zh) * | 2014-08-20 | 2014-12-03 | 杭州华三通信技术有限公司 | 一种报文处理方法和装置 |
CN104184729B (zh) * | 2014-08-20 | 2018-05-08 | 新华三技术有限公司 | 一种报文处理方法和装置 |
WO2016029790A1 (zh) * | 2014-08-28 | 2016-03-03 | 北京奇虎科技有限公司 | 数据传输方法及装置 |
CN105512127A (zh) * | 2014-09-24 | 2016-04-20 | 阿里巴巴集团控股有限公司 | 数据库连接的分配方法和装置 |
CN105574010A (zh) * | 2014-10-13 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 数据查询方法及装置 |
CN104636131B (zh) * | 2014-12-12 | 2018-07-27 | 北京奇虎科技有限公司 | 一种特殊指令的执行方法及装置 |
CN104636131A (zh) * | 2014-12-12 | 2015-05-20 | 北京奇虎科技有限公司 | 一种特殊指令的执行方法及装置 |
CN105760395A (zh) * | 2014-12-18 | 2016-07-13 | 华为技术有限公司 | 一种数据处理的方法、装置及系统 |
CN104579793A (zh) * | 2015-01-26 | 2015-04-29 | 网宿科技股份有限公司 | 网络资源的调度方法和系统 |
CN104579793B (zh) * | 2015-01-26 | 2018-08-03 | 网宿科技股份有限公司 | 网络资源的调度方法和系统 |
CN104836798B (zh) * | 2015-04-15 | 2018-11-20 | 国家计算机网络与信息安全管理中心 | 一种维护客户端连接信息的方法及装置 |
CN104836798A (zh) * | 2015-04-15 | 2015-08-12 | 国家计算机网络与信息安全管理中心 | 一种维护客户端连接信息的方法及装置 |
US11636075B2 (en) | 2015-04-20 | 2023-04-25 | Oracle International Corporation | System and method for providing direct access to a sharded database |
CN107408128A (zh) * | 2015-04-20 | 2017-11-28 | 甲骨文国际公司 | 用于使用高速缓存和碎片拓扑提供对分片数据库的访问的系统和方法 |
CN107408128B (zh) * | 2015-04-20 | 2020-12-08 | 甲骨文国际公司 | 用于使用高速缓存和碎片拓扑提供对分片数据库的访问的系统和方法 |
US11409721B2 (en) | 2015-04-20 | 2022-08-09 | Oracle International Corporation | System and method for providing access to a sharded database using a cache and a shard technology |
CN105426544B (zh) * | 2015-12-25 | 2020-06-30 | 北京奇虎科技有限公司 | 监控数据库状态的方法及装置 |
CN105574195A (zh) * | 2015-12-25 | 2016-05-11 | 北京奇虎科技有限公司 | 判断数据库是否应下线回收的方法及装置 |
CN105426544A (zh) * | 2015-12-25 | 2016-03-23 | 北京奇虎科技有限公司 | 监控数据库状态的方法及装置 |
CN105808638B (zh) * | 2016-02-23 | 2019-03-29 | 平安科技(深圳)有限公司 | 数据处理方法和系统 |
CN105808638A (zh) * | 2016-02-23 | 2016-07-27 | 平安科技(深圳)有限公司 | 数据处理方法和系统 |
CN107291747A (zh) * | 2016-03-31 | 2017-10-24 | 北京优朋普乐科技有限公司 | 一种数据库连接池的管理方法、装置及系统 |
CN105933464A (zh) * | 2016-04-13 | 2016-09-07 | 北京思特奇信息技术股份有限公司 | 一种基于网络连接池化的网络通信方法及系统 |
CN105933464B (zh) * | 2016-04-13 | 2019-05-31 | 北京思特奇信息技术股份有限公司 | 一种基于网络连接池化的网络通信方法及系统 |
CN105956138A (zh) * | 2016-05-11 | 2016-09-21 | 北京百度网讯科技有限公司 | 数据库连接的控制方法和装置 |
CN105956138B (zh) * | 2016-05-11 | 2019-07-12 | 北京百度网讯科技有限公司 | 数据库连接的控制方法和装置 |
CN106302794A (zh) * | 2016-08-31 | 2017-01-04 | 东软集团股份有限公司 | 连接参数的动态设置方法和装置 |
CN106302794B (zh) * | 2016-08-31 | 2019-12-03 | 东软集团股份有限公司 | 连接参数的动态设置方法和装置 |
CN106484826A (zh) * | 2016-09-28 | 2017-03-08 | 山东浪潮商用系统有限公司 | 一种操作数据库的方法及装置 |
CN107980128A (zh) * | 2016-11-07 | 2018-05-01 | 深圳中兴力维技术有限公司 | 数据对接动态管理方法及装置 |
CN107980128B (zh) * | 2016-11-07 | 2019-07-26 | 深圳力维智联技术有限公司 | 数据对接动态管理方法及装置 |
CN106909613A (zh) * | 2017-01-11 | 2017-06-30 | 华南理工大学 | 一种自适应均衡数据库访问服务的方法 |
CN106909613B (zh) * | 2017-01-11 | 2020-05-22 | 华南理工大学 | 一种自适应均衡数据库访问服务的方法 |
WO2018201887A1 (zh) * | 2017-05-05 | 2018-11-08 | 平安科技(深圳)有限公司 | 数据响应方法、装置、终端设备及介质 |
CN107357831A (zh) * | 2017-06-21 | 2017-11-17 | 信雅达系统工程股份有限公司 | 可配置的流程实例数据分布式存储方法及系统 |
CN109284311B (zh) * | 2018-08-14 | 2020-10-23 | 四川虹美智能科技有限公司 | 一种获取数据库连接的方法和装置 |
CN109284311A (zh) * | 2018-08-14 | 2019-01-29 | 四川虹美智能科技有限公司 | 一种获取数据库连接的方法和装置 |
CN109508344A (zh) * | 2018-09-29 | 2019-03-22 | 中国平安人寿保险股份有限公司 | 业务数据查询方法、装置、电子设备及存储介质 |
CN109508344B (zh) * | 2018-09-29 | 2024-03-12 | 中国平安人寿保险股份有限公司 | 业务数据查询方法、装置、电子设备及存储介质 |
CN109471896A (zh) * | 2018-11-01 | 2019-03-15 | 数贸科技(北京)有限公司 | 数据源信息动态变更方法及装置 |
CN109542940B (zh) * | 2018-11-26 | 2021-07-30 | 三星电子(中国)研发中心 | 一种数据库连接分配方法和装置 |
CN109542940A (zh) * | 2018-11-26 | 2019-03-29 | 三星电子(中国)研发中心 | 一种数据库连接分配方法和装置 |
CN109582595A (zh) * | 2018-12-12 | 2019-04-05 | 上海达梦数据库有限公司 | 内存管理方法、装置、服务器及存储介质 |
CN111427507A (zh) * | 2019-01-09 | 2020-07-17 | 深圳市茁壮网络股份有限公司 | 一种磁盘连接方法、装置及电子设备 |
CN111427507B (zh) * | 2019-01-09 | 2023-09-12 | 深圳市茁壮网络股份有限公司 | 一种磁盘连接方法、装置及电子设备 |
CN110457202B (zh) * | 2019-06-28 | 2021-03-23 | 武汉迎风聚智科技有限公司 | 快速建立odbc连接的tpc-e测试方法以及驱动器设备 |
CN110457202A (zh) * | 2019-06-28 | 2019-11-15 | 武汉迎风聚智科技有限公司 | 快速建立odbc连接的tpc-e测试方法以及驱动器设备 |
CN110427271A (zh) * | 2019-07-08 | 2019-11-08 | 金蝶汽车网络科技有限公司 | 建立连接的方法、装置、存储介质和计算机设备 |
CN110704301A (zh) * | 2019-08-27 | 2020-01-17 | 武汉迎风聚智科技有限公司 | Tpc-e自动化测试方法以及tpc-e测试系统 |
CN111625588A (zh) * | 2020-05-29 | 2020-09-04 | 北京思特奇信息技术股份有限公司 | 一种共享分布式数据采集数据的方法和系统 |
CN112732441A (zh) * | 2021-01-07 | 2021-04-30 | 山东众阳健康科技集团有限公司 | 一种多元动态连接池的连接方法、装置及系统 |
CN113568892A (zh) * | 2021-08-12 | 2021-10-29 | 威讯柏睿数据科技(北京)有限公司 | 一种基于内存计算对数据源进行数据查询的方法和设备 |
CN114268594A (zh) * | 2021-12-16 | 2022-04-01 | 锐捷网络股份有限公司 | 数据处理方法、系统及虚拟交换机 |
CN115309726A (zh) * | 2022-09-27 | 2022-11-08 | 北京奥星贝斯科技有限公司 | 数据库实例的访问方法及装置 |
CN115309726B (zh) * | 2022-09-27 | 2023-01-13 | 北京奥星贝斯科技有限公司 | 数据库实例的访问方法及装置 |
CN116436604A (zh) * | 2023-06-08 | 2023-07-14 | 成都房联云码科技有限公司 | 基于数字房产管理类集群应用的密钥管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103365929B (zh) | 2016-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103365929A (zh) | 一种数据库连接的管理方法及系统 | |
US10409782B2 (en) | Platform, system, process for distributed graph databases and computing | |
US9734223B2 (en) | Difference determination in a database environment | |
US20130117307A1 (en) | Snapshot isolation support for distributed query processing in a shared disk database cluster | |
US7814045B2 (en) | Semantical partitioning of data | |
US20150205850A1 (en) | Eager replication of uncommitted transactions | |
US10565201B2 (en) | Query processing management in a database management system | |
CN104933112A (zh) | 分布式互联网交易信息存储处理方法 | |
CN105608086A (zh) | 分布式数据库系统的事务处理方法及装置 | |
US11698893B2 (en) | System and method for use of lock-less techniques with a multidimensional database | |
CN103577440A (zh) | 一种非关系型数据库中的数据处理方法和装置 | |
KR101400214B1 (ko) | Hybrid C 인터페이스를 지원하는 장치 | |
CN106066895A (zh) | 一种智能查询系统 | |
US20170300517A1 (en) | Index maintenance management of a relational database management system | |
CN109669975A (zh) | 一种工业大数据处理系统及方法 | |
CN105824892A (zh) | 一种数据池对数据同步和处理的方法 | |
Wang et al. | A hybrid index for temporal big data | |
Liroz-Gistau et al. | Dynamic workload-based partitioning algorithms for continuously growing databases | |
CN106156904A (zh) | 一种基于eID的跨平台虚拟资产溯源方法 | |
US7647296B2 (en) | Method for estimating a first access time of transactions accessing a database object | |
Bharati et al. | A comprehensive survey on distributed transactions based data partitioning | |
Kim et al. | Dynamic partition lock method to reduce transaction abort rates of cloud database | |
Chen et al. | Streamdb: A unified data management system for service-based cloud application | |
Ma et al. | Bank big data architecture based on massive parallel processing database | |
Mihova et al. | Metadata for generating a specific data warehouse |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1186557 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1186557 Country of ref document: HK |