一种分布式数据库内部调整连接的方法及装置与流程

文档序号:13703706阅读:150来源:国知局
技术领域本发明涉及数据库领域,特别涉及一种分布式数据库内部调整连接的方法及装置。

背景技术:
数据库连接是一种关键、有限、且昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。而连接的建立、断开都由连接池自身来管理。同时,还可以通过设置连接池的参数来控制连接池中的初始连接数、连接的上下限数以及每个连接的最大使用次数、最大空闲时间等。也可以通过其自身的管理机制来监视数据库连接的数量、使用情况。目前,数据库连接池大致都能做到以下几点内容:1.拥有一个配置文件,配置文件一般会有最小连接数,最大连接数,最大空闲时间等参数供配置。2.根据配置文件中的最小连接数,在系统初始时创建此数量的连接,放在内存中供用户使用。3.当用户需要连接时,从连接池中查找可用连接,如果能找到,那么直接返回给用户,如果找不到,首先查看此时连接池中的连接数量是否达到配置文件中配置的最大连接数的上限,如果尚未达到,那么可以继续创建新的连接,并将此连接返回给用户,如果已经达到上限,那么用户只能进入等待队列等待已有连接被释放。4.当用户使用完连接,归还给连接池,如果此时连接池中没有等待用户,则直接加入连接队列,如果有等待用户,则直接分配给用户。5.当连接池中的连接数量超过配置的最小连接数,那么根据配置的最大空闲时间,在超过最大空闲时间以后,自动销毁多余连接。然而,在上述的几点内容中,数据库在创建新的连接时,根据程序需要,可能会初始化一些数据,如果初始化数据量比较大,初始化时间较长,在高并发的情况下,势必会造成网络拥堵严重。针对此种情况,发明人提出一种智能预测网络的使用情况,提前创建预测数量的连接,以避免在无连接可用的情况下再去创建新的连接,缓解网络拥堵的现象。

