#会话管理

YashanDB会话管理在分布式环境下需要协调各节点间的会话资源,用以隔离用户对于DN上相关会话资源管理。主要在于会话管理采用线程池的方式处理来自客户端连接的任务,并且同时限制任务实际在数据库系统中的并发数量,以供数据库更加高效的运行。

# 配置参数

MAX_REACTOR_CHANNELS表示负责监听处于等待状态的网络连接的后台线程,MAX_REACTOR_CHANNELS = 0表示不启用REACTOR模式,每个客户端连接分配独立线程处理进行处理,MAX_REACTOR_CHANNELS >= 1表示启用REACTOR模式,客户端连接采用共享线程池处理,共享线程池线程数量请参考参数MAX_WORKERS。当并发量较大时,建议适当调大MAX_REACTOR_CHANNELS。

MAX_REACTOR_CHANNELS在分布式部署中的默认安装值为1,若MAX_WORKERS >= MAX_SESSIONS,对应的共享线程池线程数量MAX_WORKERS的值取两者中较小的值。

MAX_REACTOR_CHANNELS在单机、集群部署中的默认安装值为0,若MAX_WORKERS >= MAX_SESSIONS,即使配置了该参数>=1,也不会起作用。

MAX_SESSIONS表示最大可申请的会话数,包含一定数量的后台会话,要求单个MN,DN上的配置=各个CN上配置之和。

MAX_WORKERS表示线程池的数量,即实际数据库中并行的最大任务数,要求单个MN,DN上的配置=各个CN上配置之和。

Note:

注意:处于事务中的客户端请求会一直占用共享线程,若超过共享线程数量的事务不提交,会阻塞其他连接的任务处理,若发生类似情况,请使用保留连接进行应急处理。

示例

show parameter MAX_REACTOR_CHANNELS;

show parameter MAX_SESSIONS;

show parameter MAX_WORKERS;

# 相关视图

DV$SESSION包含分布式各个节点上会话的相关信息,可通过GLOBAL_SESSION_ID字段建立各个节点间会话之间的联系。

DV$DATA_CONNECTION包含各个CN上会话的相关信息,主要是CN和各个已建立连接的节点之间的关系。

示例(分布式部署)

SELECT * FROM DV$SESSION;
 
SELECT * FROM DV$DATA_CONNECTION;
pdf-btn 下载文档
copy-btn 复制链接