PostgreSQL的内存管理机制十一:初始化共享内存shared memory及其哈希表索引
来源:互联网 发布:淘宝网男装牛仔裤 编辑:程序博客网 时间:2024/05/29 15:42
pg的内存处理AllocSet/MemoryContext外,另一个主要部分就是共享内存shared memory。这一节讨论共享内存(简写shmem)的初始化及其哈希表索引"ShmemIndex"的建立,这是共享内存/shmem管理的基础。
在reset_shared()这个函数里,计算数据缓冲、xlog、clog、共享进程、子事务、并发控制、轻量级锁、backend进程等需要的共享内存,调用shmget()函数在堆上分配,接着在头部初始化一个PGShmemHeader*类型的ShmemSegHdr变量,使其index成员指向调用hash_create()创建的可扩展哈希表索引"ShmemIndex"。shmem的初始化过程参加《pg启动过程中的那些事七》,哈希表可参见《pg中的数据结构一》。
下面是初始化完成并建立了可扩展哈希表索引"ShmemIndex"后的shmem内存结构图。
共享内存及其索引"ShmemIndex"结构图
题外话:pg的内存管理机制系列文章还没有写到第十一篇,这里用十一是给MemoryContext/AllocSet的内存管理预留的,这样共享内存管理可以和内存上下文管理分开。
- PostgreSQL的内存管理机制十一:初始化共享内存shared memory及其哈希表索引
- 内存共享(Shared Memory)
- 共享内存: Shared Memory
- PostgreSQL的内存管理机制十二:共享内存/shmem分配
- RTX基础之共享内存 Shared Memory
- RTX基础之共享内存 Shared Memory
- 共享内存——The Shared memory
- 共享内存(Shared Memory)介绍
- Anonymous Shared Memory android 匿名共享内存
- 进程间通信之-共享内存Shared Memory--linux内核剖析(十一)
- postgresql的shared memory
- PostgreSQL启动过程中的那些事七:初始化共享内存和信号十一:shmem中初始化SharedProcArray
- 共享内存(shared memory)和信号量(semaphore)简介(转)
- 双语:Shared-Memory Systems共享内存系统 生产者消费者简介
- 共享内存 Shared Memory - Linux进程间通信
- 进程间通信之共享内存shared memory
- GPU 共享内存bank冲突(shared memory bank conflicts)
- 共享内存与消息传递 Shared memory versus message passing
- Android应用切换主题代码
- java.sql.SQLException: The value supplied cannot be converted to DECIMAL 解决方法
- 易语言API高级技巧
- 一些小知识
- maven3学习笔记2--浅析maven目录结构
- PostgreSQL的内存管理机制十一:初始化共享内存shared memory及其哈希表索引
- 热爱生活,更热爱代码
- [Javascript][easyui]DataGrid绑定JSON的方法
- Linux swap 使用
- 【狂人c】-笔记之定义带参数的宏,实现两个数值互相交换的功能
- js调用.net后台事件,和后台调用前台等方法总结
- Iphone开发-NSdata 与 NSString,Byte数组,UIImage 的相互转换
- WEB 服务器负载平衡&文件同步
- Windows消息大全(易语言版)