针对sn架构的mpp数据库集群的数据库连接池管理方法及系统的制作方法

文档序号:9597956阅读:866来源:国知局
针对sn架构的mpp数据库集群的数据库连接池管理方法及系统的制作方法
【技术领域】
[0001]本发明属于数据库技术领域,尤其是涉及一种针对SN架构的MPP数据库集群的数据库连接池管理方法及系统。
【背景技术】
[0002]数据库连接池是一种采用池化管理数据库连接资源,提高应用系统对数据库访问性能的技术。连接池的主要功能是负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个。现有技术中,通过释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。采用数据库连接池,可有效避免频繁的数据库连接的创建和关闭等耗时操作,能够明显提高对数据库访问的性能。
[0003]在大规模数据密集型系统中,数据通常分布在由多个相互独立的数据库组成的无共享结构的数据库集群系统中,基于SN(SHARED-NOTHING)架构的MPP(Massively ParallelProcessing)数据库集群就是其中的一种,在集群系统中,数据的检索和查询往往涉及多个数据库中的数据的协同处理。数据库连接池是提高单个数据库实例连接管理和数据访问的有效途径。然而,在基于SN(SHARED-NOTHING)架构的MPP(Massively ParallelProcessing)数据库集群中单个数据库连接池往往无法满足对多个数据库的协同访问。

【发明内容】

