自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 PostgreSQL启动过程中的那些事七:初始化共享内存和信号十六:shmem中初始化BgWriter

这一节pg初始化后台写进程(BgWriter)用到的相关结构,通过BgWriterShmemInit例程实现。主要是初始化了一个BgWriterShmemStruct结构,并使用了面向过程C语言编程的一个技巧,把这个结构中的固定长度数组BgWriterRequest requests[1]扩充成NBuffers个(根据默认值或GUC参数的设置计算得到)的BgWriterRequest结构的数组,以

2012-03-28 21:12:46 1280

原创 PostgreSQL启动过程中的那些事七:初始化共享内存和信号十五:shmem中初始化ProcSignal

这一节pg初始化非postmaster进程间发送信号用到的相关结构,在共享内存里通过信号交互,通过ProcSignalShmemInit例程实现。主要是初始化了MaxBackends +NUM_AUXPROCTYPES =164个(默认是100+64个,可以设置)ProcSignalSlot结构的数组,以供非postmaster进程之间互动互操作。   1先上个图,看一下函数调用过程梗概,中间

2012-03-22 22:17:40 1162

原创 PostgreSQL启动过程中的那些事七:初始化共享内存和信号十四:shmem中初始化PMSignal

这一节 pg 初始化 postmaster 子进程给 postmaster 进程发送信号用到的相关结构,在共享内存里通过信号交互,通过 PMSignalShmemInit 例程实现 。主要是初始化了一个 PMSignalData 结构,并使用了面向过程编程的一个技巧,把这个结构中的固定长度数组 sig_automatic_t PMChildFlags[1] 扩充成 2XMaxBackends=20

2012-03-19 12:02:46 1068

原创 PostgreSQL启动过程中的那些事七:初始化共享内存和信号十三:shmem中初始化SharedInvalidationState

这一节pg初始化管理共享失效信息状态缓存所用到的相关结构,通过CreateSharedInvalidationState例程实现。共享失效消息主要涉及系统目录、逻辑表、物理表文件、数据库等。 1先上个图,看一下函数调用过程梗概,中间略过部分细节 初始化共享失效状态缓存方法调用流程图   2初始化xlog相关结构     话说main()->…->PostmasterMain()-

2012-03-14 20:40:37 1176

原创 PostgreSQL启动过程中的那些事七:初始化共享内存和信号十二:shmem中初始化SharedBackendStatus

这一节pg初始化共享后台进程状态数组SharedBackendStatus和多个字符串缓存,通过CreateSharedBackendStatus例程实现。 1先上个图,看一下函数调用过程梗概,中间略过部分细节  初始化SharedBackendStatus方法调用流程图   2初始化xlog相关结构  话说main()->…->PostmasterMain()->…->

2012-03-11 21:05:15 1283

原创 PostgreSQL启动过程中的那些事七:初始化共享内存和信号十一:shmem中初始化SharedProcArray

这一节pg初始化进程表,通过CreateSharedProcArray例程实现,该例程中初始化的相关结构主要是为了支持维护一个所有活跃backend进程的PGPROC结构的未排序数组。尽管多处用到此数组,但主要是作为确定当前运行进程的事务集合的一种方式。 1先上个图,看一下函数调用过程梗概,中间略过部分细节 初始化SharedProcArray方法调用流程图  2初始化xlog相关结构

2012-03-08 21:37:26 1294

原创 PostgreSQL启动过程中的那些事七:初始化共享内存和信号十:shmem中初始化PROC索引、辅助进程和信号

这一节pg初始化进程表,通过InitProcGlobal例程实现,在postmaster或standalone进程启动时初始化全局进程表。pg还创建了支持被请求的backend进程时每个backend进程需要的信号。以前pg仅在backend进程实际启动时分配信号,但是这样不好,因为这样使postgres在加载时失败,很多unix系统被配置/错误配置成在信号数目上比较小,在试着开启了一个进程时信号

2012-03-05 20:39:29 1507

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除