【GaussDB(DWS)通信连接池介绍】

举报
亚中风风寒 发表于 2021/03/30 15:41:20 2021/03/30
【摘要】 连接池介绍

本文在https://bbs.huaweicloud.com/blogs/200909 博客的基础上进行从各个对象的生命周期、组织结构等进行描述。

poolAgent:

1. 生命周期,一旦一个客户端连接建立好,则当前的服务线程就持有poolAgent对象,直到客户端连接断开此对象会释放。

2. 功能,此对象中包含主要包含客户端连接时设置的guc参数、user、database等信息,poolAgent对象建立好后会(查询条件为database、user、guc参数的等值条件)根据查询条件从DatabasePool链表中查询自己的DatabasePool对象,当查询需要下发到DN节点时,就需要从属于自己的DatabasePool中查找具体datanode的nodePool。nodePool中保存了连接具体datanode的连接句柄。

3. 组织结构, 每个nodePool保存在一个全局的数组中。

DatabasePool:

1. 生命周期, 实例启动就会有,直到实例停止。

2. 功能, 此对象中是中是保存nodePool的,主要是保存CN和DN之间的连接。

3. 组织结构,一个链表。

nodePool:

1.生命周期,一旦需要和某个DN建立连接,则就会创建连接,当服务线程退出后,就会将连接还给DatabasePool,其实质是还给对应的nodePool。

2. 功能, 存储连接信息,一旦一个线程需要使用连接时,就会首先从DatabasePool中查找属于自己Pool,最后需要依据连接哪个DN找到nodePool,最后从nodePool中找到一个连接(连接池中的连接都是没有使用的)然后从连接池中删除此连接,待使用完成后,再次归还给连接池。



【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。