[0004]有鉴于此,本发明实施例提供了一种针对SN架构的MPP数据库集群的数据库连接池管理方法及系统,以针对SN架构的MPP数据库集群实现高效的具有负载均衡高可用的数据库连接缓存的目的。
[0005]第一方面,本发明实施例提供了一种针对SN架构的MPP数据库集群的数据库连接池管理方法,所述方法包括:
[0006]根据SN架构的MPP数据库集群的可连接节点信息初始化数据库连接池,生成缓存分区;
[0007]根据应用程序所发起的连接数据请求,选取提供可用连接的缓存分区供所述应用程序连接;
[0008]使所述缓存分区借出一个连接,并维护缓存分区的状态。
[0009]进一步的,在使所述缓存分区借出一个连接,并维护缓存分区的状态之后,还包括:
[0010]主动感知或周期探测数据库集群各个节点的状态,在节点失效时,将失效节点对应的缓存分区设置为不可用状态并释放当前缓存分区的所有连接。
[0011]进一步的,在将失效节点对应的缓存分区设置为不可用状态并释放当前缓存分区的所有连接后,还包括:
[0012]在失效节点重新回到集群中后,连接池方法的缓存管理模块重新把对应的缓存分区状态设置为可用状态。
[0013]进一步的,所述根据应用程序所发起的连接数据请求,选取提供可用连接的缓存分区供所述应用程序连接,包括:
[0014]根据应用程序所发起的连接数据请求,选取借出连接数最少的缓存分区供所述应用程序连接。
[0015]更进一步的,所述维护缓存分区的状态,包括:
[0016]根据最大连接数、最小连接数、最大空闲连接数、最小空闲连接数、最大空闲时间和初始化连接数维护当前缓存分区的功能。
[0017]第二方面,本发明实施例还提供了一种针对SN架构的MPP数据库集群的数据库连接池管理系统,所述系统包括:
[0018]缓存分区生成模块,用于根据SN架构的MPP数据库集群的可连接节点信息初始化数据库连接池,生成缓存分区;
[0019]缓存分区选取模块,用于根据应用程序所发起的连接数据请求,选取提供可用连接的缓存分区供所述应用程序连接;
[0020]状态维护模块,用于使所述缓存分区借出一个连接,并维护缓存分区的状态。
[0021 ] 进一步的,所述系统还包括:
[0022]连接释放模块,用于主动感知或周期探测数据库集群各个节点的状态,在节点失效时,将失效节点对应的缓存分区设置为不可用状态并释放当前缓存分区的所有连接。
[0023]进一步的,所述系统还包括:
[0024]可用状态设置模块,用于在失效节点重新回到集群中后,连接池方法的缓存管理模块重新把对应的缓存分区状态设置为可用状态。
[0025]进一步的,所述缓存分区选取模块,用于:
[0026]根据应用程序所发起的连接数据请求,选取借出连接数最少的缓存分区供所述应用程序连接。
[0027]更进一步的,所述状态维护模块用于:
[0028]根据最大连接数、最小连接数、最大空闲连接数、最小空闲连接数、最大空闲时间和初始化连接数维护当前缓存分区的功能。
[0029]采用本发明实施例所提供的技术方案,能够针对SN架构的MPP数据库集群对数据库连接池进行有效管理,可以通过实现标准接口与现有应用无缝迀移,且相比传统数据库连接池性能有大幅提升,实现创建连接时的负载均衡,且能够自定义负载均衡策略。并高效解决基于SN架构大规模集群节点失效场景下,连接池释放失效连接问题。
【附图说明】
[0030]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0031]图1是本发明第一实施例所提供的针对SN架构的MPP数据库集群的数据库连接池管理方法的流程示意图;
[0032]图2是本发明第二实施例所提供的针对SN架构的MPP数据库集群的数据库连接池管理方法的流程示意图;
[0033]图3是本发明第二实施例所提供的针对SN架构的MPP数据库集群的数据库连接池管理方法中总体功能架构示意图;
[0034]图4是本发明第二实施例所提供的针对SN架构的MPP数据库集群的数据库连接池管理方法中连接池方法功能分解示意图;
[0035]图5是本发明第三实施例提供的针对SN架构的MPP数据库集群的数据库连接池管理系统的结构示意图。
【具体实施方式】
[0036]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
[0037]图1示出本发明的第一实施例。
[0038]图1是本发明第一实施例提供的针对SN架构的MPP数据库集群的数据库连接池管理方法的流程示意图,本实施例的方法由针对SN架构的MPP数据库集群的数据库连接池管理系统来执行,可通过硬件和软件的方式实现,并集成于数据库集群中。
[0039]参见图1,所述针对SN架构的MPP数据库集群的数据库连接池管理方法,包括:
[0040]步骤S101,根据SN架构的MPP数据库集群的可连接节点信息初始化数据库连接池,生成缓存分区。
[0041]在使用数据库连接池之前,需要对数据库连接池之进行初始化配置。具体的,需要根据SN架构的MPP数据库集群的节点进行配置。示例性的,所述据SN架构的MPP数据库集群为4节点数据库集群,每个节点的IP地址为:192.168.9.5,192.168.9.6,192.168.9.7,192.168.9.8。假设4个数据库节点都可以作为应用的接入点。配置数据库集群连接池对应的4个数据库集群的IP ;初始化大小为8 ;最大空闲连接数40 ;最小空闲连接数12 ;负载均衡策略最小连接数优先;连接池根据配置的信息初始化4个缓存分区,缓存分区I?4分别对应节点I?4。
[0042]步骤S102,根据应用程序所发起的连接数据请求,选取提供可用连接的缓存分区供所述应用程序连接。
[0043]应用程序需要访问根据据SN架构的MPP数据库集群时,应用程序向连接池申请一个连接,发出申请缓存分区请求。数据库连接池根据申请缓存分区请求,查看缓存分区的状态,寻找可用状态的缓存分区供应用程序连接。如果缓存分区都是可用状态,查询每个缓存分区的借出连接,从缓存分区中找一个借出连接最少的一个缓存分区,并将所述借出连接最少的一个缓存分区与应用程序建立连接。
[0044]步骤S103,使所述缓存分区借出一个连接,并维护缓存分区的状态。
[0045]在确定提供可用连接的缓存分区后,将所述缓存分区与应用程序建立一个借出连接,并记录借出连接的信息。并根据护缓存分区的状态,例如:根据最大连接数、最小连接数、最大空闲连接数、最小空闲连接数、最大空闲时间和初始化连接数维护当前缓存分区的功能。
[0046]本实施例能够针对SN架构的MPP数据库集群对数据库连接池进行有效管理,可以通过实现标准接口与现有应用无缝迀移,且相比传统数据库连接池性能有大幅提升。
[0047]在本实施例的一个优选实施方案中,数据库连接池选取提供可用连接的缓存分区供所述应用程序连接可以使用负载均衡策略来选取合适的缓存分区与应用程序连接。所述的负载均衡策略默认为数据库集群节点连接数最少者优先,也可以根据由用户根据流量或者空闲时间占比等重新调整优化策略,以能够实现创建连接时的负载均衡,且能够自定义负载均衡策略。
[0048]图2示出本发明的第二实施例。
[0049]图2是本发明第二实施例提供的针对SN架构的MPP数据库集群的数据库连接池管理方法的流程示意图。所述针对SN架构的MPP数据库集群的数据库连接池管理方法以本发明第一实施例为基础,进一步的,在使所述缓存分区借出一个连接,并维护缓存分区的状态之后,增加如下步骤:主动感知或周期探测数据库集群各个节点的状态,在节点失效时,将失效
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1