PostgreSQL系列- 4 - 核心架构

目录

一、体系结构

二、流程结构


一、体系结构

postgresql数据库体系结构图:

PostgreSQL系列- 4 - 核心架构_第1张图片

如图示,可以将PG数据库按照功能分为5大系统:

连接管理系统:接受外部操作对系统的请求,对请求进行预处理和分发,逻辑控制作用。

编译执行系统:由查询编译器、查询执行器组成,完成操作请求在数据库中的分析处理和转化工作,最终实现物理存储介质中数据的操作。

存储管理系统:由索引管理器、内存管理器、外存管理器组成,负责存储和管理物理数据,提供对编译查询系统的支持。

事务系统:由事务管理器、日志管理器、并发控制、锁管理器组成,日志管理器和事务管理器完成对操作请求处理的事务一致性支持,锁管理器和并发控制提供对并发访问数据的一致性支持

系统表:元信息管理中心,包括数据库对象信息和数据库管理控制信息,将PG 数据库的各个模块有机的连接在一起,形成一个高效的数据管理系统

二、流程结构

postgresql数据库主函数流程图:

PostgreSQL系列- 4 - 核心架构_第2张图片

通过系统主函数main的流程图,可以将数据库按照进程分:

Postmaster 守护进程:负责整个系统的启动和关闭,监听并接受客户端的连接请求,为其分配服务进程Postgres。同时会启动相关的后台辅助进程。

Postgres 服务进程:接受并执行客户端发送的命令,在底层模块(如存储、事务管理、索引等)调用各个主要功能模块,完成客户端的操作请求,并返回结果。

其中 postmaster 守护进程包括 辅助进程,按照启动顺序分为:

第一阶段:在系统完成初始化、创建接收用户请求监听端口后被启动的进程。包括:

SysLogger 系统日志进程:通过管道从postmaser、所有后台进程以及其他子进程搜集所有stderr输出,并写到日志文件中。

PgStat 统计数据收集进程:用于手机数据库运行期间的统计信息,如表的增删改查次数、数据库的个数、索引变化等。

AutoVacuum 系统自动清理进程:Pg是多版本控制机制,对数据的修改、删除是先标记后操作的,当事务提交后,数据库才会清理。

第二阶段:进入循环监听时启动的进程。包括:

BgWriter 后台写进程:将脏页写出到磁盘,包括2部分,一是定期把脏数据从内存缓冲区刷出到磁盘中,减少查询时的阻塞;二是PG在定期作检查点时需要把所有脏页写出到磁盘,通过BgWriter预先写出一些脏页,可以减少设置检查点(CheckPoint,数据库恢复技术的一种)时要进行的IO操作,使系统的IO负载趋向平稳。

WalWriter 预写式日志写进程:对数据文件的修改必须是先写日志后写数据。使用这种机制可以避免数据频繁的写入磁盘,可以减少磁盘I/O。数据库在宕机重启后可以运用这些WAL日志来恢复数据库。

PgArch 预写式日志归档进程:把wal日志转移到归档日志里,过去的WAL日志会被新产生的日志覆盖,PgArch进程就是为了在覆盖前把WAL日志备份出来。归档日志的作用是为了数据库能够使用全量备份和备份后产生的归档日志,从而让数据库回到过去的任一时间点。

参考文档:  postgresql 数据库内核分析 

你可能感兴趣的:(postgresql系列,postgresql,1024程序员节)