技术实现要素:
本发明要解决的技术问题是提供一种分布式数据库内部调整连接的方法及装置,所述方法记录单位时间内的连接数,预测一段时间内的连接数量,在下次到达此时间的时候,自动创建预测数量的连接,以避免在无连接可用的情况下再去创建新的连接。为了解决上述问题,本发明提供了一种分布式数据库内部调整连接的方法,包括:记录第一时间段内数据库中创建的连接的连接数量;根据记录的所述第一时间段内的连接数量,调整第二时间段所述数据库中连接的连接数量。其中,所述记录第一时间段内数据库中创建的连接的连接数量,具体为:将所述第一时间段划分为多个子时间段;将每个所述子时间段内数据库中创建的连接的连接数量记录到预先创建的元数据表中,所述元数据表中至少记录有:时间段的标识、连接数量、连接的起始时间和连接的结束时间。其中,所述将每个所述子时间段内数据库中创建的连接的连接数量记录到预先创建的元数据表中,具体包括:若所述子时间段在所述元数据表中没有记录,则自动生成所述子时间段的时间段标识,并将所述子时间段内的数据库中创建的连接的连接数量、所述子时间段的起始时间、所述子时间段的结束时间以及所述时间段标识记录到所述元数据表中;若所述子时间段在所述元数据表中已经有对应的记录,则取出所述元数据表中所述已经记录的子时间段,计算所述子时间段内的连接数量与已经记录的子时间段中的连接数量的平均值,并将所述元数据表中已经记录的子时间段中的连接数量替换为计算得到的连接数量的平均值。其中,所述根据记录的所述第一时间段内的连接数量,调整在第二时间段内所述数据库中连接的连接数量,具体包括:根据记录的所述第一时间段内的连接数量,获取所述第二时间段内所述数据库中需创建的连接的估计连接数量;根据所述估计连接数量调整所述第二时间段内所述数据库中连接的连接数量。其中,所述根据所述估计连接数量调整所述第二时间段内所述数据库中连接的连接数量,具体包括:若所述第二时间段内所述数据库中连接的连接数量大于所述估计连接数量,且所述第二时间段内所述数据库中连接的连接数量与所述估计连接数量的差值小于等于预设的差值,则不调整所述第二时间段内所述数据库中连接的连接数量;若所述第二时间段内所述数据库中连接的连接数量大于所述估计连接数量,且所述第二时间段内所述数据库中连接的连接数量与所述估计连接数量的差值大于预设的差值,则关闭所述第二时间段内所述数据库中连接的连接数量超出所述预设差值部分的连接;若所述第二时间段内所述数据库中连接的连接数量小于所述估计连接数量,则继续创建连接直到所述第二时间段内所述数据库中连接的连接数量等于所述估计连接数量。此外,本发明还提供了一种分布式数据库内部调整连接的装置,包括:记录模块,用于记录第一时间段内数据库中创建的连接的连接数量;调整模块,用于根据记录的所述第一时间段内的连接数量,调整第二时间段所述数据库中连接的连接数量。其中,所述记录模块用于:将所述第一时间段划分为多个子时间段;将每个所述子时间段内数据库中创建的连接的连接数量记录到预先创建的元数据表中,所述元数据表中至少记录有:时间段的标识、连接数量、连接的起始时间和连接的结束时间。其中,所述记录模块具体用于:若所述子时间段在所述元数据表中没有记录,则自动生成所述子时间段的时间段标识,并将所述子时间段内的数据库中创建的连接的连接数量、所述子时间段的起始时间、所述子时间段的结束时间以及所述时间段标识记录到所述元数据表中;若所述子时间段在所述元数据表中已经有对应的记录,则取出所述元数据表中所述已经记录的子时间段,计算所述子时间段内的连接数量与已经记录的子时间段中的连接数量的平均值,并将所述元数据表中已经记录的子时间段中的连接数量替换为计算得到的连接数量的平均值。其中,所述调整模块用于:根据记录的所述第一时间段内的连接数量,获取所述第二时间段内所述数据库中需创建的连接的估计连接数量;根据所述估计连接数量调整所述第二时间段内所述数据库中连接的连接数量。其中,所述调整模块具体用于:若所述第二时间段内所述数据库中连接的连接数量大于所述估计连接数量,且所述第二时间段内所述数据库中连接的连接数量与所述估计连接数量的差值小于等于预设的差值,则不调整所述第二时间段内所述数据库中连接的连接数量;若所述第二时间段内所述数据库中连接的连接数量大于所述估计连接数量,且所述第二时间段内所述数据库中连接的连接数量与所述估计连接数量的差值大于预设的差值,则关闭所述第二时间段内所述数据库中连接的连接数量超出所述预设差值部分的连接;若所述第二时间段内所述数据库中连接的连接数量小于所述估计连接数量,则继续创建连接直到所述第二时间段内所述数据库中连接的连接数量等于所述估计连接数量。本发明的上述方案的有益效果如下:记录某一时间段内数据库中创建的连接的连接数量,以此为依据,预测下一时间段内的连接数量,在下次该时间到达的时候,根据预测的连接数量,数据库调整下一时间段连接的连接数量,以避免在无连接可用的情况下再去创建新的连接。附图说明图1表示本发明实施例中分布式数据库内部调整连接方法的步骤示意图;图2表示本发明实施例中记录第一时间段内数据库中创建的连接的连接数量的方法示意图;图3表示本发明实施例中调整第二时间段内数据库中连接的连接数量的方法示意图;图4表示本发明实施例中分布式数据库内部调整连接的装置框图。具体实施方式为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。本发明针对目前数据库在创建新的连接时,根据程序需要,可能会初始化一些数据,若初始化数据数量较大,且初始化时间较长,在高并发的情况下,势必会造成网络严重拥堵的问题,提供了一种分布式数据库内部调整连接的方法及装置。如图1所示,本发明实施例提供了一种分布式数据库内部调整连接的方法,包括:步骤S11:记录第一时间段内数据库中创建的连接的连接数量m;在本发明的实施例中,第一时间段的单位可以为:天、周、月、季度等,相应地,也就是记录某一天、某一周、某一月或谋一季度数据库中创建的连接的连接数量。当然可以理解的是,为了提高调整连接的准确性,第一时间段的单位优选为“天”。步骤S12:根据记录的所述第一时间段内的连接数量m,调整第二时间段所述数据库中连接的连接数量。在本发明的实施例中,第二时间段的单位与第一时间段的单位相适应,也就是如果第一时间段的单位为“天”,第二时间段的单位也是“天”。本发明的上述实施例中,记录某一时间段内数据库中创建的连接的连接数量,以此为依据,预测下一时间段内的连接数量,在下次该时间到达的时候,根据预测的连接数量,数据库调整下一时间段连接的连接数量,以避免在无连接可用的情况下再去创建新的连接。具体地,步骤S11中记录第一时间段内数据库中创建的连接的连接数量m,如图2所示,包括:步骤S111:将所述第一时间段划分为多个子时间段;步骤S112:将每个所述子时间段内数据库中创建的连接的连接数量记录到预先创建的元数据表中,所述元数据表中至少记录有:时间段的标识ID、连接数量、连接的起始时间和连接的结束时间。本实施例中,以小时为单位将所述第一时间段(例如以天为单位)划分为多个子时间段(例如以小时为单位),在数据库中预先创建一个元数据表,其中表中包括四个字段:ID、连接数量,连接的起始时间和结束时间。当一个小时结束时,取到此小时内的连接数量,若元数据表中没有与此小时对应的记录,则自动生成一条记录有此小时内ID、连接数量、连接的起始和结束时间的记录,直接插入元数据表中;若此小时在元数据表中已经有对应的记录,则取出元数据表中的记录,与此小时内的连接数量相加求平均值,用该平均值替换掉元数据表中的对应记录。具体地方法如下:若所述子时间段在所述元数据表中没有记录,则自动生成所述子时间段的时间段标识,并将所述子时间段内的数据库中创建的连接的连接数量、所述子时间段的起始时间、所述子时间段的结束时间以及所述时间段标识记录到所述元数据表中;若所述子时间段在所述元数据表中已经有对应的记录,则取出所述元数据表中所述已经记录的子时间段,计算所述子时间段内的连接数量与已经记录的子时间段中的连接数量的平均值,并将所述元数据表中已经记录的子时间段中的连接数量替换为计算得到的连接数量的平均值。具体地,步骤S12中所述根据记录的所述第一时间段内的连接数量m,调整在第二时间段内所述数据库中连接的连接数量,如图3所示,包括:步骤S121:根据记录的所述第一时间段内的连接数量m,获取所述第二时间段内所述数据库中需创建的连接的估计连接数量n;步骤S122:根据所述估计连接数量n调整所述第二时间段内所述数据库中连接的连接数量,具体地,首先判断所述第二时间段内所述数据库中连接的连接数量是否大于所述估计连接数量n,若判断为第二时间段内的连接数量大于所述估计连接数量n,且所述第二时间段内的连接数量与所述估计连接数量n的差值小于等于预设的差值K,则不调整所述第二时间段内所述数据库中连接的连接数量,相反的,所述第二时间段内的连接数量与所述估计连接数量n的差值大于预设的差值K,则关闭所述第二时间段内所述数据库中连接的连接数量超出所述预设差值K部分的连接;若判断为所述第二时间段内的连接数量小于所述估计连接数量n,则继续创建连接直到所述第二时间段内所述数据库中连接的连接数量等于所述估计连接数量n。应当指出的是,关于记录的连接数量m,会随着每天的变化进行更新,使系统能够在一个相对平均的情况下进行动态的调整。为了更清楚的实现上述目的,本实施例中提供了一种获取第二时间段内所述数据库中需创建的连接的估计连接数量n的计算方法:根据记录的所述第一时间段内的连接数量m,此处将m记为λ,根据泊松分布以x=λ±k(根据实验证明,当K=10为较有效的区间选择)以内的数作为泊松分布的参数,根据泊松分布确定连接数量X发生的可能性最大,则将连接数量X记为本实施例中的估计连接数量n。第二时间段内的连接数量有大于n的连接,且两者的差值小于等于K=10,则无需调整第二时间段内的连接数量,若两者的差值大于10,则关闭第二时间段内超出10的部分连接;若第二时间段内的连接数量小于n,则继续创建新的连接直到第二时间段内的连接数量达到n的值。此外,如图4所示,本发明还提供了一种分布式数据库内部调整连接的装置,包括:记录模块31,用于记录第一时间段内数据库中创建的连接的连接数量;具体地,所述记录模块31用于:将所述第一时间段划分为多个子时间段;将每个所述子时间段内数据库中创建的连接的连接数量记录到预先创建的元数据表中,所述元数据表中至少记录有:时间段的标识、连接数量、连接的起始时间和连接的结束时间。应当说明的是,若所述子时间段在所述元数据表中没有记录,则自动生成所述子时间段的时间段标识,并将所述子时间段内的数据库中创建的连接的连接数量、所述子时间段的起始时间、所述子时间段的结束时间以及所述时间段标识记录到所述元数据表中;若所述子时间段在所述元数据表中已经有对应的记录,则取出所述元数据表中所述已经记录的子时间段,计算所述子时间段内的连接数量与已经记录的子时间段中的连接数量的平均值,并将所述元数据表中已经记录的子时间段中的连接数量替换为计算得到的连接数量的平均值。调整模块32,用于根据记录的所述第一时间段内的连接数量,调整第二时间段所述数据库中连接的连接数量。具体地,所述调整模块32用于:根据记录的所述第一时间段内的连接数量,获取所述第二时间段内所述数据库中需创建的连接的估计连接数量;根据所述估计连接数量调整所述第二时间段内所述数据库中连接的连接数量。应当说明的是,若所述第二时间段内所述数据库中连接的连接数量大于所述估计连接数量,且所述第二时间段内所述数据库中连接的连接数量与所述估计连接数量的差值小于等于预设的差值,则不调整所述第二时间段内所述数据库中连接的连接数量;若所述第二时间段内所述数据库中连接的连接数量大于所述估计连接数量,且所述第二时间段内所述数据库中连接的连接数量与所述估计连接数量的差值大于预设的差值,则关闭所述第二时间段内所述数据库中连接的连接数量超出所述预设差值部分的连接;若所述第二时间段内所述数据库中连接的连接数量小于所述估计连接数量,则继续创建连接直到所述第二时间段内所述数据库中连接的连接数量等于所述估计连接数量。本发明上述实施例,智能预测网络的使用情况,数据库提前创建好连接,有效缓解网络拥堵的现象。本发明实施例的分布式数据库内部调整连接的方法及装置,记录某一时间段内数据库中创建的连接的连接数量,以此为依据,预测下一时间段内的连接数量,在下次该时间到达的时候,根据预测的连接数量,数据库调整下一时间段内连接的连接数量,以避免在无连接可用的情况下再去创建新的连接。以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1