设为首页 加入收藏

TOP

PostgreSQL启动过程中的那些事七:初始化共享内存和信号八:shmem中初始化常规锁管理器(三)
2014-11-24 08:24:01 来源: 作者: 【 】 浏览:12
Tags:PostgreSQL 启动 过程 那些 初始 共享 内存 信号 shmem 常规 管理
; /* uniqueidentifier of locallock entry */

/* data */

LOCK *lock; /* associated LOCK object in shared mem */

PROCLOCK *proclock; /* associated PROCLOCK object in shmem */

uint32 hashcode; /* copy of LOCKTAG's hash value */

int64 nLocks; /* totalnumber of times lock is held */

int numLockOwners; /* # of relevantResourceOwners */

int maxLockOwners; /* allocated size ofarray */

LOCALLOCKOWNER*lockOwners; /* dynamically resizable array */

} LOCALLOCK;

#define LOCALLOCK_LOCKMETHOD(llock)((llock).tag.lock.locktag_lockmethodid)

\

初始化完LOCK相关结构的内存结构图

为了精简上图,把创建shmem的哈希表索引"ShmemIndex"时创建的HCTL结构删掉了,这个结构的作用是记录创建可扩展哈希表的相关信息。增加了左边灰色底的部分,描述共享内存/shmem里各变量物理布局概览,由下往上,由低地址到高地址。图中黄色的索引项就是本节新增加的索引项。其中的"LOCK hash"相关结构内存图、"PROCLOCK hash"相关结构内存图下面分别给出,要不上面的图太大太复杂了。在MemoryContext "PROCLOCK hash"中分配的哈希表"PROCLOCK hash"相关结构内存图和当前pg中的MemoryContext相关实例图也在下边一并给出。

\

"LOCK hash"相关结构图

\

"PROCLOCK hash"相关结构图

\

"LOCALLOCKhash"相关结构图

\

当前pg中的MemoryContext结构图

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇PostgreSQL学习手册(函数和操作符.. 下一篇SQLite学习手册(在线备份)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis压力测试实战 - (2025-12-27 09:20:24)
·高并发一上来,微服 (2025-12-27 09:20:21)
·Redis 高可用架构深 (2025-12-27 09:20:18)
·Linux 系统监控 的完 (2025-12-27 08:52:29)
·一口气总结,25 个 L (2025-12-27 08:52:27)