CN109542940B - 一种数据库连接分配方法和装置 - Google Patents
一种数据库连接分配方法和装置 Download PDFInfo
- Publication number
- CN109542940B CN109542940B CN201811414492.3A CN201811414492A CN109542940B CN 109542940 B CN109542940 B CN 109542940B CN 201811414492 A CN201811414492 A CN 201811414492A CN 109542940 B CN109542940 B CN 109542940B
- Authority
- CN
- China
- Prior art keywords
- database
- visitor
- connection
- access table
- privilege
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据库连接分配方法和装置,该方法包括:接收数据库访问者的读数据请求;获取该数据库访问者信息,根据该数据库访问者信息维护用于记录特权数据库访问者信息的特权访问表;如果该数据库访问者已加入特权访问表,则为该数据库访问者分配专用数据库连接,否则,为该数据库访问者分配普通数据库连接。本发明通过分配专有连接给重要访问者,保证在繁忙时段也能够及时响应重要访问者的读数据请求。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种数据库连接分配方法和装置。
背景技术
在嵌入式设备和普通桌面设备中,由于系统资源限制和数据库管理系统本身的设计实现,数据库支持的连接数量通常很有限。在繁忙时,并发访问的访问者数量可能会超过数据库支持的连接数量,造成部分访问者等待数据库连接的时间较长、数据库请求无法得到及时响应,从而影响到访问者,特别是重要的用户体验。
发明内容
有鉴于此,本发明的目的在于提供一种数据库连接分配方法和装置,通过分配专有连接给重要访问者,保证在繁忙时段也能够及时响应重要访问者的读数据请求。
为了达到上述目的,本发明提供了如下技术方案:
一种数据库连接分配方法,包括:
接收数据库访问者的读数据请求;
获取该数据库访问者信息,根据该数据库访问者信息维护用于记录特权数据库访问者信息的特权访问表;
如果该数据库访问者已加入特权访问表,则为该数据库访问者分配专用数据库连接,否则,为该数据库访问者分配普通数据库连接。
一种数据库连接分配装置,包括:
接收单元,用于接收数据库访问者的读数据请求;
维护单元,用于获取该数据库访问者信息,根据该数据库访问者信息维护用于记录特权数据库访问者信息的特权访问表;
分配单元,用于如果该数据库访问者已加入特权访问表,则为该数据库访问者分配专用数据库连接,否则,为该数据库访问者分配普通数据库连接。
由上面的技术方案可知,本发明中,根据数据库访问者信息维护用于记录特权数据库访问者信息的特权访问表,对于记录在特权访问表中的数据库访问者,分配专有数据库连接,对于未记录在特权访问表中的数据库访问者,分配普通数据库连接。应用本发明的方法,可以将特权数据库访问者和普通数据库访问者区分开来,特权数据库访问者使用专有数据库连接从而在繁忙时段也能够及时得到响应。
附图说明
图1是本发明实施例数据库连接分配方法流程图;
图2是本发明实施例数据库连接分配装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并据实施例,对本发明的技术方案进行详细说明。
现有实现中,数据库支持多个数据库连接,包括用来执行写请求的若干主连接和用来执行读请求的若干非主连接;数据库接总数量具有上限。另外数据库可以被配置为支持专有连接或不支持专有连接。若数据库支持专有连接,则非主连接中包含若干专有连接(即专有数据库连接)和若干普通连接(即普通数据库连接),专有连接总数量具有上限和下限,且专有连接数量上限小于非主连接数量上限。
本发明中,针对数据库被配置为专有连接的情况,给出了一种为发出读数据请求的数据库访问者分配非主连接的解决方案。
参见图1,图1是本发明实施例数据库连接分配方法流程图,如图1所示,该方法主要包括以下步骤:
步骤101、接收数据库访问者的读数据请求。
步骤102、获取该数据库访问者信息,根据该数据库访问者信息维护用于记录特权数据库访问者信息的特权访问表。
本发明实施例中,数据库访问者信息包括:数据库访问者的操作系统权限、访问优先级、最近第一预设时间内的访问频率、最近访问时间等。其中,操作系统权限可以分为管理员权限,系统权限,系统内置应用权限,普通应用权限等。
根据该数据库访问者信息维护用于记录特权数据库访问者信息的特权访问表的方法具体如下:
如果该数据库访问者已经加入特权访问表,则统计该数据库访问者在最近第一预设时间内的访问频率,并按照访问频率越高优先级调整步长越大的原则,调高该数据库访问者的优先级;
如果该数据库访问者尚未加入特权访问表,根据该数据库访问者的权限设置该数据库访问者的访问优先级,并判断是否需要将该数据库访问者加入特权访问表,若是,则将该数据库访问者信息加入特权访问表,若否,则不将该数据库访问者信息加入特权访问表。
另外,对于特权访问表中记录的每一数据库访问者信息,还可以根据该数据库访问者的最近访问时间判断该数据库访问者是否超过第二预设时间未访问数据库,如果是,则将该数据库访问者的优先级下调预设优先级步长。这里,数据库访问者超过第二预设时间未访问数据库,即:该数据库访问者在第二预设时间内未发送读数据请求到数据库。
在实际应用中,可以采用定期轮询特权访问表的方法,判断特权访问表中的每一数据库访问者是否超过第二预设时间未访问数据库,或者,也可以在特权访问表中每一数据库访问者每次访问时为其设置/重启定时器(定时器时长设置为第二预设时间),根据定时器是否超时判断该数据库访问者是否超过第二预设时间未访问数据库。
本发明实施例中,可以预先针对每种操作系统权限设置对应的数据库访问者的访问优先级。获取数据库访问者的操作系统权限之后,可以根据预先针对每种操作系统权限设置对应的数据库访问者的访问优先级确定该数据库访问者的操作系统权限对应的访问优先级,从而将该访问优先级设置为该数据库访问者的优先级。
本发明实施例中,使用一个黑名单区分特权数据库访问者和非特权数据库访问者。具体地,预先设置用于记录禁止加入特权访问表的所有数据库访问者信息的黑名单,该黑名单中的数据库访问者即为非特权数据库访问者。因此,对于任一数据库访问者来说,如果预先设置的黑名单中存在该数据库访问者信息,则确定该数据库访问者不是特权数据库访问者,因此不需要将该数据库访问者加入特权访问表,否则,该数据库访问者作为候选特权数据库访问者,需要将该数据库访问者加入特权访问表,如果成功加入特权访问表,则从候选特权数据库访问者变为真正的特权数据库访问者。
本发明实施例中,特权访问表也可以预先设置容量上限。当特权访问表中容量已满时,不允许继续向特权访问表中添加数据库访问者信息,如果此时有新的候选特权数据库访问者需要加入特权访问表,则可以将特权访问表中的所有数据库访问者的优先级下调一定步长,如果存在超过一定时间内未访问数据的数据库访问者,则用新的数据库访问者替代特权访问表中该超过一定时间未访问数据库的数据库访问者,如果不存在超过一定时间内未访问数据的数据库访问者,则若特权访问表中存在优先级低于该新的数据库访问者的优先级的数据库访问者,则用新的数据库访问者替代特权访问表中优先级最低的数据库访问者。
为此,上述将该数据库访问者信息加入特权访问表的方法具体可以为:
如果特权访问表中的数据库访问者信息个数未达到预设特权访问表容量上限,则将该数据库访问者信息加入特权访问表;
如果特权访问表中的数据库访问者信息个数已达到预设特权访问表容量上限,则将特权访问表中的所有数据库访问者的优先级下调预设优先级步长,判断特权访问表中是否存在超过第二预设时间未访问数据库的数据库访问者,若是,则将超过第二预设时间未访问数据库的数据库访问者从特权访问表中删除,并将该数据库访问者信息加入特权访问表,若否,则在特权访问表中存在访问优先级低于该数据库访问者的访问优先级的其它数据库访问者信息时,先删除特权访问表中优先级最低的数据库访问者信息,再将该数据库访问者信息加入特权访问表,在特权访问表中不存在访问优先级低于该数据库访问者的访问优先级的其它数据库访问者信息时,不将该数据库访问者信息加入特权访问表;
否则,不将该数据库访问者信息加入特权访问表。
步骤103、如果该数据库访问者已加入特权访问表,则为该数据库访问者分配专用数据库连接,否则,为该数据库访问者分配普通数据库连接。
本发明实施例中,对于一个数据库访问者来说,如果某个空闲数据库连接缓存了该数据库访问者的读数据请求,则可以直接将该空闲数据库连接分配给数据库访问者,这里,对于已经缓存过的读数据请求,系统不需要对该读数据请求的进行语法分析和制定查询计划,因为能够缩短数据库对用户访问请求的反应时间。因此,在本步骤103中,为该数据库访问者分配数据库连接之前,可以先判断是否存在缓存有该数据库访问者的读数据请求的空闲数据库连接,如果存在,则直接将该空闲数据库连接分配给该数据库访问者即可,不需要再执行本步骤103中根据数据库访问者是否加入特权访问表而为该数据库访问者分配专用数据库连接或普通数据库连接的操作。
在实际应用中,由于数据库的非主连接,以及非主连接中的专用连接都具有上限,因此,在为数据库访问者分配数据库连接时,存在分配失败的情况,其中,分配专用数据库连接失败的情况和分配普通数据库连接失败的情况可以分别执行不同的处理操作,以下进行介绍:
分配专用数据库连接失败的情况:
该数据库访问者已加入特权访问表的情况下,如果为该数据库访问者分配专用数据库连接失败,则为该数据库访问者分配普通数据库连接,若为该数据库访问者分配普通数据库连接成功,则在满足普通数据库连接到专有数据库连接转化的条件时,将该普通数据库连接转化为专有数据库连接;若为该数据库访问者分配普通数据库连接失败,则将该数据库访问者信息及其读访问请求加入等待队列。
这里,普通数据库连接到专有数据库连接转化的条件为:当前数据库连接总数量已经达到连接数量上限,且当前专有数据库连接数总数量小于专有连接数量上限。
将普通数据库连接转化为专有数据库连接,可以充分利用数据库连接资源,使得特权数据库访问者的读数据请求得到及时响应。
分配普通数据库连接失败的情况:
该数据库访问者未加入特权访问表的情况下,如果为该数据库访问者分配普通数据库连接失败,则判断是否存在空闲的专有数据库连接,如果是,则在满足专有数据库连接到普通数据库连接转化的条件时,将该专有数据库连接转化为普通数据库连接,并将转化得到的普通数据库连接分配给该数据库访问者,如果否,则将该数据库访问者信息及其读访问请求加入等待队列。
这里,专有数据库连接到普通数据库连接转化的条件为:当前专有数据库连接数总数量大于专有连接数量下限。
将专有数据库连接转化为普通数据库连接,可以在专有数据库连接超出需求时,使多余数据库连接可以为普通数据库访问者使用,避免了资源空置,也更有利于改善用户体验。
本发明实施例中,为该数据库访问者分配专用数据库连接的方法为:如果存在空闲的专用数据库连接,则为该数据库访问者分配一个空闲的专用数据库连接,否则,判断是否能够创建新的专用数据库连接,若是,则创建一个新的专用数据库连接并分配给该数据库访问者,若否,则为该数据库访问者分配专用数据库连接失败。
其中,判断是否能够创建新的专用数据库连接的方法为:如果当前专有数据库连接总数量小于专有连接数量上限,且当前数据库连接总数量小于连接数量上限,则能够创建新的专有数据库连接,否则,不能创建新的专有数据库连接。
本发明实施例中,为该数据库访问者分配普通数据库连接的方法为:如果存在空闲的普通数据库连接,则为该数据库访问者分配一个空闲的普通数据库连接,否则,判断是否能够创建新的普通数据库连接,若是,则创建一个新的普通数据库连接并分配给该数据库访问者,若否,则为该数据库访问者分配普通数据库连接失败。
其中,判断是否能够创建新的普通数据库连接的方法为:如果当前数据库连接总数量小于连接数量上限,则能够创建新的普通数据库连接,否则,不能创建新的普通数据库连接。
在实际应用中,当数据库访问者的读数据请求完成之后,可以回收分配给该数据库访问者的数据库连接,以供之后的其它数据库访问者或等待队列中等待分配数据库连接的数据库访问者使用。
因此,本步骤103中,为数据库访问者分配数据库连接之后,如果该数据库访问者的读访问请求执行完毕,则需要回收分配给该数据库访问者分配的数据库连接,若等待队列不为空,则可以唤醒该等待队列中的首个数据库访问者,如果唤醒的数据库访问者已加入特权访问表,则为唤醒的数据库访问者分配专用数据库连接,否则,为唤醒的数据库访问者分配普通数据库连接。
这里,为唤醒的数据库访问者分配专用数据库连接,或为唤醒的数据库访问者分配普通数据库连接,均按照上述为数据库访问者分配专用数据库连接,或为数据库访问者分配普通数据库连接的方法实现。
以上对本发明实施例数据库连接分配方法进行了详细说明,本发明还提供了一种数据库连接分配装置,以下结合图2进行详细说明。
参见图2,图2是本发明实施例数据库连接分配装置的结构示意图,如图2所示,该装置包括:
接收单元201,用于接收数据库访问者的读数据请求;
维护单元202,用于获取该数据库访问者信息,根据该数据库访问者信息维护用于记录特权数据库访问者信息的特权访问表;
分配单元203,用于如果该数据库访问者已加入特权访问表,则为该数据库访问者分配专用数据库连接,否则,为该数据库访问者分配普通数据库连接。
图2所示装置中,
所述数据库访问者信息包括:数据库访问者的操作系统权限、访问优先级、最近第一预设时间内的访问频率;
所述维护单元202,根据该数据库访问者信息维护用于记录特权数据库访问者信息的特权访问表时,用于:
如果该数据库访问者已经加入特权访问表,则统计该数据库访问者在最近第一预设时间内的访问频率,并按照访问频率越高优先级调整步长越大的原则,调高该数据库访问者的优先级;
如果该数据库访问者尚未加入特权访问表,则根据该数据库访问者的权限设置该数据库访问者的访问优先级,并判断是否需要将该数据库访问者加入特权访问表,若是,则将该数据库访问者信息加入特权访问表,若否,则不将该数据库访问者信息加入特权访问表。
图2所示装置中,
预先针对每种操作系统权限设置对应的数据库访问者的访问优先级;
所述维护单元202,根据该数据库访问者的操作系统权限设置该数据库访问者的访问优先级时,用于:根据预先针对每种操作系统权限设置对应的数据库访问者的访问优先级确定该数据库访问者的操作系统权限对应的访问优先级,将该访问优先级设置为该数据库访问者的优先级。
图2所示装置中,还包括配置单元204;
所述配置单元204,用于预先设置用于记录禁止加入特权访问表的所有数据库访问者信息的黑名单;
所述维护单元202,判断是否需要将数据库访问者加入特权访问表时,用于:如果预先设置的黑名单中存在该数据库访问者信息,则确定不需要将该数据库访问者加入特权访问表,否则,确定需要将该数据库访问者加入特权访问表。
图2所示装置中,
所述数据库访问者信息还包括:数据库访问者的最近访问时间;
所述维护单元202,将该数据库访问者信息加入特权访问表时,用于:
如果特权访问表中的数据库访问者信息个数未超过预设特权访问表容量上限,则将该数据库访问者信息加入特权访问表;
如果特权访问表中的数据库访问者信息个数已达到预设特权访问表容量上限,则将特权访问表中的所有数据库访问者的优先级下调预设优先级步长,判断特权访问表中是否存在超过第二预设时间未访问数据库的数据库访问者,若是,则将超过第二预设时间未访问数据库的数据库访问者从特权访问表中删除,并将该数据库访问者信息加入特权访问表,若否,则在特权访问表中存在访问优先级低于该数据库访问者的访问优先级的其它数据库访问者信息时,先删除特权访问表中优先级最低的数据库访问者信息,再将该数据库访问者信息加入特权访问表,在特权访问表中不存在访问优先级低于该数据库访问者的访问优先级的其它数据库访问者信息时,不将该数据库访问者信息加入特权访问表;
否则,不将该数据库访问者信息加入特权访问表。
图2所示装置中,
所述分配单元203,为该数据库访问者分配数据库连接之前,进一步用于:如果存在缓存有该数据库访问者的读数据请求的空闲数据库连接,则将该空闲数据库连接分配给该数据库访问者。
图2所示装置中,
所述分配单元203,在该数据库访问者已加入特权访问表的情况下,如果为该数据库访问者分配专用数据库连接失败,则为该数据库访问者分配普通数据库连接,若为该数据库访问者分配普通数据库连接成功,则在满足普通数据库连接到专有数据库连接转化的条件时,将该普通数据库连接转化为专有数据库连接;若为该数据库访问者分配普通数据库连接失败,则将该数据库访问者信息及其读访问请求加入等待队列;
所述分配单元203,在该数据库访问者未加入特权访问表的情况下,如果为该数据库访问者分配普通数据库连接失败,则判断是否存在空闲的专有数据库连接,如果是,则在满足专有数据库连接到普通数据库连接转化的条件时,将该专有数据库连接转化为普通数据库连接,并将转化得到的普通数据库连接分配给该数据库访问者,如果否,则将该数据库访问者信息及其读访问请求加入等待队列。
图2所示装置中,
所述分配单元203,为该数据库访问者分配专用数据库连接时,用于:如果存在空闲的专用数据库连接,则为该数据库访问者分配一个空闲的专用数据库连接,否则,判断是否能够创建新的专用数据库连接,若是,则创建一个新的专用数据库连接并分配给该数据库访问者,若否,则为该数据库访问者分配专用数据库连接失败;
所述分配单元203,为该数据库访问者分配普通数据库连接时,用于:如果存在空闲的普通数据库连接,则为该数据库访问者分配一个空闲的普通数据库连接,否则,判断是否能够创建新的普通数据库连接,若是,则创建一个新的普通数据库连接并分配给该数据库访问者,若否,则为该数据库访问者分配普通数据库连接失败。
图2所示装置中,
普通数据库连接到专有数据库连接转化的条件为:当前数据库连接总数量已经达到连接数量上限,且当前专有数据库连接数总数量小于专有连接数量上限;
专有数据库连接到普通数据库连接转化的条件为:当前专有数据库连接数总数量大于专有连接数量下限;
所述分配单元203,判断是否能够创建新的专用数据库连接时,用于:如果当前专有数据库连接总数量小于专有连接数量上限,且当前数据库连接总数量小于连接数量上限,则能够创建新的专有数据库连接,否则,不能创建新的专有数据库连接;
所述分配单元203,判断是否能够创建新的普通数据库连接时,用于:如果当前数据库连接总数量小于连接数量上限,则能够创建新的普通数据库连接,否则,不能创建新的普通数据库连接。
图2所示装置中,
所述分配单元203,为数据库访问者分配数据库连接之后,进一步用于:如果该数据库访问者的读访问请求执行完毕,则回收分配给该数据库访问者分配的数据库连接,若等待队列不为空,则唤醒该等待队列中的首个数据库访问者,如果唤醒的数据库访问者已加入特权访问表,则为唤醒的数据库访问者分配专用数据库连接,否则,为唤醒的数据库访问者分配普通数据库连接。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (18)
1.一种数据库连接分配方法,其特征在于,该方法包括:
接收数据库访问者的读数据请求;
获取该数据库访问者信息,根据该数据库访问者信息维护用于记录特权数据库访问者信息的特权访问表;所述数据库访问者信息包括:数据库访问者的操作系统权限、访问优先级、最近第一预设时间内的访问频率;
如果该数据库访问者已加入特权访问表,则为该数据库访问者分配专用数据库连接,否则,为该数据库访问者分配普通数据库连接;
其中,
根据该数据库访问者信息维护用于记录特权数据库访问者信息的特权访问表的方法为:
如果该数据库访问者已经加入特权访问表,则统计该数据库访问者在最近第一预设时间内的访问频率,并按照访问频率越高优先级调整步长越大的原则,调高该数据库访问者的优先级;
如果该数据库访问者尚未加入特权访问表,判断是否需要将该数据库访问者加入特权访问表,若是,则根据该数据库访问者的权限设置该数据库访问者的访问优先级,并将该数据库访问者信息加入特权访问表,若否,则不将该数据库访问者信息加入特权访问表。
2.根据权利要求1所述的方法,其特征在于,
预先针对每种操作系统权限设置对应的数据库访问者的访问优先级;
根据该数据库访问者的操作系统权限设置该数据库访问者的访问优先级的方法为:根据预先针对每种操作系统权限设置对应的数据库访问者的访问优先级确定该数据库访问者的操作系统权限对应的访问优先级,将该访问优先级设置为该数据库访问者的优先级。
3.根据权利要求1所述的方法,其特征在于,
预先设置用于记录禁止加入特权访问表的所有数据库访问者信息的黑名单;
判断是否需要将数据库访问者加入特权访问表的方法为:如果预先设置的黑名单中存在该数据库访问者信息,则确定不需要将该数据库访问者加入特权访问表,否则,确定需要将该数据库访问者加入特权访问表。
4.根据权利要求1所述的方法,其特征在于,
所述数据库访问者信息还包括:数据库访问者的最近访问时间;
将该数据库访问者信息加入特权访问表的方法为:
如果特权访问表中的数据库访问者信息个数未达到预设特权访问表容量上限,则将该数据库访问者信息加入特权访问表;
如果特权访问表中的数据库访问者信息个数达到预设特权访问表容量上限,则将特权访问表中的所有数据库访问者的优先级下调预设优先级步长,判断特权访问表中是否存在超过第二预设时间未访问数据库的数据库访问者,若是,则将超过第二预设时间未访问数据库的数据库访问者从特权访问表中删除,并将该数据库访问者信息加入特权访问表,若否,则在特权访问表中存在访问优先级低于该数据库访问者的访问优先级的其它数据库访问者信息时,先删除特权访问表中优先级最低的数据库访问者信息,再将该数据库访问者信息加入特权访问表,在特权访问表中不存在访问优先级低于该数据库访问者的访问优先级的其它数据库访问者信息时,不将该数据库访问者信息加入特权访问表;
否则,不将该数据库访问者信息加入特权访问表。
5.根据权利要求1所述的方法,其特征在于,
为该数据库访问者分配数据库连接之前,进一步包括:如果存在缓存有该数据库访问者的读数据请求的空闲数据库连接,则将该空闲数据库连接分配给该数据库访问者。
6.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
该数据库访问者已加入特权访问表的情况下,如果为该数据库访问者分配专用数据库连接失败,则为该数据库访问者分配普通数据库连接,若为该数据库访问者分配普通数据库连接成功,则在满足普通数据库连接到专有数据库连接转化的条件时,将该普通数据库连接转化为专有数据库连接;若为该数据库访问者分配普通数据库连接失败,则将该数据库访问者信息及其读访问请求加入等待队列;
该数据库访问者未加入特权访问表的情况下,如果为该数据库访问者分配普通数据库连接失败,则判断是否存在空闲的专有数据库连接,如果是,则在满足专有数据库连接到普通数据库连接转化的条件时,将该专有数据库连接转化为普通数据库连接,并将转化得到的普通数据库连接分配给该数据库访问者,如果否,则将该数据库访问者信息及其读访问请求加入等待队列。
7.根据权利要求6所述的方法,其特征在于,
为该数据库访问者分配专用数据库连接的方法为:如果存在空闲的专用数据库连接,则为该数据库访问者分配一个空闲的专用数据库连接,否则,判断是否能够创建新的专用数据库连接,若是,则创建一个新的专用数据库连接并分配给该数据库访问者,若否,则为该数据库访问者分配专用数据库连接失败;
为该数据库访问者分配普通数据库连接的方法为:如果存在空闲的普通数据库连接,则为该数据库访问者分配一个空闲的普通数据库连接,否则,判断是否能够创建新的普通数据库连接,若是,则创建一个新的普通数据库连接并分配给该数据库访问者,若否,则为该数据库访问者分配普通数据库连接失败。
8.根据权利要求7所述的方法,其特征在于,
普通数据库连接到专有数据库连接转化的条件为:当前数据库连接总数量已经达到连接数量上限,且当前专有数据库连接数总数量小于专有连接数量上限;
专有数据库连接到普通数据库连接转化的条件为:当前专有数据库连接数总数量大于专有连接数量下限;
判断是否能够创建新的专用数据库连接的方法为:如果当前专有数据库连接总数量小于专有连接数量上限,且当前数据库连接总数量小于连接数量上限,则能够创建新的专有数据库连接,否则,不能创建新的专有数据库连接;
判断是否能够创建新的普通数据库连接的方法为:如果当前数据库连接总数量小于连接数量上限,则能够创建新的普通数据库连接,否则,不能创建新的普通数据库连接。
9.根据权利要求6所述的方法,其特征在于,
为数据库访问者分配数据库连接之后,如果该数据库访问者的读访问请求执行完毕,则回收分配给该数据库访问者分配的数据库连接,若等待队列不为空,则唤醒该等待队列中的首个数据库访问者,如果唤醒的数据库访问者已加入特权访问表,则为唤醒的数据库访问者分配专用数据库连接,否则,为唤醒的数据库访问者分配普通数据库连接。
10.一种数据库连接分配装置,其特征在于,该装置包括:
接收单元,用于接收数据库访问者的读数据请求;
维护单元,用于获取该数据库访问者信息,根据该数据库访问者信息维护用于记录特权数据库访问者信息的特权访问表;所述数据库访问者信息包括:数据库访问者的操作系统权限、访问优先级、最近第一预设时间内的访问频率;
分配单元,用于如果该数据库访问者已加入特权访问表,则为该数据库访问者分配专用数据库连接,否则,为该数据库访问者分配普通数据库连接;
其中,
所述维护单元,根据该数据库访问者信息维护用于记录特权数据库访问者信息的特权访问表时,用于:
如果该数据库访问者已经加入特权访问表,则统计该数据库访问者在最近第一预设时间内的访问频率,并按照访问频率越高优先级调整步长越大的原则,调高该数据库访问者的优先级;
如果该数据库访问者尚未加入特权访问表,则判断是否需要将该数据库访问者加入特权访问表,若是,则根据该数据库访问者的权限设置该数据库访问者的访问优先级,并将该数据库访问者信息加入特权访问表,若否,则不将该数据库访问者信息加入特权访问表。
11.根据权利要求10所述的装置,其特征在于,
预先针对每种操作系统权限设置对应的数据库访问者的访问优先级;
所述维护单元,根据该数据库访问者的操作系统权限设置该数据库访问者的访问优先级时,用于:根据预先针对每种操作系统权限设置对应的数据库访问者的访问优先级确定该数据库访问者的操作系统权限对应的访问优先级,将该访问优先级设置为该数据库访问者的优先级。
12.根据权利要求10所述的装置,其特征在于,还包括配置单元;
所述配置单元,用于预先设置用于记录禁止加入特权访问表的所有数据库访问者信息的黑名单;
所述维护单元,判断是否需要将数据库访问者加入特权访问表时,用于:如果预先设置的黑名单中存在该数据库访问者信息,则确定不需要将该数据库访问者加入特权访问表,否则,确定需要将该数据库访问者加入特权访问表。
13.根据权利要求10所述的装置,其特征在于,
所述数据库访问者信息还包括:数据库访问者的最近访问时间;
所述维护单元,将该数据库访问者信息加入特权访问表时,用于:
如果特权访问表中的数据库访问者信息个数未达到预设特权访问表容量上限,则将该数据库访问者信息加入特权访问表;
如果特权访问表中的数据库访问者信息个数已达到预设特权访问表容量上限,则将特权访问表中的所有数据库访问者的优先级下调预设优先级步长,判断特权访问表中是否存在超过第二预设时间未访问数据库的数据库访问者,若是,则将超过第二预设时间未访问数据库的数据库访问者从特权访问表中删除,并将该数据库访问者信息加入特权访问表,若否,则在特权访问表中存在访问优先级低于该数据库访问者的访问优先级的其它数据库访问者信息时,先删除特权访问表中优先级最低的数据库访问者信息,再将该数据库访问者信息加入特权访问表,在特权访问表中不存在访问优先级低于该数据库访问者的访问优先级的其它数据库访问者信息时,不将该数据库访问者信息加入特权访问表;
否则,不将该数据库访问者信息加入特权访问表。
14.根据权利要求10所述的装置,其特征在于,
所述分配单元,为该数据库访问者分配数据库连接之前,进一步用于:如果存在缓存有该数据库访问者的读数据请求的空闲数据库连接,则将该空闲数据库连接分配给该数据库访问者。
15.根据权利要求10所述的装置,其特征在于,
所述分配单元,在该数据库访问者已加入特权访问表的情况下,如果为该数据库访问者分配专用数据库连接失败,则为该数据库访问者分配普通数据库连接,若为该数据库访问者分配普通数据库连接成功,则在满足普通数据库连接到专有数据库连接转化的条件时,将该普通数据库连接转化为专有数据库连接;若为该数据库访问者分配普通数据库连接失败,则将该数据库访问者信息及其读访问请求加入等待队列;
所述分配单元,在该数据库访问者未加入特权访问表的情况下,如果为该数据库访问者分配普通数据库连接失败,则判断是否存在空闲的专有数据库连接,如果是,则在满足专有数据库连接到普通数据库连接转化的条件时,将该专有数据库连接转化为普通数据库连接,并将转化得到的普通数据库连接分配给该数据库访问者,如果否,则将该数据库访问者信息及其读访问请求加入等待队列。
16.根据权利要求15所述的装置,其特征在于,
所述分配单元,为该数据库访问者分配专用数据库连接时,用于:如果存在空闲的专用数据库连接,则为该数据库访问者分配一个空闲的专用数据库连接,否则,判断是否能够创建新的专用数据库连接,若是,则创建一个新的专用数据库连接并分配给该数据库访问者,若否,则为该数据库访问者分配专用数据库连接失败;
所述分配单元,为该数据库访问者分配普通数据库连接时,用于:如果存在空闲的普通数据库连接,则为该数据库访问者分配一个空闲的普通数据库连接,否则,判断是否能够创建新的普通数据库连接,若是,则创建一个新的普通数据库连接并分配给该数据库访问者,若否,则为该数据库访问者分配普通数据库连接失败。
17.根据权利要求16所述的装置,其特征在于,
普通数据库连接到专有数据库连接转化的条件为:当前数据库连接总数量已经达到连接数量上限,且当前专有数据库连接数总数量小于专有连接数量上限;
专有数据库连接到普通数据库连接转化的条件为:当前专有数据库连接数总数量大于专有连接数量下限;
所述分配单元,判断是否能够创建新的专用数据库连接时,用于:如果当前专有数据库连接总数量小于专有连接数量上限,且当前数据库连接总数量小于连接数量上限,则能够创建新的专有数据库连接,否则,不能创建新的专有数据库连接;
所述分配单元,判断是否能够创建新的普通数据库连接时,用于:如果当前数据库连接总数量小于连接数量上限,则能够创建新的普通数据库连接,否则,不能创建新的普通数据库连接。
18.根据权利要求15所述的装置,其特征在于,
所述分配单元,为数据库访问者分配数据库连接之后,进一步用于:如果该数据库访问者的读访问请求执行完毕,则回收分配给该数据库访问者分配的数据库连接,若等待队列不为空,则唤醒该等待队列中的首个数据库访问者,如果唤醒的数据库访问者已加入特权访问表,则为唤醒的数据库访问者分配专用数据库连接,否则,为唤醒的数据库访问者分配普通数据库连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811414492.3A CN109542940B (zh) | 2018-11-26 | 2018-11-26 | 一种数据库连接分配方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811414492.3A CN109542940B (zh) | 2018-11-26 | 2018-11-26 | 一种数据库连接分配方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109542940A CN109542940A (zh) | 2019-03-29 |
CN109542940B true CN109542940B (zh) | 2021-07-30 |
Family
ID=65850401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811414492.3A Active CN109542940B (zh) | 2018-11-26 | 2018-11-26 | 一种数据库连接分配方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542940B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7676516B2 (en) * | 2002-10-15 | 2010-03-09 | Active-Base Ltd. | System and method for the optimization of database access in data base networks |
CN102395212A (zh) * | 2011-11-18 | 2012-03-28 | 百度在线网络技术(北京)有限公司 | 网关接入控制方法、系统及装置 |
CN102609467A (zh) * | 2012-01-16 | 2012-07-25 | 北京星网锐捷网络技术有限公司 | 数据库连接管理方法和装置 |
CN103365929A (zh) * | 2012-04-10 | 2013-10-23 | 阿里巴巴集团控股有限公司 | 一种数据库连接的管理方法及系统 |
-
2018
- 2018-11-26 CN CN201811414492.3A patent/CN109542940B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7676516B2 (en) * | 2002-10-15 | 2010-03-09 | Active-Base Ltd. | System and method for the optimization of database access in data base networks |
CN102395212A (zh) * | 2011-11-18 | 2012-03-28 | 百度在线网络技术(北京)有限公司 | 网关接入控制方法、系统及装置 |
CN102609467A (zh) * | 2012-01-16 | 2012-07-25 | 北京星网锐捷网络技术有限公司 | 数据库连接管理方法和装置 |
CN103365929A (zh) * | 2012-04-10 | 2013-10-23 | 阿里巴巴集团控股有限公司 | 一种数据库连接的管理方法及系统 |
Non-Patent Citations (1)
Title |
---|
数据库资源自适应调整优化研究;黄嘉东;《信息通信》;20170731(第175期);第120~122页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109542940A (zh) | 2019-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10853329B2 (en) | Distributed file system | |
CN108536526B (zh) | 一种基于可编程硬件的资源管理方法以及装置 | |
US8239868B2 (en) | Computer system, servers constituting the same, and job execution control method and program | |
US8863141B2 (en) | Estimating migration costs for migrating logical partitions within a virtualized computing environment based on a migration cost history | |
EP2725862A1 (en) | Resource allocation method and resource management platform | |
JP2007102452A (ja) | システム管理プログラムおよびシステム管理方法 | |
JP2009541848A (ja) | コンピュータマイクロジョブを中断せずに実行するようスケジュールするための方法、システムおよび装置 | |
CN110196860B (zh) | 唯一标识分配方法及装置、电子设备、存储介质 | |
CN106919452B (zh) | 多核异构系统及其硬件资源的管理方法 | |
WO2013063965A1 (zh) | 存储系统服务质量控制方法、装置和系统 | |
CN110162396A (zh) | 内存回收方法、装置、系统和存储介质 | |
CN103685517A (zh) | 一种基于业务类别特征的存储分级调度方法及系统 | |
CN111177032A (zh) | 缓存空间申请方法、系统、装置及计算机可读存储介质 | |
CN114650501A (zh) | 北斗rdss无线资源动态分配方法、系统、服务终端及存储介质 | |
CN109542940B (zh) | 一种数据库连接分配方法和装置 | |
US11435812B1 (en) | Efficient utilization of spare datacenter capacity | |
WO2019029721A1 (zh) | 任务的调度方法、装置、设备及存储介质 | |
JP2001229058A (ja) | データベースサーバ処理方法 | |
CN107870877B (zh) | 用于在存储系统中管理数据访问的方法和系统 | |
KR20110018618A (ko) | 다중 쓰레드의 비동기 입출력 처리 장치 및 그 방법 | |
CN114296891A (zh) | 任务的调度方法、系统、计算设备、存储介质及程序产品 | |
US7689692B2 (en) | Method of arranging dialogue type service through interactive service system | |
KR102450749B1 (ko) | 원격 컴퓨팅 서비스 제공 시스템 및 방법 | |
CN112445590A (zh) | 一种计算资源接入及调度系统和方法 | |
CN117082058B (zh) | 一种数据库隔离装置环境下的文件传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |