数据库线程池控制方法和装置、电子设备、计算机介质制造方法及图纸

技术编号:43762600 阅读:20 留言:0更新日期:2024-12-24 16:05
本公开提供了一种数据库线程池控制方法和装置。该方法的一具体实施方式包括:在数据库的操作系统中加载能够将线程替换为协程的动态运行库,生成至少一个协程调度线程;接收客户端向数据库发送的连接请求;检测数据库创建新线程的请求是否为处理连接请求的请求;响应于检测到数据库创建新线程的请求为处理连接请求的请求,创建与连接请求对应的协程,并通过至少一个协程调度线程调度协程完成连接请求对应的访问任务。该实施方式以协程调度线程充当数据库线程池的工作线程,利用协程换入换出机制规避了传统多线程调度模型的任务“饿死”问题,及其相关的任务响应速度抖动问题,提升数据库并发性能的同时,降低了并发调度的资源消耗。

【技术实现步骤摘要】

本公开涉及计算机,具体涉及数据库线程池控制方法和装置、电子设备以及计算机可读介质。


技术介绍

1、mysql数据库默认的并发连接模型采用“一线程一连接”,即为每个连接创建一个线程,这种数据库的一大缺陷,就是在高并发场景下,频繁创建/销毁线程会导致数据库卡死或崩溃。此外,即使使用长连接模式,大量的线程也会极大增加任务调度负担。

2、为解决上述问题,一些数据库推出了线程池的方案,线程池技术的目的是以固定数量的线程,通过轮转响应的方式,处理远高于线程池中线程个数的任务,从而达到减少调度争抢、降低资源占用率的目的。但是,这种模式下,如果所有任务都处于同一个优先级,那么在任务执行时间普遍比较长的情况下,一些急需完成的任务就会有很高的延迟。于是,某些线程池引入了高优先级队列。然而,当高优先级队列中的任务较多或普遍执行时间较长时,低优先级任务的延迟就会被进一步加剧,在极端情况下,会出现某些任务永远无法得到响应的现象,该现象称之为“饿死”现象。


技术实现思路

1、本公开的实施例提出了数据库线程池控制方法和装置、电本文档来自技高网...

【技术保护点】

1.一种数据库线程池控制方法,所述方法包括:

2.根据权利要求1所述的方法,所述在数据库的操作系统中加载能够将线程替换为协程的动态运行库,生成至少一个协程调度线程包括:

3.根据权利要求1所述的方法,所述在数据库的操作系统中加载能够将线程替换为协程的动态运行库,生成至少一个协程调度线程包括:

4.根据权利要求1-3之一所述的方法,所述方法还包括:

5.根据权利要求4所述的方法,其中,所述若检测到与所述连接请求对应的协程未处于第一状态与第二状态之间的状态,采用所述至少一个协程调度线程中的IO密集型调度线程调度与所述连接请求对应的协程包括:...

【技术特征摘要】

1.一种数据库线程池控制方法,所述方法包括:

2.根据权利要求1所述的方法,所述在数据库的操作系统中加载能够将线程替换为协程的动态运行库,生成至少一个协程调度线程包括:

3.根据权利要求1所述的方法,所述在数据库的操作系统中加载能够将线程替换为协程的动态运行库,生成至少一个协程调度线程包括:

4.根据权利要求1-3之一所述的方法,所述方法还包括:

5.根据权利要求4所述的方法,其中,所述若检测到与所述连接请求对应的协程未处于第一状态与第二状态之间的状态,采用所述至少一个协程调度线程中的io密集型调度线程调度与所述连接请求对应的协程包括:

6.根据权利要求5所述的方法,其中,所述数...

【专利技术属性】
技术研发人员:孟祥滨
申请(专利权)人:京东科技信息技术有限公司
类型:发明
国别省市:

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

1