更新时间:2026-07-28 GMT+08:00
技术原理
核心机制
打开建连线程池功能后,建连流程会发生变化,GaussDB收到建连事件时,会将任务派发到建连线程池中,由该线程池中的worker线程绑定到此连接对应的session执行初始化,初始化完成后,继续执行建连阶段的sql语句,建连结束后,将session派发到业务线程池中执行后续业务,详细流程如下:
- 客户端(gsql或jdbc等)触发建连操作。
- GaussDB收到建连请求,创建session,派发session到建连线程池中。
- 建连线程池获取一条空闲ConnTPLWorker线程绑定session执行建连初始化,包括鉴权、首包处理等。
- 连接初始化完成后,由ConnTPLWorker线程继续执行建连阶段的sql语句。
- 建连结束后,由ConnTPLWorker线程将session派发至业务线程池中等待下一次任务。
- 业务线程池获取一条空闲TPLWorker线程绑定session执行后续sql业务并返回执行结果。
关键接口
建连线程池主要使用以下GUC参数,具体描述请参见《参考》中“数据库运行参数说明 > GUC参数说明 > 线程池”章节。
| 参数名 | 参数说明 |
|---|---|
| enable_thread_pool | 控制线程池是否打开的开关,默认为on。 |
| enable_connect_thread_pool | 控制建连线程池是否打开的开关,默认为on。 |
| connect_thread_pool_attr | 控制建连线程池的初始配置参数,默认为'auto'。 |
父主题: 建连线程池