更新时间:2026-07-28 GMT+08:00
分享

技术原理

核心机制

打开建连线程池功能后,建连流程会发生变化,GaussDB收到建连事件时,会将任务派发到建连线程池中,由该线程池中的worker线程绑定到此连接对应的session执行初始化,初始化完成后,继续执行建连阶段的sql语句,建连结束后,将session派发到业务线程池中执行后续业务,详细流程如下:

  1. 客户端(gsql或jdbc等)触发建连操作。
  2. GaussDB收到建连请求,创建session,派发session到建连线程池中。
  3. 建连线程池获取一条空闲ConnTPLWorker线程绑定session执行建连初始化,包括鉴权、首包处理等。
  4. 连接初始化完成后,由ConnTPLWorker线程继续执行建连阶段的sql语句。
  5. 建连结束后,由ConnTPLWorker线程将session派发至业务线程池中等待下一次任务。
  6. 业务线程池获取一条空闲TPLWorker线程绑定session执行后续sql业务并返回执行结果。

关键接口

建连线程池主要使用以下GUC参数,具体描述请参见《参考》中“数据库运行参数说明 > GUC参数说明 > 线程池”章节。

表1 GUC参数

参数名

参数说明

enable_thread_pool

控制线程池是否打开的开关,默认为on。

enable_connect_thread_pool

控制建连线程池是否打开的开关,默认为on。

connect_thread_pool_attr

控制建连线程池的初始配置参数,默认为'auto'。

相关文档