多进程与多线程(十四)

3.1.3 掌握PostgreSQL进程结构的主要代码

PostgreSQL同进程相关的主要代码包括:

src/backend/main/main.c:启动入口,确定启动方式,包括:

1) postmaster方式,多进程、交互式方式

2) postgre方式,单进程、交互式方式

3) bootstrap方式,单进程非交互方式、用于初始化数据库

src/backend/postmaster/postmaster.c

1) 主进程,用于监听、接受用户连接请求,然后启动新的进程处理用户请求

2) 新的子进程,则是独立的一个“postgres”进程,在PG系统中,称为“backend”

src/backend/tcop/postgres.c

1) 新的子进程,每一个用户连接,都建立一个新的子进程

2) 这样的进程个数,取决于操作系统能够创建进程的个数限制

3) 采取多进程结构,有利于保持数据库系统的健壮性。PG社区有多多进程还是多线程结构的讨论,但目前多进程结构占主导。未来多进程结合多线程,应是一个方向,多线程能更有效利于硬件的多核资源

src/backend/bootstrap/bootstrap.c

1) 独立的进程,只用于系统初始化

2) 在系统初始化阶段,initdb可执行程序,暗中启动了一个服务器的进程(bootstrap),然后利用管道,想这个进程发送特定的sql语句,使得数据系统的数据被初始建立起来,所以,bootstrap进程,实则是一个数据库引擎(能执行sql语句)进程,只是被用在系统初始化阶段

src/backend/utils/misc/help_config.c

1) 显示一些帮助信息,没有多大实际意义


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值