pgpool-II的conn_info 指针的结构

简介:
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://www.cnblogs.com/gaojian/archive/2012/08/10/2631945.html,如需转载请自行联系原作者

目录
相关文章
|
存储 C++
04-深入了解isa指针以及内部结构
04-深入了解isa指针以及内部结构
66 0
04-深入了解isa指针以及内部结构
|
编译器 数据库 C语言
4.1 C/C++ 使用结构与指针
C/C++语言是一种通用的编程语言,具有高效、灵活和可移植等特点。C语言主要用于系统编程,如操作系统、编译器、数据库等;C语言是C语言的扩展,增加了面向对象编程的特性,适用于大型软件系统、图形用户界面、嵌入式系统等。C/C++语言具有很高的效率和控制能力,但也需要开发人员自行管理内存等底层资源,对于初学者来说可能会有一定的难度。
|
存储 C语言
《C和指针》读书笔记(第十章 结构和联合)(下)
《C和指针》读书笔记(第十章 结构和联合)(下)
|
存储 C语言 C++
《C和指针》读书笔记(第十章 结构和联合)(上)
《C和指针》读书笔记(第十章 结构和联合)(上)
每日一题—— 判断一个链表是否为回文结构(快慢指针,对撞指针)
每日一题—— 判断一个链表是否为回文结构(快慢指针,对撞指针)
|
存储 XML JSON
【C语言】结构体——我就是秩序的创建者!(结构体数组、结构体指针、嵌套、匿名、字面量、伸缩型数组、链式结构)
【C语言】结构体——我就是秩序的创建者!(结构体数组、结构体指针、嵌套、匿名、字面量、伸缩型数组、链式结构)
指向结构指针(C Primer Plus 第六版)
指向结构指针(C Primer Plus 第六版)
69 0
|
存储 缓存 Java
Java GC详解 - 1. 最全面的理解Java对象结构 - 对象指针 OOPs(下)
Java GC详解 - 1. 最全面的理解Java对象结构 - 对象指针 OOPs(下)
Java GC详解 - 1. 最全面的理解Java对象结构 - 对象指针 OOPs(下)
|
存储 缓存 Java
Java GC详解 - 1. 最全面的理解Java对象结构 - 对象指针 OOPs(上)
Java GC详解 - 1. 最全面的理解Java对象结构 - 对象指针 OOPs(上)
Java GC详解 - 1. 最全面的理解Java对象结构 - 对象指针 OOPs(上)
|
Java 编译器
Java GC详解 - 1. 最全面的理解Java对象结构 - 对象指针 OOPs(中)
Java GC详解 - 1. 最全面的理解Java对象结构 - 对象指针 OOPs(中)