System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于LSM树的数据库连接管理系统及方法技术方案_技高网

一种基于LSM树的数据库连接管理系统及方法技术方案

技术编号:40809543 阅读:2 留言:0更新日期:2024-03-28 19:32
本发明专利技术提供一种基于LSM树的数据库连接管理系统及方法。所述方法基于所述系统实现,包括步骤:建立基于LSM树的数据库连接池并加载配置参数;响应于应用程序的关于连接获取的请求执行相应操作,包括:选择池内的空闲且有效的连接进行复用;若池内不存在空闲且有效的连接,则判断是否允许添加新连接,若允许,则通知数据库向池内添加新连接以满足所述请求,若不允许,则将所述请求加入请求等待队列,并在等待超时后清理所述请求且通知应用程序;定期对池内的空闲时间大于最大空闲时间或者生命周期大于最大生命周期的空闲连接进行清理。根据本发明专利技术,能够解决现有基于连接池的数据库连接管理技术容易影响系统的并发性能和资源利用效率的问题。

【技术实现步骤摘要】

本专利技术属于数据库连接管理领域,更具体地,涉及一种基于lsm树的数据库连接管理系统及方法。


技术介绍

1、数据库连接管理是指在应用程序与数据库进行通信时,有效地管理和使用数据库连接。通常情况下,应用程序需要在每次数据库操作之前打开连接,并在执行完操作后关闭连接。然而,这种方式会导致大量的连接打开和关闭,从而降低系统性能。为了解决这一问题,数据库连接池技术应运而生。

2、数据库连接池技术是一种通过连接池管理和维护数据库连接的技术。数据库连接池中的连接可以被多个应用程序共享,从而避免了每次操作都需要创建和关闭连接的开销。数据库连接池具有一个连接缓存区,用于存储预先创建的连接。当应用程序请求连接时,数据库连接池会从缓存区中分配一个可用的连接给应用程序使用,并在使用完毕后回收该连接,进而实现数据库连接的复用,从而提高系统的并发性能和资源利用效率。

3、目前,现有的数据库连接池技术通常会采用同步锁来保证线程安全和数据一致性。然而,这种方式可能会导致线程阻塞和锁竞争情况的发生。具体地,一方面,当一个线程获得数据库连接并开始执行数据库操作时,其他线程如果需要获取连接,就必须等待当前线程释放连接才能继续执行操作,在此情况下,如果有大量并发请求同时到达,势必将导致线程阻塞,从而影响系统的并发性能;另一方面,当多个线程同时竞争获取连接时,可能导致同步锁的竞争和频繁的上下文切换,这不仅将增加系统的开销和延迟,而且可能导致线程饥饿的问题。


技术实现思路

1、本专利技术的目的在于解决现有基于连接池的数据库连接管理技术因采用同步锁机制而容易导致线程阻塞和锁竞争情况的发生,进而影响系统的并发性能和资源利用效率的问题。

2、为了实现上述目的,本专利技术提供一种基于lsm树的数据库连接管理系统及方法。

3、根据本专利技术的第一方面,提供一种基于lsm树的数据库连接管理系统,该数据库连接管理系统包括以下功能模块:

4、连接池初始化模块,用于响应于初始化指令,建立基于lsm树的数据库连接池并加载配置参数,所述配置参数包括最大打开连接数、最大生命周期、最大空闲时间和连接等待超时时间;

5、连接池管理模块,用于响应于应用程序的关于数据库连接获取的请求执行请求响应操作,该操作包括:

6、选择所述数据库连接池内的空闲且有效的连接进行复用,

7、若所述数据库连接池内不存在空闲且有效的连接,则根据最大打开连接数判断原则确定是否允许添加新连接,若允许,则通知数据库向所述数据库连接池内添加新连接以满足所述请求,若不允许,则将所述请求加入请求等待队列,并在所述请求的等待时间大于连接等待超时时间时,清理所述请求且通知所述应用程序;

8、连接池清理模块,用于响应于连接池清理指令或者按照预定的频率对所述数据库连接池内的空闲时间大于最大空闲时间或者生命周期大于最大生命周期的空闲连接进行清理。

9、作为可选的是,所述配置参数还包括最大空闲连接数;

10、所述连接池初始化模块还用于:

11、在加载配置参数之后,判断所述数据库连接池内的连接数量是否不大于最大空闲连接数;

12、若是,输出所述连接池清理指令;

13、若否,调整所述数据库连接池内的连接数量,以使其不大于最大空闲连接数,并输出所述连接池清理指令。

14、作为可选的是,所述选择所述数据库连接池内的空闲且有效的连接进行复用包括:

15、确定所述数据库连接池内的所有空闲连接,并在其中选择一个空闲连接作为拟复用连接;

16、判断所述拟复用连接的生命周期是否不大于最大生命周期,若是,判断该连接有效并复用该连接,若否,返回执行选择拟复用连接的步骤直至相应的拟复被判断为有效,并复用该连接。

17、作为可选的是,所述根据最大打开连接数判断原则确定是否允许添加新连接包括:

18、判断所述数据库连接池的当前已打开的连接的数量是否小于最大打开连接数;

19、若是,则允许添加新连接;

20、若否,则不允许添加新连接。

21、作为可选的是,所述通知数据库向所述数据库连接池内添加新连接以满足所述请求包括:

22、所述数据库响应于添加连接的通知,判断预先建立的连接等待队列中是否存在连接,若是,选择其中一个连接作为目标连接,若否,新建一个连接作为目标连接;

