博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pgpool-II的conn_info 指针的结构
阅读量:6292 次
发布时间:2019-06-22

本文共 3148 字,大约阅读时间需要 10 分钟。

main.c 中,有如下说明:

/*                                     * shmem connection info table                                     * this is a three dimension array. i.e.:                                     * con_info[pool_config->num_init_children][pool_config->max_pool][MAX_NUM_BACKENDS]                                     */                                    ConnectionInfo *con_info;

从 pool_process_context 的代码中也可以看到这一点:

/*                                     * Return pointer to i th child, j th connection pool and k th backend                                     * of connection info on shmem.                                     */                                    ConnectionInfo *pool_coninfo(int child, int connection_pool, int backend){                                         pool_log("Gao001…..child in pool_coninfo is: %d", child);    if (child < 0 || child >= pool_config->num_init_children){        pool_error("pool_coninfo: invalid child number: %d", child);         return NULL;                                }                                                                        if (connection_pool < 0 || connection_pool >= pool_config->max_pool){         pool_error("pool_coninfo: invalid connection_pool number: %d",                        connection_pool);                                    return NULL;                                }                                                                        if (backend < 0 || backend >= MAX_NUM_BACKENDS){         pool_error("pool_coninfo: invalid backend number: %d", backend);        return NULL;                                }                                                                        return &con_info [ child*pool_config->max_pool*MAX_NUM_BACKENDS+                      connection_pool*MAX_NUM_BACKENDS+                                     backend];                }

我们可以把con_info的pool想象成这个样子:

child--0                    connection--pool--0                        backend--0                backend--1        connection--pool--1                        backend--0                backend--1        connection--pool--2                        backend--0                backend--1        connection--pool--3                        backend--0                backend--1                    child--1                    connection--pool--0                        backend--0                backend--1        connection--pool--1                        backend--0                backend--1        connection--pool--2                        backend--0                backend--1        connection--pool--3                        backend--0                backend--1     ……                                child--127                    connection--pool--0                        backend--0                backend--1        connection--pool--1                        backend--0                backend--1        connection--pool--2                        backend--0                backend--1        connection--pool--3                        backend--0                backend--1

从这个意义上说,pgpool-II并不是一个真正的connection pool,它只是一个child 对应几个连接(比如4个),各个child之间是不会混用某个 connection 的。

转载地址:http://vsdta.baihongyu.com/

你可能感兴趣的文章
还原数据库
查看>>
作业调度框架 Quartz.NET 2.0 beta 发布
查看>>
mysql性能的检查和调优方法
查看>>
项目管理中的导向性
查看>>
Android WebView 学习
查看>>
(转)从给定的文本中,查找其中最长的重复子字符串的问题
查看>>
HDU 2159
查看>>
spring batch中用到的表
查看>>
资源文件夹res/raw和assets的使用
查看>>
UINode扩展
查看>>
LINUX常用命令
查看>>
百度云盘demo
查看>>
概率论与数理统计习题
查看>>
初学structs2,简单配置
查看>>
Laravel5.0学习--01 入门
查看>>
时间戳解读
查看>>
sbin/hadoop-daemon.sh: line 165: /tmp/hadoop-hxsyl-journalnode.pid: Permission denied
查看>>
@RequestMapping 用法详解之地址映射
查看>>
254页PPT!这是一份写给NLP研究者的编程指南
查看>>
《Data Warehouse in Action》
查看>>