23、将所述目标连接标记为已使用状态,将所述目标连接以键值对的形式缓存至所述数据库连接池中,并将所述目标连接的值反馈给所述应用程序。

24、作为可选的是,在自将所述请求加入请求等待队列至所述请求的等待时间达到连接等待超时时间的期间,若所述数据库连接池内出现空闲且有效的连接,则复用该连接;

25、所述复用该连接包括将该连接的值反馈给所述应用程序。

26、作为可选的是,所述键值对中的键包括连接的id、ip地址和端口信息;

27、所述键值对中的值为包含连接及其相关信息的数据结构,所述相关信息包括连接的引用、创建时间、最后使用时间和连接状态,所述连接状态包括已使用、空闲和故障。

28、作为可选的是,所述对所述数据库连接池内的空闲时间大于最大空闲时间或者生命周期大于最大生命周期的空闲连接进行清理包括:

29、遍历所述数据库连接池内的空闲连接,若目标空闲连接的空闲时间大于最大空闲时间,则从所述数据库连接池内移除该目标空闲连接;

30、遍历所述数据库连接池内的空闲连接,若目标空闲连接的生命周期大于最大生命周期,则从所述数据库连接池内移除该目标空闲连接。

31、作为可选的是,在遍历所述数据库连接池内的空闲连接以判断每个空闲连接的空闲时间是否大于最大空闲时间时,按照最后使用时间由早到晚的顺序对空闲连接进行遍历;

32、和/或,从所述数据库连接池内移除目标空闲连接具体为:

33、在所述数据库连接池内删除所述目标空闲连接的键。

34、根据本专利技术的第二方面,提供一种基于lsm树的数据库连接管理方法,该数据库连接管理方法基于上述任一种数据库连接管理系统实现,包括以下步骤:

35、响应于初始化指令,建立基于lsm树的数据库连接池并加载配置参数,所述配置参数包括最大打开连接数、最大生命周期、最大空闲时间和连接等待超时时间;

36、响应于应用程序的关于数据库连接获取的请求执行请求响应操作,该操作包括:

37、选择所述数据库连接池内的空闲且有效的连接进行复用,

38、若所述数据库连接池内不存在空闲且有效的连接,则根据最大打开连接数判断原则确定是否允许添加新连接,若允许,则通知数据库向所述数据库连接池内添加新连接以满足所述请求,若不允许,则将所述请求加入请求等待队列,并在所述请求的等待时间大于连接等待超时时间时,清理所述请求且通知所述应用程序;

39、响应于连接池清理指令或本文档来自技高网...

【技术保护点】

1.一种基于LSM树的数据库连接管理系统,其特征在于,包括:

2.根据权利要求1所述的基于LSM树的数据库连接管理系统,其特征在于,所述配置参数还包括最大空闲连接数;

3.根据权利要求2所述的基于LSM树的数据库连接管理系统,其特征在于,所述选择所述数据库连接池内的空闲且有效的连接进行复用包括:

4.根据权利要求3所述的基于LSM树的数据库连接管理系统,其特征在于,所述根据最大打开连接数判断原则确定是否允许添加新连接包括:

5.根据权利要求4所述的基于LSM树的数据库连接管理系统,其特征在于,所述通知数据库向所述数据库连接池内添加新连接以满足所述请求包括:

6.根据权利要求5所述的基于LSM树的数据库连接管理系统,其特征在于,在自将所述请求加入请求等待队列至所述请求的等待时间达到连接等待超时时间的期间,若所述数据库连接池内出现空闲且有效的连接,则复用该连接;

7.根据权利要求6所述的基于LSM树的数据库连接管理系统,其特征在于,所述键值对中的键包括连接的ID、IP地址和端口信息;

8.根据权利要求7所述的基于LSM树的数据库连接管理系统,其特征在于,所述对所述数据库连接池内的空闲时间大于最大空闲时间或者生命周期大于最大生命周期的空闲连接进行清理包括:

9.根据权利要求8所述的基于LSM树的数据库连接管理系统,其特征在于,在遍历所述数据库连接池内的空闲连接以判断每个空闲连接的空闲时间是否大于最大空闲时间时,按照最后使用时间由早到晚的顺序对空闲连接进行遍历;

10.一种基于LSM树的数据库连接管理方法,其特征在于,基于权利要求1-9任一项所述的基于LSM树的数据库连接管理系统实现,包括以下步骤:

...

【技术特征摘要】

1.一种基于lsm树的数据库连接管理系统,其特征在于,包括:

2.根据权利要求1所述的基于lsm树的数据库连接管理系统,其特征在于,所述配置参数还包括最大空闲连接数;

3.根据权利要求2所述的基于lsm树的数据库连接管理系统,其特征在于,所述选择所述数据库连接池内的空闲且有效的连接进行复用包括:

4.根据权利要求3所述的基于lsm树的数据库连接管理系统,其特征在于,所述根据最大打开连接数判断原则确定是否允许添加新连接包括:

5.根据权利要求4所述的基于lsm树的数据库连接管理系统,其特征在于,所述通知数据库向所述数据库连接池内添加新连接以满足所述请求包括:

6.根据权利要求5所述的基于lsm树的数据库连接管理系统,其特征在于,在自将所述请求加入请求等待队列至所述请求的等待时间达到连接等待超时时...

【专利技术属性】
技术研发人员:王永飞顾铠羟邓然
申请(专利权)人:中信数字创新上海科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1